- 为提高开屏广告的加载效率可以参考预置策略
- 可根据实际业务需要传入期望的开屏广告加载超时时间,建议传入 6000ms - 10000ms
- 广告加载超时时间,即可以等待开屏广告加载的最长时间(仅为等待广告加载的超时,不包括广告展示的时间)
- ⚠️ 传入的超时时间太短或没有根据传入的超时时间去作为开屏等待加载广告的时间,可能会影响开屏广告的效果
- ⚠️ HyperBid Tools控制台-应用管理-聚合单元-高级设置中若启用价格优先模式,则价格优先回调超时时间的优先级将高于传入的 fetchTimeout
1. 加载广告
@interface SplashVC () <MCAdDelegate, MCAdRevenueDelegate>
@property (nonatomic, strong) MCAppOpenAd *appOpenAd; // 开屏广告对象
@end
@implementation SplashVC
// 开屏聚合单元ID,需要替换为您的实际聚合单元ID
#define SplashPlacementID @"your mediation unit id"
// 场景ID,用于区分不同的广告展示场景
#define SplashSceneID @""
// 广告加载超时时间,单位:秒
#define Splash_Timeout 8
#pragma mark - Load Ad
- (void)loadAd {
// 如果开屏广告对象不存在,则创建新的实例
if (!self.appOpenAd) {
self.appOpenAd = [[MCAppOpenAd alloc] initWithPlacementId:SplashPlacementID containerView:containerView];
}
// 设置广告代理和收益代理
self.appOpenAd.delegate = self;
self.appOpenAd.revenueDelegate = self;
// 设置广告加载超时时间
[self.appOpenAd setLoadAdTimeout:Splash_Timeout];
// 开始加载广告
[self.appOpenAd loadAd];
}
#pragma mark - MCAdDelegate
// 广告加载成功
- (void)didLoadAd:(MCAdInfo *)ad {
}
// 广告加载超时
- (void)didLoadAdTimeout {
}
// 广告加载失败
- (void)didFailToLoadAdWithError:(MCError *)error {
}
// 广告展示成功
- (void)didDisplayAd:(MCAdInfo *)ad {
}
// 广告关闭
- (void)didHideAd:(MCAdInfo *)ad {
// 软启动预加载(可选)
// [self.appOpenAd loadAd];
}
// 广告点击
- (void)didClickAd:(MCAdInfo *)ad {
}
// 广告展示失败
- (void)didFailToDisplayAd:(MCAdInfo *)ad withError:(MCError *)error {
// 软启动预加载(可选)
// [self.appOpenAd loadAd];
}
// 广告视频开始播放(如果是视频广告)
- (void)didAdVideoStarted:(MCAdInfo *)ad { }
// 广告视频播放完成(如果是视频广告)
- (void)didAdVideoCompleted:(MCAdInfo *)ad { }
#pragma mark - MCAdRevenueDelegate
// 收益跟踪回调
- (void)didPayRevenueForAd:(MCAdInfo *)ad {
}
2. 展示广告
if ([self.appOpenAd isReady]) {
[self.appOpenAd showAdWithWindow:[UIApplication sharedApplication].keyWindow viewController:self withExtra:@{kMCAPIPlacementScenarioIDKey:@"场景id"}];
} else {
[self.appOpenAd loadAd];
}
3. 销毁广告
[self.appOpenAd destroyAd];
4. 设置自定义参数
- (void)loadAd {
// 创建开屏广告实例
MCAppOpenAd *appOpenAd = [[MCAppOpenAd alloc] initWithPlacementId:self.placementID];
appOpenAd.delegate = self;
appOpenAd.revenueDelegate = self;
// 设置加载时的额外参数
[appOpenAd setLoadExtraParameter:@{
@"userData": @"test_userData"
}];
// 设置展示时的额外参数
[appOpenAd setExtraParameter:@{
@"test_extra_key": @"test_extra_value"
}];
// 开始加载广告
[appOpenAd loadAd];
self.appOpenAd = appOpenAd;
}
- (void)didLoadAd:(MCAdInfo *)ad {
// 获取自定义参数
NSString *originDataJsonString = ad.originData;
}