GlobalAd.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. window.AD = {};
  2. //激励视频广告位id
  3. var myVideoAdUnitId = [
  4. 'adunit-443ba9a35779ba97',//视频激励广告5,每日签到调用
  5. 'adunit-96a5ca68065cc57a',//视频激励广告4,轮盘抽奖处调用
  6. 'adunit-4f20955a953757b6',//视频激励广告3,右上角弹出ui调用
  7. 'adunit-3031ded224c6f52a',//视频激励广告2,解锁每日建筑调用
  8. 'adunit-0519ee68bb555a47' //视频激励广告1,登录奖励调用
  9. ];
  10. //banner 广告位id
  11. var myBannerUnitId = [
  12. 'adunit-07f048ad868015e7',//流量主6
  13. 'adunit-c20c6aae39e7f61d',//流量主5
  14. 'adunit-9e3aca5308b5525d',//流量主4
  15. 'adunit-c2d33a6b65fbec56',//流量主3
  16. 'adunit-b1ffc155a559f526',//流量主2
  17. 'adunit-be390b99cb0f3895',//流量主1
  18. ];
  19. var rewardedVideoAdTemp, bannerAd;
  20. //播放视频广告
  21. AD.playVideoAd = function playVideoAd(callback) {
  22. if (typeof wx == 'undefined') {
  23. callback({ isPlay: false, data: 'wx == undefined' });
  24. return;
  25. }
  26. if (!rewardedVideoAdTemp) {
  27. callback({ isPlay: false, data: 'rewardedVideoAd == undefined' });
  28. return;
  29. }
  30. //拉取失败,重新拉取
  31. rewardedVideoAdTemp.show()
  32. .catch(err => {
  33. rewardedVideoAdTemp.load()
  34. .then(() => rewardedVideoAdTemp.show())
  35. })
  36. rewardedVideoAdTemp.onClose(res => {
  37. // 用户点击了【关闭广告】按钮
  38. // 小于 2.1.0 的基础库版本,res 是一个 undefined
  39. if (res && res.isEnded || res === undefined) {
  40. // 正常播放结束,可以下发游戏奖励
  41. console.log('正常播放结束,可以下发游戏奖励.');
  42. callback({ isPlay: true, data: 'play end' });
  43. } else {
  44. // 播放中途退出,不下发游戏奖励
  45. console.log('播放中途退出,不下发游戏奖励.');
  46. callback({ isPlay: false, data: 'play exit' });
  47. }
  48. //取消对应的监听
  49. rewardedVideoAdTemp.offClose();
  50. rewardedVideoAdTemp.offError();
  51. })
  52. }
  53. //预加载视频广告,返回指定对象
  54. //调用名字,广告单元下标,函数回调绑定
  55. AD.loadVideoAdFromIndex = function loadVideoAdFromIndex(name, index, callback) {
  56. if (typeof wx == 'undefined') {
  57. callback({ isPlay: false, data: 'wx == undefined' });
  58. return;
  59. }
  60. let currentAd = myVideoAdUnitId;
  61. let currentId = currentAd[index];
  62. console.log('调用名字:', name, '==myVideoAdUnitId:', currentId);
  63. rewardedVideoAdTemp = wx.createRewardedVideoAd({ adUnitId: currentId })
  64. rewardedVideoAdTemp.onLoad(() => {
  65. // console.log('激励视频 广告加载成功');
  66. callback({ isPlay: false, data: name + '加载广告成功' });
  67. rewardedVideoAdTemp.offLoad();
  68. rewardedVideoAdTemp.offError();
  69. })
  70. //返回code参见此链接:
  71. //https://developers.weixin.qq.com/minigame/dev/api/RewardedVideoAd.onError.html
  72. rewardedVideoAdTemp.onError(err => {
  73. console.log(err);
  74. callback({ isPlay: false, data: err });
  75. if (rewardedVideoAdTemp == null) return;
  76. rewardedVideoAdTemp.offError();
  77. })
  78. }
  79. //显示地图广告位
  80. AD.playAd = function playAd(callback, callResize, callbackError) {
  81. if (typeof wx == 'undefined') {
  82. // return false;
  83. callback({ isPlay: false, data: 'wx == undefined' });
  84. return;
  85. }
  86. //如果存在广告实例,删除
  87. if (bannerAd)
  88. bannerAd.destroy();
  89. let currentAd = myBannerUnitId;
  90. let currentId = currentAd[Math.floor(Math.random() * currentAd.length)];
  91. console.log('myBannerUnitId:', currentId);
  92. let sysHeight = wx.getSystemInfoSync().windowHeight;
  93. let sysWidth = wx.getSystemInfoSync().windowWidth;
  94. //缩放到
  95. let left = sysWidth * 0.2 * 0.5;
  96. let widthZoom = sysWidth * 0.8;
  97. bannerAd = wx.createBannerAd({
  98. adUnitId: currentId,
  99. style: {
  100. left: left,
  101. top: sysHeight - 120,
  102. width: widthZoom,
  103. }
  104. });
  105. bannerAd.onResize(res => {
  106. // console.log(res, res.width, res.height)
  107. // console.log(bannerAd, bannerAd.style.realWidth, bannerAd.style.realHeight)
  108. bannerAd.style.top = sysHeight - bannerAd.style.realHeight - 10;
  109. callResize(res);
  110. });
  111. // bannerAd.style.width = widthZoom;
  112. bannerAd.show().then(() => {
  113. // console.log('banner 广告显示');
  114. callback({ isPlay: true, height: bannerAd.style.realHeight, data: 'play sucess' });
  115. });
  116. bannerAd.onError(err => {
  117. console.log(err);
  118. callbackError(err);
  119. })
  120. }
  121. AD.closeAd = function closeAd() {
  122. if (typeof wx == 'undefined') {
  123. // return false;
  124. return;
  125. }
  126. // if (bannerAd)
  127. // bannerAd.hide();
  128. if (bannerAd) {
  129. bannerAd.hide();
  130. bannerAd.destroy();
  131. }
  132. }