【问题标题】:Refresh ads in Google DFP在 Google DFP 中刷新广告
【发布时间】:2015-07-14 18:26:02
【问题描述】:

按照网站上的说明操作时出现 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 秒后无法刷新。

【问题讨论】:

  • 控制台告诉我“Uncaught ReferenceError: slot10 is not defined”
  • 未捕获的 ReferenceError 是由于重复 'setInterval(function(){googletag.pubads().refresh([slot10]);}, 30000);'正文末尾的一行,关于如何实现刷新的谷歌说明不是很清楚。

标签: google-dfp


【解决方案1】:

控制台是正确的。 setInterval 函数无法识别 slot10,因为它超出了其范围。如果您只写以下内容:googletag.pubads().refresh([slot10]) 而不是在 setInterval 函数中使用它,那么您将看到广告将被刷新。

您应该编写代码,以便 setInterval 可以实际访问 slot10。也许您应该将 slot10 作为 setInterval 函数的变量传递??

【讨论】:

    猜你喜欢
    • 2013-02-23
    • 2020-11-07
    • 2016-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-04
    • 2011-09-30
    相关资源
    最近更新 更多