2013-09-24 2 views
1

У нас есть ряд DFP объявлений на странице, которые получают автоматически обновлялась с помощью яваскрипта обновления() вызов каждый раз, когда пользователь нажимает на каждый значок миниатюры на галерее зрителя:Как определить состояние загрузки объявления DFP Google Doubleclick for Publishers?

googletag.pubads().refresh(); 

Проблема заключается в том, что если пользователь быстро посещает галерею, реклама постоянно обновляется для каждого щелчка, поэтому в конечном итоге пустые объявления могут возникать, так как система не может не отставать от пользовательских кликов.

Следовательно, я бы хотел только обновить только, только если объявление полностью завершило загрузку.

Есть ли способ обнаружить загруженное состояние объявления в слот?

Наши объявления определяются с помощью:

slot_header_lge = googletag.defineSlot('/XXX/Header-Home-Large', [945, 230], 'div-gpt-ad-Header-Large').addService(googletag.pubads()); 

googletag.pubads().enableAsyncRendering(); 
googletag.pubads().collapseEmptyDivs(); 
googletag.enableServices(); 

ответ

3

Я сделал jquery plugin, что оборачивает DFP и вид пришел с решением этой проблемы некоторое время назад ... есть внутренняя функция на рекламном блоке вызванный renderEnded(), который вы можете подключить, чтобы проверить, когда рекламный блок был визуализирован.

По моему опыту это означает, что HTML-код был помещен на страницу ... и необязательно, чтобы объявление полностью завершило загрузку. Вы могли бы комбинировать некоторое время с этим, чтобы получить достаточно надежную систему.

Например с моим плагином вы можете попробовать следующее, не должны позволить объявления, которые будут обновляться до 5 секунд после последнего объявления на странице не оказал:

<!DOCTYPE html> 
<html> 
<head> 
    <title>TEST</title> 
    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> 
    <script src="http://coop182.github.io/jquery.dfp.js/jquery.dfp.js"></script> 

</head> 
<body> 

Test DFP Ads. 

<div class="adunit" id="buyingcars_ATF_728x90" data-dimensions="728x90"></div> 

<script> 

    var adsLoaded = true; 

    function checkLoading() { 

     console.log('Checking...'); 

     if (adsLoaded) { 
      loadAds(); 
     } 
    } 

    function loadAds() { 

     console.log('Loading...'); 

     adsLoaded = false; 

     $.dfp({ 
      dfpID: '3853655', 
      afterAllAdsLoaded: function() { 
       setTimeout(function(){adsLoaded = true;}, 5000); 
      } 
     }); 
    } 

    checkLoading(); 

</script> 

<a href="#" onclick="checkLoading();">Refresh</a> 

</body> 
</html> 
+1

Эй, я только о том, чтобы отправьте ответ с помощью lnk на свой плагин и тем же самым решением - я нашел ваш плагин после некоторого поиска и увидел, что вы захватили внутренний метод Google, чтобы проверить, что объявление получило - это к тому же! Отличная работа над этим плагином. Это решение теперь развернуто, и оно отлично работает! :) –

+0

Спасибо! Рад, что у вас это работает :) –

Смежные вопросы