开屏广告
适用于 IFLYADLib 6.5.1。接入概览。完整方法签名以所安装版本的公开头为准。
先阅读配置与隐私。下面的代码为业务控制器片段:属性放在类声明内,方法放在 @implementation 内;requestConfig 是该指南中的宿主辅助方法。
开屏广告挂载到 window,不使用 presentViewController:。应在 splashAdDidReady: 后展示:
#import <IFLYAdCore/IFLYAdCore.h>
#import <IFLYAdSplash/IFLYSplashAd.h>
@interface SplashViewController () <IFLYSplashAdDelegate>
@property (nonatomic, strong) IFLYSplashAd *splashAd;
@end
- (void)loadSplash {
IFLYSplashAd *ad = [[IFLYSplashAd alloc] initWithAdUnitId:@"YOUR_SPLASH_AD_UNIT_ID"];
ad.delegate = self;
ad.currentViewController = self;
self.splashAd = ad;
[ad loadAdWithRequestConfig:[self requestConfig]];
}
- (void)splashAdDidReady:(IFLYSplashAd *)ad {
if (ad != self.splashAd || !ad.isAdValid) return;
IFLYSplashAdConfig *config = [[IFLYSplashAdConfig alloc] init];
config.traceDuration = 5;
config.muteOnStart = YES;
[ad showAdFromRootViewController:self config:config];
}
- (void)splashAd:(IFLYSplashAd *)ad didFailWithError:(IFLYAdError *)error {
NSLog(@"Splash failed: %d %@", error.errorCode, error.errorDescription);
}常用回调包括 splashAdDidLoad:、splashAdDidReady:、splashAdDidShow:、splashAdDidExpose:、splashAdDidClick:、splashAdDidClose:、splashAdDidSkip: 和 splashAd:didFailWithError:。视频素材还会触发播放开始、暂停、恢复、完成和失败回调。splashAdDidClose: 表示倒计时结束并关闭;用户点击跳过通过 splashAdDidSkip: 通知。交互跳转和视频完播不会触发 splashAdDidClose:,业务流程应分别处理。
加载失败、重试与对象清理见失败处理与生命周期。
宿主流程收尾
Ready 到达时先确认广告仍是当前实例,再结合页面是否入窗、所属 Scene 是否前台以及广告有效性决定展示。若页面暂不可展示,保留实例,在宿主恢复展示条件时重新检查有效性;放弃等待时清理当前实例并继续业务流程。
启动流程分别处理 splashAd:didFailWithError:、splashAdDidSkip: 和 splashAdDidClose:。SDK 请求超时与宿主允许等待的总时长分开控制;无填充、超时或用户不再等待时,允许进入首页。点击外跳或视频完播并不等同于开屏关闭,避免因此提前销毁广告。