激励视频是一种全屏播放的视频广告,用户可以在观看完整的视频后获取奖励,视频广告播放结束后会显示结束页面,引导用户进行后续动作。目前激励视频广告的表现形式为:视频播放完展示Endcard页面、视频播放完展示互动页面或者直接出现互动广告。
激励视频再看一个功能,用户在看完一个激励视频后通过进一步广告互动获取更多APP内激励,有利于用户体验与APP活跃市场,同时开发者也可借助该功能提升激励视频曝光量与收入,详情请参考激励视频再看一个 广告介绍。
支持的广告尺寸: 全屏横屏(宽高比16:9)、全屏竖屏(宽高比9:16)
模板渲染激励视频: 默认开放
SDK渲染激励视频: 已回收,不再提供创建
激励视频再看一个:需要白名单权限,请联系BD开启,要求SDK版本 >=4300
激励视频进阶奖励:SDK版本 >=4400
奖励发放逻辑可参考此文档: Link
服务器到服务器回调让您判定是否提供奖励给观看广告的用户。当用户成功看完广告时,会向您在穿山甲平台中配置的验证接口发送验证请求,由开发者来判断此次观看是否给用户发放奖励。
重点说明: 穿山甲服务端只是透传验证请求,不会在中间过程添加校验逻辑。为了保障开发者利益和用户体验,开发者可以在验证环节增加自己的校验逻辑。
穿山甲服务器会以 GET 方式请求第三方服务的回调链接,并拼接以下参数回传:
字段定义 | 字段名称 | 字段类型 | 备注 |
sign | 签名 | string | 签名 |
user_id | tagid | string | 调用SDK透传 |
trans_id | 交易id | string | 完成观看的唯一交易ID |
reward_amount | 奖励数量 | int | 媒体平台配置 |
reward_name | 奖励名称 | string | 媒体平台配置 |
extra | Extra | string | 调用SDK传入并透传,如无需要则为空 |
appSecurityKey: 您在穿山甲媒体平台新建奖励视频代码位获取到的密钥transId:交易id: sign = sha256(appSecurityKey:transId)
Python 示例:
返回 json 数据,字段如下:
字段定义 | 字段名称 | 字段类型 | 备注 |
isValid | 校验结果 | BOOL | 判定结果,是否发放奖励 |
回调URL格式事例如下:
服务器回调模式不是必须的,服务器模式只是增加了一次第三方服务器验证判断,具体的奖励的发放是由客户端完成。
模版激励视频使用BUNativeExpressRewardedVideoAd对象调用loadAdData方法请求广告,使用BUNativeExpressRewardedVideoAd对象调用showAdFromRootViewController:展示广告,通过设置BUNativeExpressRewardedVideoAdDelegate代理,获取广告、展示、点击、关闭等回调。
请求广告时需要传入广告位对象,广告位对象创建时必须传入广告位ID
字段定义 | 字段名称 | 字段类型 | 备注 |
SlotID | 广告位 | NSString | 代码位ID |
userId | tag_id | NSString | tag_id |
字段定义 | 字段名称 | 字段类型 | 备注 |
rewardName | 奖励名称 | NSString | 按照项目需求设置即可 |
rewardAmount | 奖励数量 | NSInteger | 按照项目需求设置即可 |
extra | 透传参数 | NSString | 应为json序列化后的字符串 |
使用BUNativeExpressRewardedVideoAd创建对象,使用BUNativeExpressRewardedVideoAd调用loadAdDat请求广告
回调方法 | 注释 |
nativeExpressRewardedVideoAd:didFailWithError | 返回的错误码(error)表示广告加载失败的原因,所有错误码详情请见链接。Link |
nativeExpressRewardedVideoAdViewRenderFail:error | 渲染失败,网络原因或者硬件原因导致渲染失败,可以更换手机或者网络环境测试。建议升级到穿山甲平台最新版本 |
nativeExpressRewardedVideoAdDidLoad | 广告素材物料加载成功 |
nativeExpressRewardedVideoAdDidDownLoadVideo | 视频下载完成 |
回调方法 | 注释 |
nativeExpressRewardedVideoAdDidLoad: | 回调进入证明广告物料已成功加载 |
nativeExpressRewardedVideoAd: didFailWithError: | 此回调方法中可定位具体的失败原因对应的错误码,打印error即可。所有错误码详情请见链接。Link |
nativeExpressRewardedVideoAdCallback:withType: | 此回调可知模版激励视频的广告类型 |
nativeExpressRewardedVideoAdDidDownLoadVideo | 建议在此回调方法中进行广告的展示操作,可保证播放流畅和展示流畅,用户体验更好。 |
nativeExpressRewardedVideoAdViewRenderSuccess: | 渲染成功回调。3100之后版本SDK,广告展示之后才会回调 |
nativeExpressRewardedVideoAdViewRenderFail: | 渲染失败,网络原因或者硬件原因导致渲染失败,可以更换手机或者网络环境测试。建议升级到穿山甲平台最新版本 |
nativeExpressRewardedVideoAdWillVisible: | 模版激励视频广告即将展示 |
nativeExpressRewardedVideoAdDidVisible: | 模版激励视频广告已经展示 |
nativeExpressRewardedVideoAdWillClose: | 模版激励视频广告即将关闭 |
nativeExpressRewardedVideoAdDidClose: | 用户关闭广告时会触发此回调,注意:任何广告的关闭操作必须用户主动触发; |
nativeExpressRewardedVideoAdDidClick: | 点击回调方法 |
nativeExpressRewardedVideoAdDidClickSkip: | 跳过回调方法 |
nativeExpressRewardedVideoAdDidPlayFinish: | 视频正常播放完成时可触发此回调方法,当广告播放发生异常时,不会进入此回调; |
nativeExpressRewardedVideoAdServerRewardDidSucceed: | 异步请求的服务器验证成功回调,开发者需要在此回调中进行奖励发放。现在包括两个验证方法:1. C2C不需要服务器验证2。S2S需要服务器验证。nativeExpressRewardedVideoAdServerRewardDidFail:异步请求的服务器验证失败回调。可在此回调方法中打印error,定位具体失败的原因,或通过抓包定位具体原因,抓包地址:https://域名或者ip地址/api/ad/union/sdk/get_ads/ 提供返回的数据进行确认)到【留言反馈】-【技术类提问入口(技术类暂仅支持此入口的提问回复)】进行反馈,相关同学会为您处理 |
nativeExpressRewardedVideoAdDidCloseOtherController:interactionType:此回调在广告跳转到其他控制器时,该控制器被关闭时调用interactionType: | 此参数可区分是打开的appstore/网页/视频广告详情页面 |
nativeExpressRewardedVideoAdServerRewardDidSucceed 回调说明:
综上: nativeExpressRewardedVideoAdServerRewardDidSucceed 回调只是视频播放状态的一个结果或者是开发者返回的结果,不代表此次播放是否计费等广告业务指标。
通过设置BUNativeExpressRewardedVideoAdDelegate代理,获取广告的点击、关闭、播放完成等回调。其他代理方法可参见BUDExpressRewardedVideoViewController类#pragma mark - BUNativeExpressRewardedVideoAdDelegate
4400版本新增进阶奖励回调参数
// 区分此次奖励的类型,默认为BURewardType_Default
@property (nonatomic, assign) BURewardType rewardType;
typedef NS_ENUM(NSInteger, BURewardType) {
BURewardType_Default = 0, // 基础奖励 (满足观看时长、互动抵时长、playable试完等)
BURewardType_Interact = 1, // 进阶奖励-互动
BURewardType_VideoComplete = 2, // 进阶奖励-超过30s的视频播放完成
};
number of rewards of propose, 0.0 ~ 1.0 (BURewardType_Default: 1). // 建议奖励数量,进阶奖励功能可选
@property (nonatomic, assign) float rewardPropose;
若rewardedVideoAd.rewardedVideoModel.rewardType不为BURewardType_Default时(暂支持BURewardType_Interact、BURewardType_VideoComplete),即可发奖励,奖励数量可以参考rewardPropose给出的建议。
激励视频广告需要让用户主动选择去观看,给用户选择,不能强制用户观看激励视频广告。广告播放完成需要给用户发放相应的奖励。调用showAdFromRootViewController:方法展示激励视频广告,此处需要传入当前展示的页面。一定要设置rootViewController,即展示广告和跳转落地页需要的viewController
在收到nativeExpressRewardedVideoAdDidDownLoadVideo回调后再允许用户观看广告,可保证播放流畅和展示流畅,用户体验更好。
同一次请求的广告最多只能计一次展示,重复的展示会被系统过滤。因此建议开发者在用户观看完广告后在nativeExpressRewardedVideoAdDidClose回调里将原来的广告对象置为nil 保证广告对象为新的请求对象
详细接入可参照Demo中的BUDExpressRewardedVideoViewController类,广告加载请求部分可参照loadRewardVideoAdWithSlotID方法,广告展示部分可参照showRewardVideoAd方法
SDK渲染激励视频使用BURewardedVideoAd对象调用loadAdData方法请求广告,使用BURewardedVideoAd对象调用showAdFromRootViewController:展示广告,通过设置BURewardedVideoAdDelegate代理,获取广告、展示、点击、关闭等回调。
请求广告时需要传入广告位对象,广告位对象创建时必须传入广告位ID
每次需要生成新的BURewardedVideoAd对象调用loadAdData方法请求最新激励视频,请勿重复使用本地缓存激励视频多次展示
字段定义 | 字段名称 | 字段类型 | 备注 |
SlotID | 广告位 | NSString | 代码位ID |
userId | tag_id | NSString | tag_id |
字段定义 | 字段名称 | 字段类型 | 备注 |
rewardName | 奖励名称 | NSString | 按照项目需求设置即可 |
rewardAmount | 奖励数量 | NSInteger | 按照项目需求设置即可 |
extra | 透传参数 | NSString | 应为json序列化后的字符串,仅支持单个json对象格式,不可以嵌套json对象 |
使用BURewardedVideoAd创建对象,使用BURewardedVideoAd调用loadAdData请求广告
回调方法 | 注释 |
rewardedVideoAd:didFailWithError: | 返回的错误码(error)表示广告加载失败的原因,所有错误码详情请见链接。Link |
rewardedVideoAdDidLoad: | 广告素材物料加载成功 |
rewardedVideoAdVideoDidLoad: | 视频下载完成 |
回调方法 | 注释 |
rewardedVideoAdDidLoad: | 物料加载成功回调 |
rewardedVideoAd: didFailWithError: | 加载失败回调 |
rewardedVideoAdVideoDidLoad: | 视频下载成功回调,建议在此回调方法中进行广告的展示,可保证广告播放流畅展示,用户体验较好。 |
rewardedVideoAdWillVisible: | 当广告即将显示时,会进入此回调方法 |
rewardedVideoAdDidVisible: | 当广告已经显示时,会进入此回调方法 |
rewardedVideoAdWillClose: | 当广告即将被关闭时,会进入此回调方法 |
rewardedVideoAdDidClose: | 关闭回调,当广告关闭时可才此回调中进行相关的逻辑 |
rewardedVideoAdDidClick: | 当广告被点击时,会进入此回调方法 |
rewardedVideoAdDidPlayFinish:didFailWithError: | 当广告播放完成或者发生错误时会进入此回调,打印error即可。所有错误码详情请见链接。Link |
rewardedVideoAdServerRewardDidSucceed: verify: | 异步请求的服务器验证成功回调 |
rewardedVideoAdServerRewardDidFail: | 异步请求的服务器验证失败回调 |
rewardedVideoAdServerRewardDidFail: error: | 异步请求的服务器验证失败回调,此回调方法中可打印失败原因,即打印error即可。所有错误码详情请见链接。Link |
rewardedVideoAdDidClickSkip: | 点击跳过回调(此功能需单独申请,cpm负向影响) |
rewardedVideoAdCallback: withType: | 此回调可知激励视频的广告类型 |
通过设置BURewardedVideoAdDelegate代理,获取广告的点击、关闭、播放完成等回调。其他代理方法可参见BUDRewardedVideoAdViewController类#pragma mark - BURewardedVideoAdDelegate
激励视频广告需要让用户主动选择去观看,给用户选择,不能强制用户观看激励视频广告。广告播放完成需要给用户发放相应的奖励。
调用showAdFromRootViewController: 方法展示激励视频广告,此处需要传入当前展示的页面。一定要设置rootViewController,即展示广告和跳转落地页需要的viewController
在收到rewardedVideoAdVideoDidLoad回调后再允许用户观看广告,可保证播放流畅和展示流畅,用户体验更好。
同一次请求的广告最多只能计一次展示,重复的展示会被系统过滤。因此建议开发者在用户观看完广告后在rewardedVideoAdDidClose回调里将原来的广告对象置为nil 保证广告对象为新的请求对象
详细接入可参照Demo中的BUDRewardedVideoAdViewController类,广告加载请求部分可参照loadRewardVideoAdWithSlotID:方法,广告展示部分可参照showRewardVideoAd方法
在线客服智能客服 7*24小时在线人工客服 工作日 10~12点/14~19点