logo

帮助中心/文档详情/

New - iOS新模版渲染插屏广告

简介

新模板渲染插屏广告开发者可以选择广告铺开大小:分为全屏和插屏,全屏和插屏场景下开发者都可以选择投放的广告类型,分别为图片+视频、仅视频、仅图片。

权限

模板渲染插屏广告: 默认开放

SDK版本要求

双端3550及以上版本SDK

代码位ID创建参数说明:

模版渲染插屏广告

使用说明

新模版渲染插屏使用BUNativeExpressFullscreenVideoAd对象调用loadAdData请求广告,使用BUNativeExpressFullscreenVideoAd对象调用showAdFromRootViewController:展示广告,通过设置BUNativeExpressFullscreenVideoAdDelegate代理,获取广告、展示、点击、关闭等回调。

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

BUNativeExpressFullscreenVideoAd

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

必传参数:

字段定义 字段名称 字段类型 备注
SlotID 广告位 NSString 代码位ID

使用BUNativeExpressFullscreenVideoAd创建对象,使用BUNativeExpressFullscreenVideoAd调用loadAdData请求广告

self.fullscreenAd = [[BUNativeExpressFullscreenVideoAd alloc] initWithSlotID:slotID];
self.fullscreenAd.delegate = self;
[self.fullscreenAd loadAdData];

接收广告加载结果

BUNativeExpressFullscreenVideoAdDelegate

回调方法 注释
nativeExpressFullscreenVideoAd:didFailWithError 返回的错误码(error)表示广告加载失败的原因,所有错误码详情请见链接。Link
nativeExpressFullscreenVideoAdViewRenderFail:error 渲染失败,网络原因或者硬件原因导致渲染失败,可以更换手机或者网络环境测试。建议升级到穿山甲最新版本SDK
nativeExpressFullscreenVideoAdDidLoad 广告物料加载成功
nativeExpressFullscreenVideoAdDidDownLoadVideo 视频/图片下载完成,建议开发者在此回调后进行广告的展示

BUNativeExpressFullscreenVideoAdDelegate回调说明

回调方法 注释
nativeExpressFullscreenVideoAdDidLoad: 此回调进入证明广告物料已成功加载
nativeExpressFullscreenVideoAd: didFailWithError: 此回调方法中可定位具体的失败原因对应的错误码,打印error即可。所有错误码详情请见链接。Link
nativeExpressFullscreenVideoAdViewRenderSuccess: 渲染成功回调方法
nativeExpressFullscreenVideoAdViewRenderFail:error: 进入了此回调证明触发了渲染失败条件,可更换手机或者网络环境测试。建议直接升级到穿山甲平台最新版本
nativeExpressFullscreenVideoAdDidDownLoadVideo: 在此回调方法中进行广告的展示,可保证播放流畅和展示流畅,用户体验更好。
nativeExpressFullscreenVideoAdWillVisible: 新模版插屏广告即将展示回调
nativeExpressFullscreenVideoAdDidVisible: 新模版插屏广告已经展示回调
nativeExpressFullscreenVideoAdDidClick: 点击回调
nativeExpressFullscreenVideoAdDidClickSkip: 点击跳过会触发此回调,如果需要在用户点击跳过时做相关的逻辑处理,可在此回调中进行处理
nativeExpressFullscreenVideoAdWillClose: 此回调方法可知用户进行了广告关闭操作,可在此回调方法中进行用户关闭广告时的相应的逻辑处理
nativeExpressFullscreenVideoAdDidClose: 点击关闭按钮会触发此回调
nativeExpressFullscreenVideoAdDidPlayFinish: 广告播放完成会触发此回调
nativeExpressFullscreenVideoAdCallback:withType: 此回调可知新模版插屏的广告类型
nativeExpressFullscreenVideoAdDidCloseOtherController: interactionType: 此回调在广告跳转到其他控制器时,该控制器被关闭时调用interactionType:此参数可区分是打开的appstore/网页/视频广告详情页面

通过设置BUNativeExpressFullscreenVideoAdDelegate代理,获取广告、展示、点击、关闭等回调。其他代理方法可参见demoBUDExpressFullScreenVideoViewController类#pragma mark - BUFullscreenVideoAdDelegate部分

展示广告

调用showAdFromRootViewController:方法展示新模板插屏广告,此处需要传入当前展示的页面。一定要设置rootViewController,即展示广告和跳转落地页需要的viewController,此处建议开发者在收到nativeExpressFullscreenVideoAdDidDownLoadVideo回调后再去展示广告,可保证播放和展示效果。

展示新模板渲染插屏广告

//show的时候会进行WKWebview的渲染,建议一次最多展示三个广告,如果超过3个会很大概率导致WKWebview渲染失败。当然一般情况下全屏视频一次只会show一个
if (self.fullscreenAd) {
   [self.fullscreenAd showAdFromRootViewController:self];
}

展示时机

在收到nativeExpressFullscreenVideoAdDidDownLoadVideo回调后再去展示广告,可保证播放和展示效果。

- (void)nativeExpressFullscreenVideoAdDidDownLoadVideo:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd {
//回调后再去展示广告,可保证播放和展示效果
}

广告展示后重新加载广告

同一次请求的广告最多只能计一次展示,重复的展示会被系统过滤。 因此建议开发者在用户观看完广告后在nativeExpressFullscreenVideoAdDidClose回调里将原来的广告对象置为nil 保证广告对象为新的请求对象

- (void)nativeExpressFullscreenVideoAdDidClose:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd {
//在此回调方法中可进行广告的置空操作
}

注意事项

  1. 必须要设置rootViewController,用来处理广告跳转。SDK里所有的跳转均采用present的方式,请确保传入的rootViewController不能为空且没有present其他的控制器,否则会出现presentedViewController已经存在而导致present失败。
  2. nativeExpressFullscreenVideoAdViewRenderSuccess渲染成功回调在广告展示后返回
  3. 为保证播放流畅和展示流畅,用户体验更好,在收到nativeExpressFullscreenVideoAdDidDownLoadVideo回调后进行广告的展示
  4. 判断广告是否有效直接使用self.fullscreenAd判断即可
  5. 个性化模板广告为了优化展示速度,会使用本地模板,请求时会拦截相关数据.如果接入方正在使用H5的页面发送请求,会造成请求body清空,其他逻辑不变.如果使用body传参请更换其他方式.例如:jsBridge方式。
  6. 每次请求数据时,都需要重新初始化一个新的BUNativeExpressFullscreenVideoAd对象。请勿重复使用本地缓存的全屏视频对象多次展示.

资源

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

文档内容是否对您有帮助?
联系我们