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 Creator 微信小程序 原生广告集成 #### 创建和初始化原生广告组件 为了在Cocos Creator开发的微信小游戏中集成原生广告,首先需要创建并初始化原生广告组件。这一步骤类似于其他类型的广告设置,但具体实现有所不同。 ```javascript // Common.js 文件中的定义部分 export = { nativeAd: null, } ``` 当游戏启动或特定场景触发时,应当实例化`wx.createNativeAd()`来获取原生广告对象,并将其赋值给之前声明的对象属性[^1]: ```javascript if (cc.sys.platform === cc.sys.WECHAT_GAME) { this.nativeAd = wx.createNativeAd({ adUnitId: 'your_native_ad_unit_id', style: { left: 0, top: 0, width: 300 // 设置宽度适应不同设备分辨率 } }); try { await this.nativeAd.load(); console.log('native ad loaded'); const view = this.nativeAd.createView(); // 创建视图容器 // 添加到节点树中显示出来 cc.find('Canvas').addChild(view); // 可选配置项调整样式位置大小等参数 view.style.left = 50; view.style.top = 50; view.style.width = 250; } catch (error) { console.error('Failed to load or display the native ad:', error.message); } } ``` #### 处理生命周期事件 对于任何类型的广告来说,在其整个生命期内处理好各种状态变化都是非常重要的。针对原生广告也不例外,应该监听诸如加载完成、点击以及关闭之类的事件以便做出相应反应[^3]。 ```javascript this.nativeAd.onLoad(() => { console.log('The native advertisement has been successfully loaded.'); }); this.nativeAd.onError(error => { console.warn(`Error occurred while loading native ads:${JSON.stringify(error)}`); }); this.nativeAd.onResize(size => { console.info(`Size of the displayed native ad changed to ${size.width}x${size.height}px`); }); ``` 通过以上方式可以在Cocos Creator构建的游戏项目里顺利集成本地化的微信小游戏平台提供的原生广告服务功能[^2]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值