使用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 重新打开对应广告位的展现。