tencent cloud

腾讯云超级应用服务

激励视频广告

Download
聚焦模式
字号
最后更新时间: 2025-04-09 18:35:50
激励视频广告组件是由客户端原生的图片、文本、视频控件组成的,层级最高,会覆盖在上屏 Canvas 上。
开发者可以调用 wx.createRewardedVideoAd 创建激励视频广告组件。该方法返回的是一个全局单例
let video1 = wx.createRewardedVideoAd({ adUnitId: 'xxxx' })
let video2 = wx.createRewardedVideoAd({ adUnitId: 'xxxx' })
console.log(video1 === video2)
// true
激励视频广告组件默认是隐藏的,因此可以提前创建,以提前初始化组件。
let rewardedVideoAd = wx.createRewardedVideoAd({ adUnitId: 'xxxx' })
为避免滥用广告资源,可能会对每个用户每天可观看激励式视频广告的次数进行限制,建议展示广告按钮前先判断广告是否拉取成功。

显示/隐藏

激励视频广告组件默认是隐藏的,需要调用 RewardedVideoAd.show() 进行显示。
rewardedVideoAd.show()
只有在用户点击激励视频广告组件上的关闭广告按钮时,广告才会关闭。开发者不可控制激励视频广告组件的隐藏。

广告拉取成功与失败

激励视频广告组件是自动拉取广告并进行更新的。在组件创建后会拉取一次广告,用户点击关闭广告后会去拉取下一条广告。
如果拉取成功。RewardedVideoAd.onLoad() 会执行,RewardedVideoAd.show() 返回的 Promise 也会是一个 resolved Promise。两者的回调函数中都没有参数传递。
rewardedVideoAd.onLoad(() => {
console.log('rewardedVideoAd load')
})

rewardedVideoAd.show()
.then(() => console.log('rewardedVideoAd show'))
如果拉取失败,通过 RewardedVideoAd.onError() 注册的回调函数会执行,回调函数的参数是一个包含错误信息的对象。常见异常错误参考文档。
rewardedVideoAd.onError(err => {
console.log(err)
})
RewardedVideoAd.show() 返回的 Promise 也会是一个 rejected Promise。
rewardedVideoAd.show()
.catch(err => console.log(err))

拉取失败,重新拉取

如果组件的某次自动拉取失败,那么之后调用的 show() 将会被 reject。此时可以调用 RewardedVideoAd.load() 手动重新拉取广告。
rewardedVideoAd.show()
.catch(err => {
rewardedVideoAd.load()
.then(() => rewardedVideoAd.show())
})
如果组件的自动拉取是成功的,那么调用 load() 方法会直接返回一个 resolved Promise,而不会去拉取广告。
rewardedVideoAd.load()
.then(() => rewardedVideoAd.show())

监听用户关闭广告

只有在用户点击激励视频广告组件上的关闭广告按钮时,广告才会关闭。这个事件可以通过 RewardedVideoAd.onClose() 监听。
关闭按钮是在激励式视频播放结束后才出现,所以触发 onClose 时已经播放结束,onClose 触发时可以认为用户已经看完了广告。
RewardedVideoAd.onClose() 的回调函数会传入一个参数 res,res.isEnded 描述广告被关闭时的状态。
属性
类型
说明
isEnded
boolean
视频是否是在用户完整观看的情况下被关闭的,true 表示用户是在视频播放完以后关闭的视频,false 表示用户在视频播放过程中关闭了视频。





帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈