Cocos Creator微信小游戏添加视频广告

视频广告的添加可以先参考一下微信视频广告api
和创建banner广告一样。我们先写一个Common.js,

export = {
    videoBar_1: null,
    videoBar2 : null,
}

然后创建广告

var comm = require("./Common");
if(comm.videoBar_1 == null){
                comm.videoBar_1 = wx.createRewardedVideoAd({
                    adUnitId: '*****************************'//填上你的广告位id
                });
                comm.videoBar_1.onError(function(res){
                    console.log("video_1",res);
                })
                comm.videoBar_1.onLoad(() => {
                    console.log('复活激励视频 广告加载成功')
                })
            }

接下来我们需要了解一件事情,微信的视频广告只要是在你需要的地方写上代码加载,实际上不需要考虑他的分辨率,因为他是一个全屏的广告并且右上角有个退出按钮,而且不会和微信分享一样不能获得回调函数,微信视频广告是可以判断是否播放完成的。

所以他的加载方法是和微信官方api上写的是一样的

if (CC_WECHATGAME) {
                comm.videoBar_1.load()
                .then(() => comm.videoBar_1.show())
                .catch(err => console.log(err.errMsg));
           }

选择一个按钮然后绑定到这个方法,就可以点击之后播放广告了,并且不会有太大的延迟,如果是直接在同一页面创建并加载的话会使得广告会加载不出来或者重复加载的情况。

然后是他的回调判断,依旧是和广告一样,写在onload里面会好一点

            comm.videoBar_1.onClose(res => {
                console.log('第一个视频回调')
                if (res && res.isEnded || res === undefined) {
                    console.log("视频回调成功");
                } else {
                    console.log("复活视频回调失败");
                }
            })

正常来说,这样写完就结束了,但是实际上还是有个隐藏的问题。例如我们按照这样创建了两个或者三个广告位,都是用这种写法的话res将会重复,你看了第一个视频会执行其他几个视频回调的方法,因为已经存在了res,那么这种时候要怎么办呢

这个视频广告的onClose()是一个监听函数,能判断广告播放完或者广告播放完成点击关闭广告所进行的事件,一般而言,对于这种情况最好的解决方案也就是在onClose()里面加上tag的判断方法,然后根据每一个按钮根据不同的标识符来判断或者给回调成功后的方法加一个if判断标识符就可以了

关于标识符的写法参考之前我写的banner广告

你可能感兴趣的:(cocos新手教程,cocos,creator,cocos,微信,微信,微信视频广告,cocos)