17

我正在使用 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") 是否包含广告?

4

5 回答 5

22

你可以这样做:

googletag.pubads().addEventListener('slotRenderEnded', function(event) {
    if (event.slot.getSlotElementId() == "div-gpt-ad-123456789-0") {
        var containsAd = !event.isEmpty;     
    }
});
于 2015-06-19T10:29:14.817 回答
7

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

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

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

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

于 2014-10-01T18:15:08.050 回答
6

您可以使用名为 Google Publisher Console 的屏幕调试工具来解决交付问题。使用“?googfc”作为查询字符串。参考:https ://support.google.com/dfp_premium/answer/2462712?hl=en

于 2016-06-21T06:11:31.940 回答
2

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";
				}				
			}
		});
	});

于 2018-04-12T08:50:34.843 回答
1

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

您可以使用DFP 控制台非常轻松地调试 DFP,以测试您的网页是否正确标记以及广告是否正在投放。

于 2013-04-08T11:04:14.997 回答