微信小程序 廣告·激勵視頻廣告

2022-05-11 15:47 更新

激勵視頻廣告

小程序廣告流量主操作指引:文檔地址

激勵視頻廣告組件是由客戶端原生的圖片、文本、視頻控件組成的,層級最高,會覆蓋在普通組件上。

開發(fā)者可以調(diào)用 wx.createRewardedVideoAd 創(chuàng)建激勵視頻廣告組件。該方法返回的是一個單例,該實(shí)例僅對當(dāng)前頁面有效,不允許跨頁面使用。

廣告創(chuàng)建

激勵視頻廣告組件默認(rèn)是隱藏的,因此可以提前創(chuàng)建,以提前初始化組件。開發(fā)者可以在小程序頁面的 onLoad 事件回調(diào)中創(chuàng)建廣告實(shí)例,并在該頁面的生命周期內(nèi)重復(fù)調(diào)用該廣告實(shí)例。

let rewardedVideoAd = null
Page({
  onLoad() {
    if(wx.createRewardedVideoAd){
      rewardedVideoAd = wx.createRewardedVideoAd({ adUnitId: 'xxxx' })
      rewardedVideoAd.onLoad(() => {
        console.log('onLoad event emit')
      })
      rewardedVideoAd.onError((err) => {
        console.log('onError event emit', err)
      })
      rewardedVideoAd.onClose((res) => {
        console.log('onClose event emit', res)
      })
    }
  }
})

為避免濫用廣告資源,目前每個用戶每天可觀看激勵式視頻廣告的次數(shù)有限,建議展示廣告按鈕前先判斷廣告是否拉取成功。

顯示/隱藏

激勵視頻廣告組件默認(rèn)是隱藏的,在用戶主動觸發(fā)廣告后,開發(fā)者需要調(diào)用 RewardedVideoAd.show() 進(jìn)行顯示。

rewardedVideoAd.show() 

只有在用戶點(diǎn)擊激勵視頻廣告組件上的 關(guān)閉廣告 按鈕時,廣告才會關(guān)閉。開發(fā)者不可控制激勵視頻廣告組件的隱藏。

廣告拉取成功與失敗

激勵視頻廣告組件是自動拉取廣告并進(jìn)行更新的。在組件創(chuàng)建后會拉取一次廣告,用戶點(diǎn)擊 關(guān)閉廣告 后會去拉取下一條廣告。

如果拉取成功,通過 RewardedVideoAd.onLoad() 注冊的回調(diào)函數(shù)會執(zhí)行,RewardedVideoAd.show() 返回的 Promise 也會是一個 resolved Promise。兩者的回調(diào)函數(shù)中都沒有參數(shù)傳遞。

rewardedVideoAd.onLoad(() => {
  console.log('激勵視頻 廣告加載成功')
})

rewardedVideoAd.show()
.then(() => console.log('激勵視頻 廣告顯示'))

如果拉取失敗,通過 RewardedVideoAd.onError() 注冊的回調(diào)函數(shù)會執(zhí)行,回調(diào)函數(shù)的參數(shù)是一個包含錯誤信息的對象。

rewardedVideoAd.onError(err => {
  console.log(err)
})

RewardedVideoAd.show() 返回的 Promise 也會是一個 rejected Promise。

rewardedVideoAd.show()
.catch(err => console.log(err))

拉取失敗,重新拉取

如果組件的某次自動拉取失敗,那么之后調(diào)用的 show() 將會被 reject。此時可以調(diào)用 RewardedVideoAd.load() 手動重新拉取廣告。

rewardedVideoAd.show()
.catch(() => {
    rewardedVideoAd.load()
    .then(() => rewardedVideoAd.show())
    .catch(err => {
      console.log('激勵視頻 廣告顯示失敗')
    })
})

如果組件的自動拉取是成功的,那么調(diào)用 load() 方法會直接返回一個 resolved Promise,而不會去拉取廣告。

rewardedVideoAd.load()
.then(() => rewardedVideoAd.show())

監(jiān)聽用戶關(guān)閉廣告

只有在用戶點(diǎn)擊激勵視頻廣告組件上的 關(guān)閉廣告 按鈕時,廣告才會關(guān)閉。這個事件可以通過 RewardedVideoAd.onClose() 監(jiān)聽。

RewardedVideoAd.onClose() 的回調(diào)函數(shù)會傳入一個參數(shù) res,res.isEnded 描述廣告被關(guān)閉時的狀態(tài)。

屬性 類型 說明
isEnded boolean 視頻是否是在用戶完整觀看的情況下被關(guān)閉的,true 表示用戶是在視頻播放完以后關(guān)閉的視頻,false 表示用戶在視頻播放過程中關(guān)閉了視頻

開發(fā)者需要根據(jù) res.isEnded 判斷是否視頻是否播放結(jié)束、可以向用戶下發(fā)獎勵。

rewardedVideoAd.onClose(res => {
    // 用戶點(diǎn)擊了【關(guān)閉廣告】按鈕
    if (res && res.isEnded) {
      // 正常播放結(jié)束,可以下發(fā)游戲獎勵
    } else {
      // 播放中途退出,不下發(fā)游戲獎勵
    }
})

注意事項(xiàng)

多次調(diào)用 RewardedVideoAd.onLoad()、RewardedVideoAd.onError()、RewardedVideoAd.onClose() 等方法監(jiān)聽廣告事件會產(chǎn)生多次事件回調(diào),建議在創(chuàng)建廣告后監(jiān)聽一次即可,或者先取消原有的監(jiān)聽事件再重新監(jiān)聽。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號