Подтвердить что ты не робот

Google dfp pubads(). refresh() не работает должным образом

Я использую некоторые из новых функций в Google DFP и не могу получить ни одного обновления для обновления. Я могу обновить все объявления на странице, но я не могу получить только один, чтобы обновить сам.

Я пробовал следующий код, чтобы получить одно дополнение для обновления без везения:

   var slot1 = googletag.display('/6900315/myad2', [300, 250], 'div-2');
        googletag.pubads().refresh([slot1]);

Любая помощь будет оценена!

Полный источник:

<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.pubads().enableAsyncRendering();
    googletag.defineSlot("/69003153/myad1", [728, 90], "div-1").addService         (googletag.pubads());
    googletag.defineSlot("/69003153/myad2", [300, 250], "div-2").addService    (googletag.pubads());
    googletag.enableServices();
});
</script>
<script type='text/javascript'>
function changeAd() {
    googletag.cmd.push(function () {
        var slot1 = googletag.display('/6900315/myad2', [300, 250], 'div-2');
        googletag.pubads().refresh([slot1]);
        //googletag.pubads().refresh();


    });
}
</script>
</head>
<body>
   <form id="form1" runat="server">


    <div id='div-1' style='width:728px; height:90px;'>
<script type='text/javascript'>
     googletag.cmd.push(function () { googletag.display('div-1'); });
</script>
</div>


 <!-- BoxAdd_Details -->
<div id='div-2' style='width:300px; height:250px;'>
   <script type='text/javascript'>
        googletag.cmd.push(function () { googletag.display('div-2); });
</script>
</div>

<input type="button" name="test" title="test" onclick="javascript:window.changeAd();"     value="Reload Ad" />
4b9b3361

Ответ 1

У меня тоже такая же проблема. У меня пока нет объявлений, но я должен предположить, что вам не нужно обновлять рекламный блок в changeAd().

Вместо:

googletag.cmd.push(function () {
    googletag.pubads().enableAsyncRendering();
    googletag.defineSlot("/69003153/myad1", [728, 90], "div-1").addService         (googletag.pubads());
    googletag.defineSlot("/69003153/myad2", [300, 250], "div-2").addService    (googletag.pubads());
    googletag.enableServices();
});

Try:

googletag.cmd.push(function () {
    googletag.pubads().enableAsyncRendering();
    slot1 = googletag.defineSlot("/69003153/myad1", [728, 90], "div-1").addService         (googletag.pubads());
    slot2 = googletag.defineSlot("/69003153/myad2", [300, 250], "div-2").addService    (googletag.pubads());
    googletag.enableServices();
});

Объявление их без "var", предшествующих им, делает слоты глобальными по охвату. В вашей функции changeAd() просто вызовите

googletag.pubads().refresh([slot1]);

Я даже не уверен, что вам нужно разместить это внутри googletag.cmd.push()

Когда я выполняю его таким образом, мои объявления по-прежнему не обновляются, но запуск console.log(slot1) показывает, что рекламный блок жив и ногами...

Может ли кто-нибудь еще помочь?