我们正在尝试将我们网站上的DFP广告调用转换为GPT广告调用,使用单请求模式异步呈现。我们正试图做一个概念的证明与广告页面。但页面似乎没有显示任何广告.....下面是我从https://support.google.com/dfp_premium/bin/answer.py?hl=en&answer=1638622&topic=28788&ctx=topic
修改的代码似乎收到了一个错误的请求响应广告电话…ADdiv为空
<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>
马上我看到两个问题与googletag.defineSlot
部分的呼叫:
- 当在单请求模式下使用异步广告调用时,你不需要像使用旧风格JavaScript风格广告调用时那样在网络代码中加上'N'前缀。这里应该是
/6752/
而不是/N6752/
- 对于目标广告单元
/adj/hw.bd/home
,您已经在开始的/adj/
中包含了指示广告插槽类型的旧标记。在单请求模式下,您不需要像使用旧式JavaScript样式的广告调用时那样在异步广告调用中传递这个。相反,你应该传入广告单元/hw.bd/home
修复这两个问题后,你的代码:
<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的默认响应,所以我怀疑你仍然需要验证你有针对给定槽位/大小的广告,或者你可能必须在调用.addService
(即.setTargeting("key", "value");
)之后使用.setTargeting
传递额外的键/值目标参数。
<script>
googletag.cmd.push(function () {
googletag.defineSlot("/6752/hw.bd/home", [728, 90], "div-gpt-ad-123456789-0")
.addService(googletag.pubads())
.setTargeting("key", "value");
googletag.defineSlot("/6752/hw.bd/home", [300, 250], "div-gpt-ad-123456789-1")
.addService(googletag.pubads())
.setTargeting("key", "value");
googletag.pubads().enableSingleRequest();
googletag.enableServices();
});
</script>
关于这方面的更多信息可以在您在问题中引用的相同链接https://support.google.com/dfp_premium/bin/answer.py?hl=en&answer=1638622中找到,查看右侧列,其中文档对示例代码有详细的注释。