uniad 激励视频广告如何进行服务端回调,下发奖励?

具体对接参考官方文档:https://uniapp.dcloud.io/component/ad-rewarded-video.html#%E6%BF%80%E5%8A%B1%E8%A7%86%E9%A2%91%E5%B9%BF%E5%91%8A

本文主要介绍服务端回调:

激励视频广告可以支持广告服务器到业务服务器的回调,用于业务系统判断是否提供奖励给观看广告的用户。配置服务器回调后,当用户成功看完广告时,广告服务器会访问配置的云函数,通知用户完成观看激励视频。

1、服务端回调流程图

2、服务器回调详细流程如下:

1、登陆 uniCloud (opens new window)web控制台,新建服务空间或选择已有服务空间,然后在HBuilderX中新建uni-app项目并关联服务空间,新建云函数上传,用于接收广告的回调。注意这个云函数不是uniAdCallback, 不能与 uniAdCallback 重名,起一个别的名字,如 uniAd, 函数内容见官方文档

2、在 uniAD web控制台创建激励视频广告位,开通服务器回调并选择上一步新建的云函数

3、开通后将在选择的服务空间下自动部署一个加密云函数 uniAdCallback。注意这个 uniAdCallback 云函数是自动生成的,不是我们创建的

4、用户观看激励视频到一定时间,广告商自动发送回调请求给 uniAdCallback

5、uniAdCallback 接收广告商服务器回调验证签名并抹平穿山甲/优量汇/快手参数差异,然后以 callFunction (opens new window)方式调用我们自己创建的云函数(uniAd),将参数传给我们的自定义云函数

6、自定义云函数接收到传参后将参数轮询发送给我们自己的应用服务器

7、应用服务器验证请求合法性,下发奖励

3、注意:

  • 用户观看激励视频到一定时间后会自动回调,不需要点×号关闭广告

  • 因为服务器通信和前端事件是并行的,前端需要轮询向服务器请求并验证结果

4、服务端如何校验请求

最后一步需要 应用服务器验证请求下发奖励,那服务端如何验证请求合法呢,在 官方文档中已经给出了在自定义云函数中如何校验请求,可以将代码迁移到我们自己的服务端

5、如何防止重复下发奖励

每次回调都有一个完成观看的唯一交易ID trans_id, 记录一下防止重复下发奖励。trans_id 已经经过上一步的签名验证,不会出现伪造的情况。

引用链接

[1] https://uniapp.dcloud.io/component/ad-rewarded-video.html#%E6%BF%80%E5%8A%B1%E8%A7%86%E9%A2%91%E5%B9%BF%E5%91%8A: https://uniapp.dcloud.io/component/ad-rewarded-video.html#%E6%BF%80%E5%8A%B1%E8%A7%86%E9%A2%91%E5%B9%BF%E5%91%8A
[2] uniCloud (opens new window): https://unicloud.dcloud.net.cn/login
[3] 官方文档: https://uniapp.dcloud.io/component/ad-rewarded-video.html#%E7%94%A8%E6%88%B7%E4%BA%91%E5%87%BD%E6%95%B0%E8%AF%A6%E7%BB%86%E8%AF%B4%E6%98%8E