2015-07-14 5 views
0

Наличие проблем с обновлением DFP при выполнении указаний на их сайте.Обновить рекламу в Google DFP

Я пробовал другой способ, который можно посмотреть здесь: Refresh DFP ads без везения.

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

Вот код, который находится в голове:

<script type='text/javascript'> 
    var googletag = googletag || {}; 
    googletag.cmd = googletag.cmd || []; 
    (function() { 
    var gads = document.createElement('script'); 
    gads.async = true; 
    gads.type = 'text/javascript'; 
    var useSSL = 'https:' == document.location.protocol; 
    gads.src = (useSSL ? 'https:' : 'http:') + 
     '//www.googletagservices.com/tag/js/gpt.js'; 
    var node = document.getElementsByTagName('script')[0]; 
    node.parentNode.insertBefore(gads, node); 
    })(); 
    </script> 

    <script type='text/javascript'> 
    googletag.cmd.push(function() { 
    googletag.defineSlot('/5251611/db_archive_leaderboard_728x90_1', [728, 90], 'div-gpt-ad-1436890018007-0').addService(googletag.pubads()); 
    googletag.defineSlot('/5251611/db_frontpage_leaderboard_728x90_1', [728, 90], 'div-gpt-ad-1436890018007-1').addService(googletag.pubads()); 
    googletag.defineSlot('/5251611/db_frontpage_leaderboard_728x90_2', [728, 90], 'div-gpt-ad-1436890018007-2').addService(googletag.pubads()); 
    googletag.defineSlot('/5251611/db_frontpage_med_rect_300x250_1', [300, 250], 'div-gpt-ad-1436890018007-3').addService(googletag.pubads()); 
    googletag.defineSlot('/5251611/db_frontpage_med_rect_300x250_2', [300, 250], 'div-gpt-ad-1436890018007-4').addService(googletag.pubads()); 
    googletag.defineSlot('/5251611/db_frontpage_med_rect_300x250_3', [300, 250], 'div-gpt-ad-1436890018007-5').addService(googletag.pubads()); 
    googletag.defineSlot('/5251611/db_frontpage_med_rect_300x250_4', [300, 250], 'div-gpt-ad-1436890018007-6').addService(googletag.pubads()); 
    googletag.defineSlot('/5251611/db_frontpage_med_rect_300x250_5', [300, 250], 'div-gpt-ad-1436890018007-7').addService(googletag.pubads()); 
    googletag.defineSlot('/5251611/db_frontpage_med_rect_300x250_6', [300, 250], 'div-gpt-ad-1436890018007-8').addService(googletag.pubads()); 
    googletag.defineSlot('/5251611/db_frontpage_pencil_975x50', [975, 50], 'div-gpt-ad-1436890018007-9').addService(googletag.pubads()); 
    googletag.defineSlot('/5251611/db_half_page_300x600', [300, 600], 'div-gpt-ad-1436890018007-10').addService(googletag.pubads()); 
    googletag.defineSlot('/5251611/db_posts_leaderboard_728x90_1', [728, 90], 'div-gpt-ad-1436890018007-11').addService(googletag.pubads()); 
    googletag.pubads().enableSingleRequest(); 
    googletag.enableServices(); 
    }); 
</script> 

И это пример кода объявления плагина:

<!-- /5251611/db_half_page_300x600 --> 
    <div id='div-gpt-ad-1436890018007-10' style='height:600px; width:300px; padding:10px 0px 10px 10px;'> 
<script type="text/javascript"> 
     googletag.cmd.push(function() { 
     var slot10 = googletag.defineSlot("/5251611/db_half_page_300x600", [300, 600], 
     "div-gpt-ad-1436890018007-10").addService(googletag.pubads()); 
     googletag.enableServices(); 
     googletag.display("div-gpt-ad-1436890018007-10"); 
    setInterval(function(){googletag.pubads().refresh([slot10]);}, 30000);  
     }); 
     </script> 
</div> 

Код объявления выше то же самое для 10 рекламных с номер слота изменился в каждом из них. Что мне здесь не хватает? Невозможно обновить его через 30 секунд.

+0

Консоль сообщает мне: «Uncaught ReferenceError: slot10 не определен» –

+0

Неотдача ReferenceError вызвана повторением 'setInterval (function() {googletag.pubads(). Refresh ([slot10]);}, 30000);' строка в конце тела. Инструкции Google о том, как реализовать обновление, не очень ясны. –

ответ

0

Консоль права. Функция setInterval не распознает slot10, потому что она выходит из сферы действия. Если вы просто должны написать следующее: googletag.pubads(). Refresh ([slot10]), а не использовать его в функции setInterval, то вы увидите, что объявление будет обновлено.

Вы должны сделать свой код таким образом, чтобы setInterval мог фактически получить доступ к слоту10. Может быть, вы должны передать slot10 как переменную для вашей функции setInterval?

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