使用uniapp查看广告
激励视频广告组件。激励视频广告组件是一个原生组件,并且是一个全局单例。层级比上屏 Canvas 高,会覆盖在上屏 Canvas 上。激励视频 广告组件默认是隐藏的,需要调用 RewardedVideoAd.show() 将其显示。
方法
1、加载激励视频广告数据:Promise RewardedVideoAd.load()
返回值 Promise
激励视频广告加载数据的结果
2、显示激励视频广告:Promise RewardedVideoAd.show()
激励视频广告将从屏幕下方推入。
返回值 Promise
激励视频广告显示操作的结果
3、监听激励视频广告加载事件:RewardedVideoAd.onLoad(function callback)
参数 function callback
激励视频广告加载事件的回调函数
4、取消监听激励视频广告加载事件:RewardedVideoAd.offLoad(function callback)
参数 function callback
激励视频广告加载事件的回调函数
5、监听激励视频错误事件:RewardedVideoAd.onError(function callback)
参数 function callback
激励视频错误事件的回调函数
回调参数 Object res
属性 | 类型 | 说明 | 最低版本 |
errMsg | string | 错误信息 | |
errCode | number | 错误码 | |
6、取消监听激励视频错误事件:RewardedVideoAd.offError(function callback)
参数 function callback
激励视频错误事件的回调函数
7、监听用户点击 关闭广告
按钮的事件:RewardedVideoAd.onClose(function callback)
参数 function callback
用户点击 关闭广告
按钮的事件的回调函数
回调参数 Object res
属性 | 类型 | 说明 | 最低版本 |
isEnded | boolean | 视频是否是在用户完整观看的情况下被关闭的 | |
8、取消监听用户点击 关闭广告
按钮的事件:RewardedVideoAd.offClose(function callback)
参数 function callback
用户点击 关闭广告
按钮的事件的回调函数
API代码:
getAdsItem(item) { //看广告
// console.log(item.adTitle, item)
if (app.getIsVisitor()) {
return;
}
if(this.isShowAd){
return;
}
if (item) {
this.adItem = item;
this.isShowAd = true;
// #ifdef H5
this.isDownload = true;
// #endif
// #ifdef MP-WEIXIN
this.videoAdLoad(true);
// #endif
}
},
videoAdLoad(flag) { //实例化广告信息
let that = this;
if (uni.createRewardedVideoAd) {
videoAd = uni.createRewardedVideoAd({
adUnitId: this.adItem.adUuid
})
videoAd.onLoad(() => {
console.log('激励视频 广告加载成功');
})
videoAd.onError((err) => {
console.log('onError event emit');
this.onCloseAdVisit();
})
videoAd.onClose((res) => {
// 用户点击了【关闭广告】按钮
videoAd.offClose();
if (res && res.isEnded) {
// 正常播放结束,可以下发游戏奖励
this.adVisitEnd();
} else {
// 播放中途退出,不下发游戏奖励
}
this.onCloseAdVisit();
})
if(flag){
this.videoAdShow(); //显示广告
}
}
},
videoAdShow() { //显示激励广告
if (videoAd) {
videoAd.show().catch(() => {
// 失败重试
videoAd.load()
.then(() => videoAd.show())
.catch(err => {
// console.log('激励视频 广告显示失败');
common.toast('广告显示失败,请重试!')
this.onCloseAdVisit();
})
})
this.adVisitStart();
}
},
async adVisitStart() { //调开始看广告接口
},
async adVisitEnd() { //调结束看广告接口
},
onCloseAdVisit() { //清除广告数据
this.adItem = {};
this.visitId = null;
this.isShowAd = false,
videoAd = null;
},
注意:看广告需要在微信小程序公众平台中申请广告组件,否则不能正常使用
错误码信息与解决方案表
错误码说明
代码 | 异常情况 | 理由 | 解决方案 |
1000 | 后端错误调用失败 | 该项错误不是开发者的异常情况 | 一般情况下忽略一段时间即可恢复。 |
1001 | 参数错误 | 使用方法错误 | 可以前往 q.qq.com 确认具体教程(小程序和小游戏分别有各自的教程,可以在顶部选项中,“设计”一栏的右侧进行切换。 |
1002 | 广告单元无效 | 可能是拼写错误、或者误用了其他 APP 的广告 ID | 请重新前往 q.qq.com 确认广告位 ID。 |
1003 | 内部错误 | 该项错误不是开发者的异常情况 | 一般情况下忽略一段时间即可恢复。 |
1004 | 无适合的广告 | 广告不是每一次都会出现,这次没有出现可能是由于该用户不适合浏览广告 | 属于正常情况,且开发者需要针对这种情况做形态上的兼容。 |
1005 | 广告组件审核中 | 你的广告正在被审核,无法展现广告 | 请前往 q.qq.com 确认审核状态,且开发者需要针对这种情况做形态上的兼容。 |
1006 | 广告组件被驳回 | 你的广告审核失败,无法展现广告 | 请前往 q.qq.com 确认审核状态,且开发者需要针对这种情况做形态上的兼容。 |
1007 | 广告组件被驳回 | 你的广告能力已经被封禁,封禁期间无法展现广告 | 请前往 q.qq.com 确认小程序广告封禁状态。 |
1008 | 广告单元已关闭 | 该广告位的广告能力已经被关闭 | 请前往 q.qq.com 重新打开对应广告位的展现。 |