优酷定制 SDK 开屏广告

适用于本仓库 SDK 6.5.1。API 以所安装版本的 framework 公开头为准。

接入概览

先完成隐私与请求配置。下面使用普通请求;如需指定参数,可用该指南中的配置替换默认 IFLYAdRequestConfig。

开屏广告由 SDK 展示到宿主 window。先持有广告实例、设置代理并加载;收到 splashAdDidReady: 后,在宿主页面已进入 window 且可展示时调用展示接口:

#import <IFLYADLib/IFLYADLib.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:[[IFLYAdRequestConfig alloc] init]];
}

- (void)splashAdDidReady:(IFLYSplashAd *)ad {
    if (ad != self.splashAd || !ad.isAdValid || !self.view.window) 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: 才能展示。traceDuration 支持 3~5 秒,默认 5 秒;自定义底部 Logo 可设置 mediumBottomView。若就绪时页面尚不可展示,应保存就绪状态,在合适时机再次检查 isAdValid,不要忽略后永久等待。

通过 splashAdDidShow:、splashAdDidExpose:、splashAdDidClick:、splashAdDidSkip:、splashAdDidClose: 处理界面状态。点击或离开 App 不等于广告关闭,应结合关闭及落地页返回回调处理。展示完成或放弃本次展示后,清理实例;下次重新创建。

请求失败、广告关闭或业务放弃展示时,先置空 delegate,调用 destroy 并释放持有的广告;下次创建新实例。开屏业务还应处理跳过、倒计时关闭和宿主等待超时,进入后续页面的操作应保证只执行一次。