Google发布商代码(GPT)广告调用返回错误请求

时间:2013-05-29 10:36:37

标签: ads advertising google-dfp

我们正尝试将我们网站上的DFP广告管理系统广告调用转换为使用单一请求模式的异步呈现的GPT广告调用。我们试图用广告制作概念证明页面。但该页面似乎没有显示任何广告.....以下是我从https://support.google.com/dfp_premium/bin/answer.py?hl=en&answer=1638622&topic=28788&ctx=topic

修改的代码

似乎收到了一个错误的请求以响应广告调用...并且广告div为空

<html>
<head>
<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().set("adsense_background_color", "000000");
  });
</script>
<script>
  googletag.cmd.push(function() {
    googletag.defineSlot("/N6752/adj/hw.bd/home",[728, 90], "div-gpt-ad-123456789-0")
      .addService(googletag.pubads());
    googletag.defineSlot("/N6752/adj/hw.bd/home", [300, 250] , "div-gpt-ad-123456789-1")
      .addService(googletag.pubads());
     googletag.pubads().enableSingleRequest();
     googletag.enableServices();
   });
 </script>
</head>
<body>
  <div id="div-gpt-ad-123456789-0" style="width: 728px; height: 90px">
    <script type="text/javascript">
      googletag.cmd.push(function() {
      googletag.display("div-gpt-ad-123456789-0");
      });
    </script>
  </div>
    <div id="div-gpt-ad-123456789-1">
    <script type="text/javascript">
      googletag.cmd.push(function() {
          googletag.display("div-gpt-ad-123456789-1");
      });
    </script>
  </div>
</body>
</html>

1 个答案:

答案 0 :(得分:3)

我发现你的googletag.defineSlot部分电话有两个问题:

  1. 在单一请求模式下使用异步广告调用时,您不需要像使用旧式JavaScript样式广告调用时那样使用“N”作为网络代码的前缀。因此,在您的情况下,它应该是/6752/而不是/N6752/
  2. 对于目标广告单元/adj/hw.bd/home,您已在开头/adj/添加了指示广告位类型的旧标记。您不需要像使用旧式JavaScript样式广告调用时那样在单一请求模式下在异步广告调用中传递此功能。相反,您应该只传入广告单元/hw.bd/home
  3. 解决了这两个问题之后的代码:

    <script>
      googletag.cmd.push(function() {
        googletag.defineSlot("/6752/hw.bd/home",[728, 90], "div-gpt-ad-123456789-0")
          .addService(googletag.pubads());
        googletag.defineSlot("/6752/hw.bd/home", [300, 250], "div-gpt-ad-123456789-1")
          .addService(googletag.pubads());
        googletag.pubads().enableSingleRequest();
        googletag.enableServices();
       });
    </script>
    

    不再返回“错误请求”响应。这些来电仍然没有返回实际的广告素材,而是返回DFP广告管理系统的默认设置,因此我怀疑您仍然需要验证您是否针对给定的广告/尺寸确定了广告,或者您可能需要使用{{传递其他键/值定位参数1}}调用.setTargeting之后,即.addService

    .setTargeting("key", "value");

    有关此内容的更多信息,请参阅您在问题中引用的同一链接https://support.google.com/dfp_premium/bin/answer.py?hl=en&answer=1638622,方法是在右侧列中查看示例代码的详细注释。