中文
登录
后可查看全部文档
开发测试/iOS集成文档/开屏广告
开屏广告
最近更新 2025-10-14 14:12:12

简介

开屏广告主要是 APP 启动时展示的全屏广告视图,开发只要按照接入标准就能够展示设计好的视图。展示完毕后自动关闭并进入应用的主界面。

开屏广告使用BUSplashAd对象管理开屏广告所有业务;接入方式上,使用BUSplashAd对象调用loadAdData方法请求广告,调用show方法展示广告,通过设置BUSplashAdDelegate代理,获取广告加载、 渲染、点击、关闭、跳转等回调。

开屏样式接口概览

创建广告对象、请求广告、展示广告

广告对象创建时必须传入代码位ID:

复制

广告物料、素材加载成功后,会回调splashAdLoadSuccess:方法,在这里调用show方法展示广告:

接入方式一(强烈推荐):

使用App主window对象的根视图控制器展示,不需要管理开屏控制器展示,但6900及以上版本点击广告,SDK将不再主动移除视图,开发者可以根据业务场景自行处理,点击跳过按钮倒计时结束时仍由SDK进行移除。

示例代码(完整代码可参考官方demo中BUDSplashViewController 类)

展示广告

复制

移除广告

开发者根据业务场景需要,使用[splashAd removeSplashView]方式移除广告视图


接入方式二(不推荐):

开发者如果使用新创建的视图控制器接入,需要自行管理viewController的展示和关闭,同时需要处理广告点击时的视图移除逻辑,点击跳过按钮倒计时结束仍由SDK进行移除。

示例代码(完整代码可参考官方demo中BUDSplashViewController 类)

展示广告

复制

移除广告

开发者可在开屏相关代理回调中关闭当前视图控制器,示例代码如下:

复制

超时时长设置

超时的计算逻辑:穿山甲从开发者加载广告开始倒计时(注意并非从SDK初始化开始计时),若广告在倒计时结束之前完成广告加载,则会为开发者响应广告。若倒计时结束前未完成广告加载,则将响应超时。建议开发者:

复制

自定义底部logo设置

开发者可自定义开屏底部View,用于logo展示等个性化设置。

复制

开屏回调说明

时机

方法

说明

广告物料、素材加载成功


- (void)splashAdLoadSuccess:(BUSplashAd *)splashAd;


物料加载成功,可以在这个回调中调用show方法展示开屏

广告物料、素材加载失败

- (void)splashAdLoadFail:(BUSplashAd *)splashAd error:(BUAdError *)error;


物料加载失败,不会展示开屏,提供如下错误码:

typedef NS_ENUM(NSInteger, BUSplashAdLoadError) {

BUSplashAdLoadError_UnKnow= 0, //未知错误

BUSplashAdLoadError_DataError = 1, // 数据加载失败

BUSplashAdLoadError_TimeOut = 2, // 超时

};

广告渲染成功

- (void)splashAdRenderSuccess:(BUSplashAd *)splashAd;

load方法调用后,若渲染成功则返回该回调;show方法调用后开屏视图会被添加到ViewController上。

广告渲染失败

- (void)splashAdRenderFail:(BUSplashAd *)splashAd error:(BUAdError *)error;


load方法调用后,若渲染失败则返回该回调;即使调用show方法开屏视图也不会被添加到ViewController上,提供如下错误码:

typedef NS_ENUM(NSInteger, BUSplashAdErrorCode) { CSJSplashAdError_Unknow = 0, CSJSplashAdError_LoadFailed = 1, // 物料加载失败 CSJSplashAdError_ResourceFailed = 2, // 素材加载失败 CSJSplashAdError_RenderFailed = 3, // 渲染失败 CSJSplashAdError_TimeOut = 23 // 超时

};

广告即将展示

- (void)splashAdWillShow:(BUSplashAd * )splashAd;


广告展示

- (void)splashAdDidShow:(BUSplashAd * )splashAd;

注意:该回调时机和show埋点上报时机一致

广告视图关闭


- (void)splashAdDidClose:(BUSplashAd * )splashAd closeType:(BUSplashAdCloseType)closeType;



广告视图会在以下场景关闭:

1、开屏未转化关闭(点击跳过、倒计时结束),通知开发者开屏视图已经关闭

2、 开屏转化后内开调起市场页,市场页关闭时通知开发者开屏视图已经关闭

3、开屏转化其他场景,点击广告后通知开发者开屏视图已经关闭

其他说明:

1、广告视图关闭后由SDK移除开屏视图

2、closeType标记从哪种场景关闭

复制

广告视图控制器关闭



- (void)splashAdViewControllerDidClose:(BUSplashAd *)splashAd;


如果采用自定义视图控制器展示广告,广告视图控制器会在以下场景关闭:

1、开屏未转化关闭(点击跳过、倒计时结束),通知开发者关闭视图控制器

2、开屏转化后内跳,中间页、市场页关闭时,通知开发者关闭视图控制器

3、开屏转化外跳,即将跳转时,通知开发者关闭视图控制器

广告点击

- (void)splashAdDidClick:(BUSplashAd * )splashAd;


广告中间页、市场页面关闭

- (void)splashDidCloseOtherController:(BUSplashAd *)splashAd interactionType:(BUInteractionType)interactionType;


此回调在广告跳转到其他控制器时,该控制器被关闭时调用。

interactionType:此参数可区分是打开的appstore/网页/视频广告详情页面

视频广告播放完毕

- (void)splashVideoAdDidPlayFinish:(BUSplashAd *)splashAd didFailWithError:(NSError *)error;


接入须知

1、自渲染&模板渲染 rit位:新版本不区分渲染方式的rit位

2、开屏内部相关的视图生命周期由SDK管理,开发者关注BUSplashAd对象。当BUSplashAd被非法释放时,开屏内部视图会被同时移除释放。

3、接入开屏的最佳实践,在loadSuccess回调中调用show方法展示广告。

4、开屏视图关闭后,splashView即被释放(nil),如在开屏结束后依赖开屏视图做动画,可以使用splashViewSnapshot对象。

5、rootViewController建议使用应用当前window对象的rootViewController(keyWindow.rootViewController)或者当前视图控制器的根控制器navigationController(viewController.navigationController)。如果使用新创建的viewController,注意在开屏广告视图控制器关闭回调中splashAdViewControllerDidClose:从当前控制器堆栈中移除viewController:

复制

6、loadAdData方法不是线程安全的,请尽量在主线程调用。


本篇目录
联系我们