微信小程序自从支持激励式视频广告位以后,很多小程序为了变现都加入了此广告位,广告正常观看结束的次数越多就越赚钱,但是观看次数的比率过高也会面临封号的风险,那么如何才能规避这个风险呢?
实现思路:限制每个用户当天观看激励式视频广告位的次数,如果用户当天观看广告位超过了一定的次数就不再显示广告位,用户第二天打开小程序时清空第一天观看广告的次数,下面用实例代码来说明。
第一步:在小程序的 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。
总结
以上所述是小编给大家介绍的微信小程序中限制激励式视频广告位显示次数的实现思路,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
本文向大家介绍微信小程序激励式视频广告组件使用详解,包括了微信小程序激励式视频广告组件使用详解的使用技巧和注意事项,需要的朋友参考一下 微信小程序搜索:短视频去水印解析 目前微信小程序针对个人来说广告是最好的变现方式,广告主要分为: 1. Banner 2. 激励式视频 3. 插屏 Banner广告很简单,插入代码就可以显示 这里介绍下激励式视频广告实现(观看完整广告奖励积分): 小程序体验: 总
激励视频(RewardedVideo) 1. 确定SDK文件已经全部拷贝到工程文件的libs子目录下参考 2. 添加广告代码,添加广告代码前请确定已初始化SDK 例如: RewardedVideoAd mRewardedVideoAd = AdHub.getRewardedVideoAdInstance(this); mRewardedVideoAd.setRewardedVideoAd
本文向大家介绍微信小程序中插入激励视频广告并获取收益(实例代码),包括了微信小程序中插入激励视频广告并获取收益(实例代码)的使用技巧和注意事项,需要的朋友参考一下 最近微信小程序后台发送通知,小程序激励式视频广告组件日前已全量上线,也就是说大家可以在小程序中插入激励视频广告了,之前只允许小游戏可以使用 。 激励式视频广告 用户在小程序中主动触发激励式广告,并达成奖励下发标准(完整播放视频广告,并手
我正在尝试使用AdMob显示奖励视频广告。我添加了2个广告网络(AdColony、InMobi)并提供了所有必需的详细信息,如帐户ID等。 我还下载并编译了所需的网络SDK和适配器。 广告代码: 问题是我总是从AdMob那里得到同样的回应: 获取广告回复时出现问题。错误代码:0 有什么办法解决这个问题吗? 更新: 我通过从AdRequest中删除“addTestDevice()”克服了加载广告的问
1. 包含头文件 #import <AdHubSDK/AdHubSDK.h> 2. AdHubRewardBasedVideoAd 的初始化与请求 在需要导入广告的ViewController头文件中导入头文件并声明实例以及声明代理 #import <AdHubSDK/AdHubSDK.h> @interface AdHubRewardedVideoViewController () <AdH
本文向大家介绍微信小程序添加插屏广告并设置显示频率(一天一次),包括了微信小程序添加插屏广告并设置显示频率(一天一次)的使用技巧和注意事项,需要的朋友参考一下 插屏广告 用户触发小程序中的特定场景时,插屏广告将自动向用户展现,用户可以随时关闭插屏广告。广告触发场景由流量主自定义,广告按曝光计费(CPM)。 微信小程序今年新上线了插屏广告,设置和在代码库中接入都非常方便。详细可见微信小程序官方文档。