
激励视频是一种全屏播放的视频广告,一般展示场景是用户需要游戏复活、解锁游戏关卡、获得享受应用中的某些功能时由用户选择观看激励视频广告并获得相应激励。目前鸿蒙上激励广告的表现形式为:视频播放完展示Endcard页面,或者直接出现广告落地页。未经用户允许时(如未点击播放按钮)不能自动播放激励视频,用户可以在观看完整的视频后获取奖励。
初始化广告创建器
构建广告请求参数AdSlot
接口 | 是否必填 | 参数类型 | 含义 |
setCodeId() | 是 | String | 您在平台上申请的代码位Id,以9开头9位数字 |
setAdLoadType() | 否 | AdLoadTypeAdLoadType.UNKNOWN:未知AdLoadType.PRELOAD:预加载AdLoadType.LOAD:正常加载 | 用于标注此次的广告请求用途为预加载(当做缓存)还是实时加载,方便后续为开发者优化相关策略 |
setMediaExtra() | 否 | String | 用户透传信息,仅支持单个json对象格式,不可以嵌套json对象 |
setRewardName() | 否 | String | 设置广告请求粒度的奖励名称 |
setRewardAmount() | 否 | Number | 设置广告请求粒度的奖励数量 |
开发者在调用loadRewardAd加载广告后,在onAdCached方法中获取到CSJRewardAd对象后,调用showRewardAd方法展示广告。
展示广告时需要传入windowStage对象,在需要展示广告的UIAbility的onWindowStageCreate方法中获取
接口 | 参数 | 含义 |
onAdLoaded(ad: CSJRewardAd) | ad:广告对象 | 广告基础信息加载完成,此方法是回调后是广告可调用展示的最早时机 |
onAdCached(ad: CSJRewardAd) | ad:广告对象 | 广告基础信息与素材缓存完成,此时调用广告展示流畅,是展示广告的最理想时机 |
onError(code: number, message: string) | code:错误码message:错误信息 | 若加载中出错,会回调此方法 |
在调用展示广告前,创建广告交互监听器,用于实时获取广告展示、点击、奖励条件是否满足等
接口 | 参数 | 含义 |
onShow() | / | 广告展示 |
onSkip() | / | 广告播放中用户点击了跳过 |
onClick() | / | 广告被用户点击了 |
onComplete() | / | 广告整体播放完成 |
onClose() | / | 广告关闭 |
onRewardArrived(isVerify: boolean, rewardType: REWARD_AWARD_TYPE, extraInfo?: Object) | isVerify:本次奖励是否有效 | 广告满足了奖励条件时触发 |
为满足开发者对激励视频奖励发放逻辑处理,穿山甲广告变现为开发者提供了客户端和服务端奖励下发回调校验功能,开发者可基于此功能对满足奖励发放条件的用户进行发放奖励。
暂不支持广告位维度服务端奖励验证功能,仅支持使用各adn平台代码位维度服务端回调功能。
纯视频激励视频:
一般视频时长为5~60s,可通过观看足够视频时长获取奖励,奖励回调下发时即成功领奖。
互动类激励视频:
一般视频时长为5s~60s,激励倒计时过程中会出现互动玩法。可通过互动完成相应任务(或关闭互动玩法并观看达到计时时长要求)从而获取奖励,奖励回调下发时即成功领奖。
开发者不管使用服务端验证还是客户端验证都可以通过奖励验证回调方法进行奖励发放。
穿山甲根据“奖励发放条件”,直接通过onRewardArrived回调给到开发者客户端是否发放奖励,对接相对简单。奖励验证回调涵盖目前所有激励视频播放异常的场景,包括非用户主动操作导致的视频无法完成播放。
服务器回调是指用户在看完激励视频达到奖励下发条件时,穿山甲服务端会向开发者服务端发送一个验证申请,开发者服务端收到请求后判断是否给用户奖励,返回给穿山甲服务器true/false,最终客户端会通过onRewardArrived回调透传奖励下发结果,开发者根据回调进行奖励发放或者通过服务端接口验证结果进行奖励发放。
注意事项:
步骤1-2:穿山甲平台开启回调功能并配置回调地址,开发者通过客户端的AdSlot接口透传用户参数信息;
步骤3-6:穿山甲服务端拉取信息并拼接参数访问开发者服务端回调URL,开发者自行判断是否发放奖励,服务端判断过程可根据需求添加sign签名验证逻辑。
步骤7-8:开发者服务端将判断结果返回穿山甲服务端,CSJ服务端会通过onRewardArrived->isRewardValid透传到客户端
步骤9:穿山甲客户端给到开发者奖励回调,开发者根据回调结果进行奖励下发具体如下:
在穿山甲平台选中激励视频代码位,点击编辑 ,开启「服务端激励回调」 ,并配置回调相关参数
穿山甲服务器会以 GET 方式请求开发者的回调链接(开发者可自行拼接内部唯一标识字段),并拼接以下参数回传trans_id=%s&reward_name=%s&reward_amount=%d&extra=%s&sign=%s
字段名称 | 字段定义 | 字段类型 | 备注 |
sign | 签名 | string | 签名 |
trans_id | 交易 | string | 完成观看的唯一交易 ID |
reward_amount | 奖励数量 | int | 媒体平台创建代码位时配置的数值 |
reward_name | 奖励名称 | sting | 媒体平台创建代码位时配置的名称 |
extra | Extra | string | 调用 SDK 传入并透传,如无需要则为空 |
appSecurityKey: 您在穿山甲媒体平台新建奖励视频代码位获取到的密钥
transId:交易 id
Python 示例:
服务器回调url是一个get请求 ,开发者服务端默认返回的是一个json字符串{"isValid": true}
字段名称 | 字段定义 | 字段类型 | 备注 |
isValid | 校验结果 | bool | 判定结果,是否发放奖励 |
660版本开始支持激励视频-广告位维度服务端奖励验证详见下方变更列表内容。
变更前 | 变更后 |
onRewardArrived(isVerify: boolean,rewardType:REWARD_AWARD_TYPE,extraInfo?:Object) | againCount:当前广告是第几次再看,从1开始 isVerify: 本次奖励是否有效 rewardType:奖励类型 REWARD_AWARD_TYPE:基础奖励 reward_award_key_error_code: 错误码 reward_award_key_error_msg: 错误信息 reward_award_key_is_server_callback: 当前是否走了服务端回调链路 |
需确保调用广告展示onDidShow回调后获取
接口 | 返回值 | 含义 |
getMediationAdInfo() | object | undefined | 返回聚合相关信息 |
接口 | 返回值 | 含义 |
getAdnName() | string | 返回展示广告的adn名称 |
getAdnRitId() | string | 返回展示广告的adn代码位 |
getEcpm() | number | 返回展示广告的价格 |
getBiddingType() | number | 返回展示广告的竞价类型0为普通广告位,1 client竞价广告 2 server竞价广告 100 P层数据 |
getRitType() | string | 返回展示广告的广告类型"Banner" "Splash" "RewardVideo" "FullVideo" "Native" "Draw" "Interstitial" "InterstitialFull" |
CSJ激励视频广告请参考demo中的adtype/reward/RewardAdPage.ets接入示例
聚合维度激励视频广告请参考demo中mediation_adtype/reward/RewardAdPage.ets接入示例。
在线客服智能客服 7*24小时在线人工客服 工作日 10~12点/14~19点