如何检查Google发布商代码广告位是否为空?

时间:2013-04-07 16:49:16

标签: javascript jquery adsense google-dfp

我使用Google发布商代码来抓取广告。

如何检查我是否收到特定广告位的广告或任何空白广告。 我使用以下代码。

googletag.defineSlot("/1234/travel", [[300,250],[300x600]], "div-gpt-ad-123456789-0"))


 <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(“div-gpt-ad-123456789-0”)是否包含广告?

5 个答案:

答案 0 :(得分:16)

你可以这样做:

googletag.pubads().addEventListener('slotRenderEnded', function(event) {
    if (event.slot.getSlotElementId() == "div-gpt-ad-123456789-0") {
        var containsAd = !event.isEmpty;     
    }
});

答案 1 :(得分:7)

GPT API提供“SlotRenderEndedEvent”,在广告呈现时触发(或者如果没有返回任何内容),则会触发

https://developers.google.com/doubleclick-gpt/reference

您添加处理程序并检查isEmpty以确定广告是否已投放。

此外,如果您为广告位启用了CollapsEmptyDivs,则广告div将被GPT设置为display:none,这也是一条未返回任何内容的线索。

答案 2 :(得分:3)

您可以使用名为Google发布商控制台的屏幕调试工具来解决投放问题。使用“?googfc”作为查询字符串。 参考:https://support.google.com/dfp_premium/answer/2462712?hl=en

答案 3 :(得分:1)

您是否尝试过使用firebug或chrome web inspector检查div?如果div正确加载,则div内应该有一个iframe,而iframe内部会有一些带有广告创意的html。

您可以使用DFP console轻松调试DFP,以测试您的网页是否已正确标记以及广告是否正在投放。

答案 4 :(得分:1)

&#13;
&#13;
googletag.cmd.push(function () {
		googletag.pubads().addEventListener('slotRenderEnded', function (event) {
			if (event.isEmpty) {
				var id = event.slot.getSlotElementId();
				var x = document.getElementById(id);
				if (x.parentElement.classList.contains("ad-slot")) {
					x.parentElement.style.display = "none";
				}				
			}
		});
	});
&#13;
&#13;
&#13;