激励广告服务端验证接入指引
激励广告是用户通过观看广告内容获取奖励的广告,广告时长一般为 6~30s,用户观看足够广告时长后即可获取奖励,常见奖励如游戏复活、领取代币等。目前开发者通过广告组件的 onClose 回调函数判断用户是否已经看完广告,满足奖励下发条件。
服务端验证是一种可选的验证方式。满足奖励条件时,SUD OP SVR 将请求发送到开发者服务器,通知该用户已满足奖励条件,可下发奖励。开发者收到请求后,可在服务端进行校验,为奖励下发提供额外的保护机制,以规避客户端的作弊行为。
服务端验证
流程时序图
整体流程如下:
开发者在 SUD OP 后台开启激励视频服务端验证,填写回调 URL、密钥等信息;
开发者创建广告组件,填写对应的参数;
用户观看激励广告,满足奖励条件时,会有两次回调:
a. 前端回调,即广告组件的 onClose 回调;
b. 服务端回调,SUD OP 将用户满足奖励下发条件事件上报到 SUD OP SVR,SUD OP SVR 再将请求转发到开发者配置的服务端接口。
开发者依据回调结果,给用户下发奖励。
相比于前端回调,服务端回调可能存在延迟。基于用户体验考虑,可以在收到前端回调时下发奖励,在收到服务端回调时进行验证,作为保障手段。如果奖励本身比较重要,可能影响游戏整体进程,那么也可以等收到服务端回调后再下发奖励。
开启服务端验证
在 SUD OP 后台-商业能力-流量主下找到「服务端奖励回调」
点击开启
填写相关配置

创建广告组件
激励视频广告组件的创建与展示逻辑请参考官方文档,与原始流程没有差异。
对于自定义校验字段的透传,在激励视频实例下新增接口,需要在展示 show 之前完成调用。
方法名:setServerSideVerificationData
参数:customSSVData
参数类型:Object
customSSVData 内参数释义:
| key | 类型 | 释义 |
|---|---|---|
| userId | string | 用户 id |
| rewardItem | string | 奖励品类 |
| rewardAmount | number | 奖励个数 |
| customData | string | 自定义数据 |
示例如下:
const videoAd = sud.createRewardedVideoAd({
adUnitId: 'XXX'
})
if (videoAd.setServerSideVerificationData) {
videoAd.setServerSideVerificationData({
userId: 'XXX',
rewardItem: '金币',
rewardAmount: 10,
customData: 'XXX'
})
}
videoAd.show()服务端回调协议
协议
详见 激励视频完播回调
回调重试机制
SUD OP 后台回调开发者后台设置超时为 1s,若开发者回调在超时时间内未返回,触发重试,重试 3 次,间隔为 15s、22.5s 和 33.75s。
Q&A
Q1. 服务端验证能力是否是必须使用的?适用于什么情况?
A. 该能力设计初衷是帮助开发者应对可能存在的外挂作弊情况,如直接跳过广告获取奖励等;若开发者判断游戏当前外挂作弊风险较小,则无需接入。
Q2. 接入该能力是否有风险/注意事项?
A. 通过服务端回调可能存在延迟情况,基于用户体验考虑,建议开发者在收到前端回调时下发奖励,再在收到服务端回调时进行验证,作为保障手段。如果奖励本身比较重要,可能影响游戏整体进程,那么也可以等收到服务端回调后再下发奖励。
