微信小程序自从支持激励式视频广告位以后,很多小程序为了变现都加入了此广告位,广告正常观看结束的次数越多就越赚钱,但是观看次数的比率过高也会面临封号的风险,那么如何才能规避这个风险呢?
实现思路:限制每个用户当天观看激励式视频广告位的次数,如果用户当天观看广告位超过了一定的次数就不再显示广告位,用户第二天打开小程序时清空第一天观看广告的次数,下面用实例代码来说明。
第一步:在小程序的 onLaunch 里获取本地存储的上一次观看激励视频广告保存的时间,并获取本地存储观看广告位的次数,如果上一次观看激励视频广告时间的晚上12点小于当前时间,则将观看广告位的次数清0;
onLaunch: function() { // 获取激励视频广告位加载的次数 var count = wx.getStorageSync('showRewardedVideoAdCount'); if (!count) { wx.setStorage({ key: 'showRewardedVideoAdCount', data: 0, }) }; // 上次观看激励视频广告保存的时间 var lastSaveTime = wx.getStorageSync('saveVideoAdCountTime'); if (lastSaveTime) { // 计算最后一次保存时间晚上12点的时间戳 var endTime = new Date(new Date(lastSaveTime).setHours(23, 59, 59, 999)); // 当前时间戳 var currentDate = new Date(); var currentTime = currentDate.getTime(); // 清空激励广告位观看次数 if (currentTime > endTime) { wx.setStorage({ key: 'showRewardedVideoAdCount', data: 0, }) } } },
第二步:发起请求从服务端获取广告位ID以后生成广告位,这一步只做参考。
// 如果激励广告位视频存在 if (rewardedAdId) { that.setData({ rewardedAdId: rewardedAdId }, function() { // 创建一个激励视频广告位,rewardedVideoAd为全局变量,与Page()同级. rewardedVideoAd = wx.createRewardedVideoAd({ adUnitId: rewardedAdId }); // 监听加载 rewardedVideoAd.onLoad(() => { console.log('激励广告加载成功'); }); // 监听失败 rewardedVideoAd.onError(err => { console.log('激励广告加载失败' + err); }); }) }
注意:以上代码中广告位ID rewardedAdId 为发起请求获取,而rewardedVideoAd 为整个页面的全局全变,与Page()同级。
第三步:在用户触发广告位以后,获取用户当天已正常观看完毕广告位的次数A与限制广告位播放的最多次数B,如果A小于B则继续加载广告位,否则播放视频。在广告位正常播放完毕后,要更新本地存储的播放次数与观看时间。
// 点击播放 bindPlay: function() { var that = this; var count = wx.getStorageSync('showRewardedVideoAdCount'); // 对应页面上的video标签 var videoContext = wx.createVideoContext('myVideo'); // 限制激励视频最大播放次数 if (count < App.globalData.maxShowRewardedAdCount) { // 如果存在激励视频广告ID,并且当前页面已经播放过一次广告 if (that.data.rewardedAdId && that.data.showRewardedAd == 1) { // 暂停视频 videoContext.stop(); // 加载广告位 rewardedVideoAd.load().then(function() { rewardedVideoAd.show(); }).catch(function(err) { console.log('激励广告位加载失败'); }); // 广告位关闭后 rewardedVideoAd.onClose(function(res) { that.setData({ showRewardedAd: 0 }); videoContext.play(); // 保存累加的次数 var newCount = parseInt(count) + 1; wx.setStorage({ key: 'showRewardedVideoAdCount', data: newCount, }); var time = new Date() time = time.getTime(); // 更新保存的时间 wx.setStorage({ key: 'saveVideoAdCountTime', data: time }); }) } else { // 继续播放 videoContext.play(); } } else { // 继续播放 videoContext.play(); } },
上面的代码中,我们对是否有广告位ID做了判断,如第6行中的 that.data.rewardedAdId ,如果没有广告位ID,则直接播放视频,另外,如果用户播放完一个视频以后可能还会在该页面的推荐中观看其它视频,而此时再次弹出广告位的体验可能会不太好,所以我又加了入了一个判断,如上面代码中第6行的 that.data.showRewardedAd,页面初始化时该值为1,当播放完一次后将其归0。
总结
以上所述是小编给大家介绍的微信小程序中限制激励式视频广告位显示次数的实现思路,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
更新日志
- 黄乙玲1988-无稳定的爱心肝乱糟糟[日本东芝1M版][WAV+CUE]
- 群星《我们的歌第六季 第3期》[320K/MP3][70.68MB]
- 群星《我们的歌第六季 第3期》[FLAC/分轨][369.48MB]
- 群星《燃!沙排少女 影视原声带》[320K/MP3][175.61MB]
- 乱斗海盗瞎6胜卡组推荐一览 深暗领域乱斗海盗瞎卡组分享
- 炉石传说乱斗6胜卡组分享一览 深暗领域乱斗6胜卡组代码推荐
- 炉石传说乱斗本周卡组合集 乱斗模式卡组最新推荐
- 佟妍.2015-七窍玲珑心【万马旦】【WAV+CUE】
- 叶振棠陈晓慧.1986-龙的心·俘虏你(2006复黑限量版)【永恒】【WAV+CUE】
- 陈慧琳.1998-爱我不爱(国)【福茂】【WAV+CUE】
- 咪咕快游豪礼放送,百元京东卡、海量欢乐豆就在咪咕咪粉节!
- 双11百吋大屏焕新“热”,海信AI画质电视成最大赢家
- 海信电视E8N Ultra:真正的百吋,不止是大!
- 曾庆瑜1990-曾庆瑜历年精选[派森][WAV+CUE]
- 叶玉卿1999-深情之选[飞图][WAV+CUE]