处理uniapp激励广告

使用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 重新打开对应广告位的展现。
posted @ 2022-11-07 15:46  时光独醒  阅读(2267)  评论(0)    收藏  举报