GlobalAd.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. window.AD = {};
  2. //激励视频广告位id
  3. var myVideoAdUnitId = [
  4. 'b8q9b6qjo2p1jdce45',//视频激励广告5,每日签到调用
  5. 'ah1ggc7jdikf3gkmf5',//视频激励广告4,轮盘抽奖处调用
  6. 'e6o7dhja6gn5q9ejlq',//视频激励广告3,右上角弹出ui调用
  7. 'al5to3ihqon66buhk9',//视频激励广告2,解锁每日建筑调用
  8. '30hdfnou22j36empjd' //视频激励广告1,登录奖励调用
  9. ];
  10. //banner 广告位id
  11. var myBannerUnitId = [
  12. '4ha83atg1hoq5hgqms',//流量主6
  13. '155m4he4n3n1p6aof2',//流量主5
  14. 'nvri31t9pra238d8mi',//流量主4
  15. '14k5ddj48o4e4k5ia0',//流量主3
  16. '19oommsdec53gf6n5k',//流量主2
  17. 'ao4e3b4fhatc2cc9kl',//流量主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. //临时去掉广告
  98. return;
  99. bannerAd = wx.createBannerAd({
  100. adUnitId: currentId,
  101. style: {
  102. left: left,
  103. top: sysHeight - 120,
  104. width: widthZoom,
  105. }
  106. });
  107. bannerAd.onResize(res => {
  108. // console.log(res, res.width, res.height)
  109. // console.log(bannerAd, bannerAd.style.realWidth, bannerAd.style.realHeight)
  110. bannerAd.style.top = sysHeight - bannerAd.style.realHeight - 10;
  111. callResize(res);
  112. });
  113. // bannerAd.style.width = widthZoom;
  114. bannerAd.show().then(() => {
  115. // console.log('banner 广告显示');
  116. callback({ isPlay: true, height: bannerAd.style.realHeight, data: 'play sucess' });
  117. });
  118. bannerAd.onError(err => {
  119. console.log(err);
  120. callbackError(err);
  121. })
  122. }
  123. AD.closeAd = function closeAd() {
  124. if (typeof wx == 'undefined') {
  125. // return false;
  126. return;
  127. }
  128. // if (bannerAd)
  129. // bannerAd.hide();
  130. if (bannerAd) {
  131. bannerAd.hide();
  132. bannerAd.destroy();
  133. }
  134. }