這篇文章將為大家詳細講解有關微信小程序中限制激勵式視頻廣告位顯示次數的實現方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
微信小程序自從支持激勵式視頻廣告位以后,很多小程序為了變現都加入了此廣告位,廣告正常觀看結束的次數越多就越賺錢,但是觀看次數的比率過高也會面臨封號的風險,那么如何才能規避這個風險呢?
實現思路:限制每個用戶當天觀看激勵式視頻廣告位的次數,如果用戶當天觀看廣告位超過了一定的次數就不再顯示廣告位,用戶第二天打開小程序時清空第一天觀看廣告的次數,下面用實例代碼來說明。
第一步:在小程序的 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。
關于“微信小程序中限制激勵式視頻廣告位顯示次數的實現方法”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。