我使用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”)是否包含广告?
答案 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)
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;