#import <MCSDK/MCSDK.h>
@interface InterstitialVC () <MCAdDelegate, MCAdRevenueDelegate>
@property (nonatomic, strong) MCInterstitialAd *interstitialAd;
@property (nonatomic, assign) NSInteger retryAttempt; // 重试次数计数器
@end
@implementation InterstitialVC
// 插屏聚合单元ID,需要替换为您的实际聚合单元ID
#define InterstitialPlacementID @"your mediation unit id"
// 场景ID,用于区分不同的广告展示场景
#define InterstitialSceneID @""
#pragma mark - Load Ad
- (void)loadAd {
// 如果广告对象不存在,则创建新的插屏广告实例
if (!self.interstitialAd) {
self.interstitialAd = [[MCInterstitialAd alloc] initWithPlacementId:InterstitialPlacementID];
}
// 设置广告代理和收益代理
self.interstitialAd.delegate = self;
self.interstitialAd.revenueDelegate = self;
// 开始加载广告
[self.interstitialAd loadAd];
}
#pragma mark - MCAdDelegate
// 广告加载成功
- (void)didLoadAd:(MCAdInfo *)ad {
// 重置重试次数
self.retryAttempt = 0;
}
// 广告加载失败
- (void)didFailToLoadAdWithError:(MCError *)error {
// 我们建议您使用指数递增的延迟进行重试,最大延迟时间为8秒或最大重试次数为3次
if (self.retryAttempt >= 3) {
return;
}
self.retryAttempt++;
// 计算延迟时间:2的幂次方,最大为8秒
NSInteger delaySec = pow(2, MIN(3, self.retryAttempt));
// 延迟重试加载广告
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, delaySec * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
[self.interstitialAd loadAd];
});
}
// 广告展示成功
- (void)didDisplayAd:(MCAdInfo *)ad {
// 预加载下一个广告
[self.interstitialAd loadAd];
}
// 广告关闭
- (void)didHideAd:(MCAdInfo *)ad {
// 预加载下一个广告
[self.interstitialAd loadAd];
}
// 广告点击
- (void)didClickAd:(MCAdInfo *)ad {
}
// 广告展示失败
- (void)didFailToDisplayAd:(MCAdInfo *)ad withError:(MCError *)error {
// 预加载下一个广告
[self.interstitialAd loadAd];
}
// 广告视频开始播放(如果是视频广告)
- (void)didAdVideoStarted:(MCAdInfo *)ad { }
// 广告视频播放完成(如果是视频广告)
- (void)didAdVideoCompleted:(MCAdInfo *)ad { }
#pragma mark - MCAdRevenueDelegate
// 收益跟踪回调
- (void)didPayRevenueForAd:(MCAdInfo *)ad {
}
- (void)loadAd {
// 创建插屏广告实例
MCInterstitialAd *interstitialAd = [[MCInterstitialAd alloc] initWithPlacementId:self.placementID];
interstitialAd.delegate = self;
interstitialAd.revenueDelegate = self;
// 设置加载时的额外参数
[interstitialAd setLoadExtraParameter:@{
@"userData": @"test_userData"
}];
// 设置展示时的额外参数
[interstitialAd setExtraParameter:@{
@"test_extra_key": @"test_extra_value"
}];
// 开始加载广告
[interstitialAd loadAd];
self.interstitialAd = interstitialAd;
}
- (void)didLoadAd:(MCAdInfo *)ad {
// 获取自定义参数
NSString *originDataJsonString = ad.originData;
}