window.AD = {}; //激励视频广告位id var myVideoAdUnitId = [ 'adunit-443ba9a35779ba97',//视频激励广告5,每日签到调用 'adunit-96a5ca68065cc57a',//视频激励广告4,轮盘抽奖处调用 'adunit-4f20955a953757b6',//视频激励广告3,右上角弹出ui调用 'adunit-3031ded224c6f52a',//视频激励广告2,解锁每日建筑调用 'adunit-0519ee68bb555a47' //视频激励广告1,登录奖励调用 ]; //banner 广告位id var myBannerUnitId = [ 'adunit-07f048ad868015e7',//流量主6 'adunit-c20c6aae39e7f61d',//流量主5 'adunit-9e3aca5308b5525d',//流量主4 'adunit-c2d33a6b65fbec56',//流量主3 'adunit-b1ffc155a559f526',//流量主2 'adunit-be390b99cb0f3895',//流量主1 ]; var rewardedVideoAdTemp, bannerAd; //播放视频广告 AD.playVideoAd = function playVideoAd(callback) { if (typeof wx == 'undefined') { callback({ isPlay: false, data: 'wx == undefined' }); return; } if (!rewardedVideoAdTemp) { callback({ isPlay: false, data: 'rewardedVideoAd == undefined' }); return; } //拉取失败,重新拉取 rewardedVideoAdTemp.show() .catch(err => { rewardedVideoAdTemp.load() .then(() => rewardedVideoAdTemp.show()) }) rewardedVideoAdTemp.onClose(res => { // 用户点击了【关闭广告】按钮 // 小于 2.1.0 的基础库版本,res 是一个 undefined if (res && res.isEnded || res === undefined) { // 正常播放结束,可以下发游戏奖励 console.log('正常播放结束,可以下发游戏奖励.'); callback({ isPlay: true, data: 'play end' }); } else { // 播放中途退出,不下发游戏奖励 console.log('播放中途退出,不下发游戏奖励.'); callback({ isPlay: false, data: 'play exit' }); } //取消对应的监听 rewardedVideoAdTemp.offClose(); rewardedVideoAdTemp.offError(); }) } //预加载视频广告,返回指定对象 //调用名字,广告单元下标,函数回调绑定 AD.loadVideoAdFromIndex = function loadVideoAdFromIndex(name, index, callback) { if (typeof wx == 'undefined') { callback({ isPlay: false, data: 'wx == undefined' }); return; } let currentAd = myVideoAdUnitId; let currentId = currentAd[index]; console.log('调用名字:', name, '==myVideoAdUnitId:', currentId); rewardedVideoAdTemp = wx.createRewardedVideoAd({ adUnitId: currentId }) rewardedVideoAdTemp.onLoad(() => { // console.log('激励视频 广告加载成功'); callback({ isPlay: false, data: name + '加载广告成功' }); rewardedVideoAdTemp.offLoad(); rewardedVideoAdTemp.offError(); }) //返回code参见此链接: //https://developers.weixin.qq.com/minigame/dev/api/RewardedVideoAd.onError.html rewardedVideoAdTemp.onError(err => { console.log(err); callback({ isPlay: false, data: err }); if (rewardedVideoAdTemp == null) return; rewardedVideoAdTemp.offError(); }) } //显示地图广告位 AD.playAd = function playAd(callback, callResize, callbackError) { if (typeof wx == 'undefined') { // return false; callback({ isPlay: false, data: 'wx == undefined' }); return; } //如果存在广告实例,删除 if (bannerAd) bannerAd.destroy(); let currentAd = myBannerUnitId; let currentId = currentAd[Math.floor(Math.random() * currentAd.length)]; console.log('myBannerUnitId:', currentId); let sysHeight = wx.getSystemInfoSync().windowHeight; let sysWidth = wx.getSystemInfoSync().windowWidth; //缩放到 let left = sysWidth * 0.2 * 0.5; let widthZoom = sysWidth * 0.8; bannerAd = wx.createBannerAd({ adUnitId: currentId, style: { left: left, top: sysHeight - 120, width: widthZoom, } }); bannerAd.onResize(res => { // console.log(res, res.width, res.height) // console.log(bannerAd, bannerAd.style.realWidth, bannerAd.style.realHeight) bannerAd.style.top = sysHeight - bannerAd.style.realHeight - 10; callResize(res); }); // bannerAd.style.width = widthZoom; bannerAd.show().then(() => { // console.log('banner 广告显示'); callback({ isPlay: true, height: bannerAd.style.realHeight, data: 'play sucess' }); }); bannerAd.onError(err => { console.log(err); callbackError(err); }) } AD.closeAd = function closeAd() { if (typeof wx == 'undefined') { // return false; return; } // if (bannerAd) // bannerAd.hide(); if (bannerAd) { bannerAd.hide(); bannerAd.destroy(); } }