簡體   English   中英

Google DFP的slotRenderEnded函數在pubads()。refresh([currentSlot])之后無法正常工作

[英]Google DFP slotRenderEnded function working wrongly after pubads().refresh([currentSlot])

我通過向下滾動鼠標窗口在無限循環中使用googletag.pubads()。refresh([currentAdSlot]),並且我想在刷新功能后監聽'slotRenderEnded'事件。 但是,每當我調用刷新功能時,“ slotRenderEvent”就會累積觸發。 例如,在第一次調用ResendAd函數時,監聽事件僅運行一次。 在秒呼叫中,監聽事件工作兩次,並不斷增加此計數。 如何解決這個錯誤? 我不明白怎么了? 這是Google DFP API的錯誤還是我的代碼?

function ResendAd(AdSlot,callback) {

  googletag.pubads().clearTargeting();
  googletag.pubads().updateCorrelator();
  googletag.pubads().refresh([AdSlot]);

  googletag.pubads().addEventListener('slotRenderEnded', function (event) {
    console.warn('This function scope triggered multiple times.');
    if (event.slot === AdSlot) {
      if (!event.isEmpty) {
        if (callback && typeof callback === "function") {
          callback(event);
        }
      }
    }
  });
}

這是您代碼中的錯誤。 每次調用ResendAd時,您都會添加一個事件偵聽器(slotRenderEnded)。

您應該在僅調用一次的函數中添加事件偵聽器。 我無法告訴您完全無法訪問您代碼的位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM