CocosCreator微信小游戏广告接入(banner、激励式视频、插屏)

  • 开启小游戏流量主
    • 开启流量主(访问量>=1000)
  • 创建广告位
    • 微信小游戏平台的广告类型主要分为1:banner广告,2:插屏广告,3:激励视频,4:格子广告以及5:原生模版广告。
      CocosCreator微信小游戏广告接入(banner、激励式视频、插屏)_第1张图片
  • 创建好广告位就开始编写代码
    • 定义几个全局变量,分别为
window.bannerAdv = null;
window.videoAdv = null;
window.interstitialAd = null;
  • 初始化广告组件
    • 这里我直接初始化了3个广告类型(banner,视频,插屏)
		let winSize = wx.getSystemInfoSync();//获取像素size
        // 创建 Banner 广告实例,提前初始化
        let bannerWidth = 300
        let bannerHeight = 80
        bannerAdv = wx.createBannerAd({
            adUnitId: '',//传入自己的id,此处为banner广告位ID
            adIntervals: 30,//定时刷新,最低30S
            style: {
                left: (winSize.windowWidth - bannerWidth) / 2,
                top: winSize.windowHeight - bannerHeight,
                width: bannerWidth,
            },
        })
        //重新定banner位置
        bannerAdv.onResize((res) => {
            bannerAdv.style.top = winSize.windowHeight - bannerAdv.style.realHeight-1;
        })
        // 在适合的场景显示 Banner 广告
        bannerAdv.show();//不建议直接显示
		//拉取失败处理
        bannerAdv.onError((err) => {
            console.log(err);
        })

        // 创建激励视频广告实例,提前初始化
        videoAdv = wx.createRewardedVideoAd({
            adUnitId: ''//传入自己的id,此处为视频广告位ID
        })

        // 创建插屏广告实例,提前初始化
        if (wx.createInterstitialAd) {
            interstitialAd = wx.createInterstitialAd({
                adUnitId: ''//传入自己的id,此处为插屏广告位ID
            })
        }
    },

  • 创建好后,在合适的地方调用
    • banner广告调用
//显示banner
bannerAdv.show()
//隐藏banner
bannerAdv.hide()
//销毁banner
bannerAdv.destroy()
  • 激励式视频广告调用
            // 用户触发广告后,显示激励视频广告
            videoAdv.show().catch(() => {
                // 失败重试
                videoAdv.load()
                    .then(() => videoAdv.show())
                    .catch(err => {
                        console.log('激励视频 广告显示失败')
                    })
            })
            //拉取异常处理
            videoAdv.onError((err) => {
                console.log(err);
            })
            videoAdv.onClose((res) => {
                if(!videoAdv)return;
                videoAdv.offClose();//需要清除回调,否则第N次广告会一次性给N个奖励
                //关闭
                if (res && res.isEnded || res === undefined) {
                    //正常播放结束,需要下发奖励
                    
                } else {
                    //播放退出,不下发奖励
                }
            })
  • 插屏广告调用
					// 在适合的场景显示插屏广告
                    if (interstitialAd) {
                        interstitialAd.show().catch((err) => {
                            console.error(err)
                        })
                    }
  • 接下来就可以打包微信平台,然后将代码放入微信开发者工具中,在开发者工具中看到广告是否正常拉取了喔。

你可能感兴趣的:(cocos,creator学习日记,微信,游戏,游戏开发,js,cocos-creator)