2016-07-01 2 views
0

J'utilise googletag.pubads(). Refresh ([currentAdSlot]) en boucle infinie en faisant défiler la fenêtre de la souris vers le bas et je veux écouter ' slotRenderEnded 'événement après la fonction d'actualisation. Mais chaque fois que j'appelle la fonction d'actualisation, 'slotRenderEvent' se déclenche de manière cumulative. Par exemple, au premier appel ResendAd fonction, l'événement d'écoute ne fonctionnant qu'une seule fois. Lors de l'appel des secondes, l'événement d'écoute fonctionne deux fois et augmente continuellement ce nombre. Comment réparer ce bug? Je ne comprends pas ce qui ne va pas? C'est le bug de google dfp api ou mon code?La fonction Google DFP slotRenderEnded fonctionne mal après pubads(). Refresh ([currentSlot])

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); 
     } 
     } 
    } 
    }); 
} 

Répondre

1

C'est un bug dans votre code. Chaque fois que vous appelez ResendAd, vous ajoutez un écouteur d'événement (slotRenderEnded).

Vous devez ajouter l'écouteur d'événement dans une fonction appelée une seule fois. Je ne peux pas vous dire exactement où je n'ai pas accès à votre code.