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

简介

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

支持的广告尺寸:开屏广告的尺寸为开发者请求广告时设置的尺寸,建议设置的请求尺寸传入与展示区域大小保持一致,避免素材变形

权限

SDK渲染开屏广告: 默认开放模板渲染开屏广告: 需要申请(4700及以上版本不区分渲染方式的rit位)

SDK渲染开屏广告

4700及以上版本使用说明:

SDK渲染开屏广告使用BUSplashAd调用loadAdData方法请求广告,调用show方法展示广告,通过设置BUSplashAdDelegate代理,获取广告加载、 渲染、点击、关闭、跳转等回调。

4700以下版本使用说明:

SDK渲染开屏广告使用BUSplashAdView对象调用loadAdData方法请求广告,使用addSubview添加广告进行展示,通过设置BUSplashAdDelegate代理,获取广告、展示、点击、关闭、跳转等回调。备注:支持横版和竖版开屏,SDK调用方法无差异,只是代码位上的差异

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

请求广告时需要传入广告位对象,广告位对象创建时必须传入广告位ID

必传参数:

字段定义

字段名称

字段类型

备注

SlotID

代码位

NSString

广告位id

frame

尺寸

CGRect

广告请求尺寸

可选参数:

字段定义

字段名称

字段类型

备注

hideSkipButton

是否隐藏跳过按钮

BOOL类型

是否自定义跳过按钮 BOOL类型 默认为NO

tolerateTimeout

超时时间

NSTimeInterval

默认超时时间为3.5s

needSplashZoomOutAd

是否设置点睛广告

BOOL

是否需要点睛广告 默认为NO 注:3200-3500版本有效, 3600以及以上版本无效


4700及以上版本使用BUSplashAd创建对象使用BUSplashAd调用loadAdData请求广告

4700以下版本使用BUSplashAdView创建对象,使用BUSplashAdView调用loadAdData请求广告

接收广告加载结果


BUSplashAdDelegate
4700及以上版本:

回调方法

注释

splashAdLoadFail: error:

返回的错误码(error)表示广告加载失败的原因,所有错误码详情请见链接Link

splashAdLoadSuccess:splashAd

广告加载成功回调

4700以下版本:

回调方法

注释

splashAd: didFailWithError:

返回的错误码(error)表示广告加载失败的原因,所有错误码详情请见链接Link

splashAdDidLoad

广告加载成功回调

BUSplashAdDelegate回调说明
4700及以上版本:

回调方法

注释

splashAdLoadSuccess:splashAd

SDK渲染开屏广告加载成功回调

splashAdLoadFail: error:

返回的错误码(error)表示广告加载失败的原因,所有错误码详情请见链接Link

splashAdWillShow:

SDK渲染开屏广告即将展示

splashAdDidClick:

SDK渲染开屏广告点击回调

splashAdDidClose:

SDK渲染开屏广告关闭回调,当用户点击广告时会直接触发此回调,建议在此回调方法中直接进行广告对象的移除操作

splashAdWillClose:

SDK渲染开屏广告即将关闭回调

splashDidCloseOtherController:splashAd interactionType:interactionType

此回调在广告跳转到其他控制器时,该控制器被关闭时调用。interactionType:此参数可区分是打开的appstore/网页/视频广告详情页面

splashAdDidClickSkip:

用户点击跳过按钮时会触发此回调,可在此回调方法中处理用户点击跳转后的相关逻辑

splashAdRenderSuccess:

SDK渲染开屏广告渲染成功回调

splashAdRenderFail:

SDK渲染开屏广告渲染失败回调

splashVideoAdDidPlayFinish:

视频广告播放完毕回调


4700以下版本:

回调方法

注释

splashAdDidLoad:

SDK渲染开屏广告加载成功回调

splashAd: didFailWithError:

返回的错误码(error)表示广告加载失败的原因,所有错误码详情请见链接Link

splashAdWillVisible:

SDK渲染开屏广告即将展示

splashAdDidClick:

SDK渲染开屏广告点击回调

splashAdDidClose:

SDK渲染开屏广告关闭回调,当用户点击广告时会直接触发此回调,建议在此回调方法中直接进行广告对象的移除操作

splashAdWillClose:

SDK渲染开屏广告即将关闭回调

splashAdDidCloseOtherController:(BUSplashAdView *)splashAd interactionType:

此回调在广告跳转到其他控制器时,该控制器被关闭时调用。interactionType:此参数可区分是打开的appstore/网页/视频广告详情页面

splashAdDidClickSkip:

用户点击跳过按钮时会触发此回调,可在此回调方法中处理用户点击跳转后的相关逻辑

splashAdCountdownToZero:

倒计时为0时会触发此回调,如果客户端使用了此回调方法,建议在此回调方法中进行广告的移除操作


通过设置BUSplashAdDelegate代理,获取广告的点击、关闭、跳转等回调。其他代理方法详见AppDelegate类/BUDSplashViewController#pragma mark - BUSplashAdView部分

注意事项

  1. 开屏广告的请求最好放在didFinishLaunchingWithOptions回调方法中进行相关的处理,避免任何形式的缓存处理,开屏广告的请求统一放在前台进行相关的处理
  2. 避免出现展示广告的window被提前释放或取错window的情况
  3. splashAd: didFailWithError: 回调方法中做广告对象移除操作,避免广告请求失败时导致的一些特定场景
  4. 确认设置Allow Arbitrary Loads权限,避免某些广告资源无法加载情景的发生
  5. 开屏广告的超时时间建议设置为3.5s以上,确保和自身项目的请求超时时间不冲突,避免出现请求失败的场景
  6. 开屏广告返回的是一个view,客户端直接展示view即可。如果要在底部添加自身logo,需要缩小的开屏广告的展示区域,此时请求的时候宽和高填写裁剪后宽和高即可,即请求尺寸为屏幕宽*(屏幕高-logo高)
  7. splashAdDidClicksplashAdDidClickSkipsplashAd:didFailWithErrorsplashAdDidCloseOtherController: interactionTypesplashAdCountdownToZero回调方法中进行广告的移除操作,避免异常情况的发生: [self.splashView removeSplashView];

资源

详细接入可参照demo中的AppDelegate类/BUDSplashViewController类,广告加载展示请求部分可参照AppDelegate类中的addSplashAD方法/BUDSplashViewController类中buildupDefaultSplashView方法

接入须知(4700及以上版本)

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

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

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

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

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

模版渲染开屏广告

(4700及以上版本)使用说明

    删除了旧版 BUNativeExpressSplashView

(4700以下版本)使用说明

模版渲染开屏广告使用BUNativeExpressSplashView对象调用loadAdData方法请求广告,使用addSubview添加广告对象进行广告的展示,通过设置BUNativeExpressSplashViewDelegate代理,获取广告、展示、点击、关闭、跳转等回调。

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

BUNativeExpressSplashView

请求广告时需要传入广告位对象,广告位对象创建时必须传入广告位ID

必传参数:

字段定义

字段名称

字段类型

备注

slotID

代码位

NSString

代码位ID

adSize

广告尺寸

CGSize

广告请求尺寸

可选参数:

字段定义

字段名称

字段类型

备注

hideSkipButton

是否自定义跳过按钮

BOOL

是否自定义跳过按扭 默认为NO

tolerateTimeout

超时时间

NSTimeInterval

默认超时时间为3.5s

使用BUNativeExpressSplashView创建对象,使用BUNativeExpressSplashView调用loadAdData请求广告,使用addSubview添加广告对象来进行广告的展示

自定义跳过按钮样式

BUNativeExpressSplashView对象的hideSkipButton属性设置为YES即可,客户端自行实现跳过按钮的样式及相关跳转逻辑即可

接收广告加载结果

BUNativeExpressSplashViewDelegate

回调方法

注释

nativeExpressSplashView: didFailWithError:

返回的错误码(error)表示广告加载失败的原因,所有错误码详情请见链接。Link

nativeExpressSplashViewDidLoad

广告加载成功回调

nativeExpressSplashViewRenderFail: error:

渲染失败,网络原因或者硬件原因导致渲染失败,可以更换手机或者网络环境测试。建议升级到穿山甲平台最新版本SDK

nativeExpressSplashViewRenderSuccess:

渲染成功回调

BUNativeExpressSplashViewDelegate回调说明

回调方法

注释

nativeExpressSplashViewDidLoad:

广告物料加载成功回调

nativeExpressSplashView: didFailWithError:

返回的错误码(error)表示广告加载失败的原因,所有错误码详情请见链接。Link

nativeExpressSplashViewRenderSuccess:

渲染成功回调

nativeExpressSplashViewRenderFail: error:

渲染失败,网络原因或者硬件原因导致渲染失败,可以更换手机或者网络环境测试。建议升级到穿山甲最新版本

SDKnativeExpressSplashViewWillVisible:

模版开屏广告即将展示

nativeExpressSplashViewDidClick:

点击回调

nativeExpressSplashViewDidClickSkip:

点击跳过回调

nativeExpressSplashViewCountdownToZero:

倒计时为0时会触发此回调,如果客户端使用了此回调方法,建议在此回调方法中进行广告的移除操作,并将广告对象置为nil

nativeExpressSplashViewDidClose:

广告关闭回调,当用户点击广告时会直接触发此回调,建议在此回调方法中直接进行广告对象的移除操作,并将广告对象置为nil

nativeExpressSplashViewFinishPlayDidPlayFinish:didFailWithError:

广告播放完成会触发此回调

nativeExpressSplashViewDidCloseOtherController: interactionType:

此回调在广告跳转到其他控制器时,该控制器被关闭时调用interactionType:此参数可区分是打开的appstore/网页/视频广告详情页面

通过设置BUNativeExpressSplashViewDelegate代理,获取广告的点击、关闭、跳转等回调。其他代理方法可参见BUDExpressSplashViewController#pragma mark - SplashAdView部分

注意事项

  1. 开屏广告的请求最好放在didFinishLaunchingWithOptions回调方法中进行相关的处理,避免任何形式的缓存处理,开屏广告的请求统一放在前台进行相关的处理
  2. 避免出现展示广告的window提前释放或取错window的情况
  3. nativeExpressSplashView: didFailWithError:回调方法中做广告对象移除操作,避免广告请求失败时导致的一些特定场景,切记在remove广告视图前调用removeSplashView方法,否则可能出现倒计时有问题或者视频播放有问题,并将广告对象做置空处理
  4. 确认设置了Allow Arbitrary Loads权限,避免某些广告资源无法加载情景的发生
  5. 开屏广告的超时时间默认设置为3.5s,确保和自身项目的请求超时时间不冲突,避免出现请求失败的场景
  6. 开屏广告返回的是一个view,客户端直接展示view即可。如果要在底部添加自身logo,需要缩小的开屏广告的展示区域,此时请求的时候宽和高填写裁剪后宽和高即可,即请求尺寸为屏幕宽*(屏幕高-logo高)
  7. splashAdDidClicksplashAdDidClickSkipsplashAd:didFailWithErrorsplashAdDidCloseOtherController: interactionTypesplashAdCountdownToZero回调方法中进行广告的移除操作,避免异常情况的发生。开发者需要先调用穿山甲提供的removeSplashView方法,再用removeFromSuperview从父试图移除,需要两次移除操作;
  8. 需要在removeFromSuperview前调用removeSplashView方法,否则可能出现倒计时有问题或者视频播放有问题。[self removeSplashAdView];
  9. 如果使用非AppDelegate中的window进行开屏广告的展示,避免提前释放window导致广告无法点击跳转情况的发生
  10. 开屏广告目前暂不支持直接addSubview到window上,否则可能出现点击广告跳转异常场景。
  11. 开屏广告自定跳过按钮在3706之后版本修改为媒体自己处理倒计时,3706之前的版本是SDK处理的倒计时

资源

详细接入可参照Demo中的BUDExpressSplashViewController类,广告加载展示请求部分可参照BUDExpressSplashViewController类中buildupDefaultSplashView方法

创新样式 - 开屏点睛(4700及以上版本)

开屏点睛广告使用方法: 初始化, 增加 supportZoomOutView 设置若接入了开屏点睛样式,则必须实现以下逻辑

SDK内部会判断本次广告是否会展示点睛,并且在需要展示点睛的时机提供splashZoomOutReadyToShow 回调,开发者只需要在该回调中调用show方法展示即可。

自定义点睛动画

SDK支持开发者自定义点睛的缩放动画,并且提供开屏的最后一帧视图splashViewSnapshot作为动画起点:

创新样式 - 开屏点睛(4700以下版本)

开屏点睛广告使用方法: 初始化, 增加 needSplashZoomOutAd 设置若接入了开屏点睛样式,则必须实现以下逻辑


本篇目录
联系我们