- 激励视频广告
- 广告创建
- 拉取失败,重新拉取
- 监听用户关闭广告
- 注意事项
- qh.createRewardedVideoAd
- RewardedVideoAd.destroy
- Promise RewardedVideoAd.load
- RewardedVideoAd.offClose(function callback)
- RewardedVideoAd.offError(function callback)
- RewardedVideoAd.offLoad(function callback)
- RewardedVideoAd.onClose(function callback)
- RewardedVideoAd.onError(function callback)
- RewardedVideoAd.onLoad(function callback)
- Promise RewardedVideoAd.show
激励视频广告
激励视频广告组件是由客户端原生的图片、文本、视频控件组成的,层级最高,会覆盖在普通组件上。
广告创建
激励视频广告组件默认是隐藏的,因此可以提前创建,以提前初始化组件。开发者可以在小程序页面的 onLoad 事件回调中创建广告实例,并在该页面的生命周期内重复调用该广告实例。
let rewardedVideoAd = null
Page({
methods: {
onLoad() {
let rewardedVideoAd = qh.createRewardedVideoAd({
adUnitId: 'xxxxx'
})
rewardedVideoAd.onLoad(()=>{
console.log('视频加载成功')
})
rewardedVideoAd.onError((err)=>{
if (err) {
console.error(err.errMsg)
}
})
rewardedVideoAd.onClose((res)=>{
console.log('视频关闭')
if (res) {
console.log('是否完整播放:' + res.isEnded)
console.log('播放时间:' + res.currentTime)
console.log('广告总时间:' + res.duration)
}
})
}
}
});
为避免滥用广告资源,目前每个用户每天可观看激励式视频广告的次数有限,建议展示广告按钮前先判断广告是否拉取成功。 ## 显示/隐藏 激励视频广告组件默认是隐藏的,在用户主动触发广告后,开发者需要调用 RewardedVideoAd.show() 进行显示。
rewardedVideoAd.show()
只有在用户点击激励视频广告组件上的 关闭 按钮时,广告才会关闭。开发者不可控制激励视频广告组件的隐藏。 ## 广告拉取成功与失败 激励视频广告组件是自动拉取广告并进行更新的。在组件创建后会拉取一次广告,用户点击 关闭广告 后会去拉取下一条广告。 如果拉取成功,通过 RewardedVideoAd.onLoad() 注册的回调函数会执行,RewardedVideoAd.show() 返回的 Promise 也会是一个 resolved Promise。两者的回调函数中都没有参数传递。
rewardedVideoAd.onLoad(() => {
console.log('激励视频 广告加载成功')
})
rewardedVideoAd.show()
.then(() => console.log('激励视频 广告显示'))
如果拉取失败,通过 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(() => {
rewardedVideoAd.load()
.then(() => rewardedVideoAd.show())
.catch(err => {
console.log('激励视频 广告显示失败')
})
})
如果组件的自动拉取是成功的,那么调用 load() 方法会直接返回一个 resolved Promise,而不会去拉取广告。
rewardedVideoAd.load()
.then(() => rewardedVideoAd.show())
监听用户关闭广告
只有在用户点击激励视频广告组件上的 关闭广告 按钮时,广告才会关闭。这个事件可以通过 RewardedVideoAd.onClose() 监听。
RewardedVideoAd.onClose() 的回调函数会传入一个参数 res,res.isEnded 描述广告被关闭时的状态。
参数名 | 类型 | 说明 |
---|---|---|
isEnded | boolean | 视频是否是在用户完整观看的情况下被关闭的 |
currentTime | number | 视频已播放时长 |
duration | number | 视频总时长 |
开发者需要根据 res.isEnded 判断是否视频是否播放结束、可以向用户下发奖励。
rewardedVideoAd.onClose(res => {
// 用户点击了【关闭广告】按钮
if (res && res.isEnded) {
// 正常播放结束,可以下发游戏奖励
} else {
// 播放中途退出,不下发游戏奖励
}
})
注意事项
多次调用 RewardedVideoAd.onLoad()、RewardedVideoAd.onError()、RewardedVideoAd.onClose() 等方法监听广告事件会产生多次事件回调,建议在创建广告后监听一次即可,或者先取消原有的监听事件再重新监听。
qh.createRewardedVideoAd
解释: 创建激励视频广告组件。调用该方法创建的激励视频广告是一个单例,创建新单例时,将会自动销毁上一个单例。
方法参数: Object object
object
参数说明:
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
adUnitId | String | 是 | - | 广告单元 id |
返回值:RewardedVideoAd
示例:
- 在 js 文件中
Page({
methods: {
showAd() {
let RewardedVideoAd = qh.createRewardedVideoAd({
adUnitId: 'xxxxx'
})
RewardedVideoAd.onLoad(()=>{
console.log('视频加载成功')
})
RewardedVideoAd.onError((err)=>{
if (err) {
console.error(err.errMsg)
}
})
RewardedVideoAd.onClose((res)=>{
console.log('视频关闭')
if (res) {
console.log('是否完整播放:' + res.isEnded)
console.log('播放时间:' + res.currentTime)
console.log('广告总时间:' + res.duration)
}
})
RewardedVideoAd.show().then(()=>{
}).catch(()=>{
RewardedVideoAd.load()
.then(() => {
RewardedVideoAd.show()
})
.catch(err => {
// 销毁
RewardedVideoAd.destroy()
})
})
}
}
});
RewardedVideoAd.destroy
解释: 销毁激励视频广告实例, 这是唯一可以销毁实例的方法,用户点击关闭按钮,并不会销毁实例。
Promise RewardedVideoAd.load
解释: 加载激励视频广告。
返回值:Promise
解释: 激励视频广告加载数据的结果。
RewardedVideoAd.offClose(function callback)
解释: 取消监听用户点击 关闭广告
按钮的事件。
方法参数: function callback
解释:用户点击 关闭广告
按钮的事件的回调函数。
RewardedVideoAd.offError(function callback)
解释: 取消监听激励视频错误事件
方法参数: function callback
解释:激励视频错误事件的回调函数。
RewardedVideoAd.offLoad(function callback)
解释: 取消监听激励视频广告加载事件。
方法参数: function callback
解释:激励视频广告加载事件的回调函数。
RewardedVideoAd.onClose(function callback)
解释: 监听用户点击 关闭广告
按钮的事件
方法参数: function callback
解释:监听用户点击 关闭广告
按钮的事件。
Object
回调参数说明:需要判断回调参数是否存在
参数名 | 类型 | 说明 |
---|---|---|
isEnded | boolean | 视频是否是在用户完整观看的情况下被关闭的 |
currentTime | number | 视频已播放时长 |
duration | number | 视频总时长 |
RewardedVideoAd.onError(function callback)
解释: 监听激励视频错误事件。
方法参数: function callback
解释:激励视频错误事件的回调函数。
Object
回调参数说明:
参数名 | 类型 | 说明 | 备注 |
---|---|---|---|
errMsg | string | 错误信息 | |
errCode | number | 错误码 |
RewardedVideoAd.onLoad(function callback)
解释: 监听激励视频广告加载事件。
方法参数: function callback
解释:激励视频广告加载事件的回调函数。
Promise RewardedVideoAd.show
解释: 显示激励视频广告。激励视频广告将从屏幕下方推入。
返回值:Promise
解释: 激励视频广告显示操作的结果。