折叠回传代码广告的空div

时间:2019-06-19 10:38:41

标签: javascript google-dfp google-ad-manager advertisement-server

背景

我们使用Google广告管理系统(以前称为DFP)作为我们自己网站的广告发布商。我们不想一直投放自家广告,因此我们正在折叠所有空的div。

import Scraper.BaseScraper as base
# Access the base scraper via base.BaseScraper()

我们开始制作一些程序化广告,因此我们为第三方网络提供了带有回传代码的第三方广告,该广告单元包含一些内部广告订单项。

slot.setCollapseEmptyDiv(true, true);

问题

<script src='https://www.googletagservices.com/tag/js/gpt.js'> googletag.pubads().definePassback('/123456789/PassbackAdUnit', [728, 90]).display(); </script> 中的订单项都是内部广告,但是我们不希望投放大量内部广告。设置的那些订单项只能投放一定数量或一定百分比的展示。这会导致传回somethimes,导致没有可投放的订单项。

我们希望div像所有空的广告div一样崩溃。但是在这种情况下,它没有崩溃,并且Publisher控制台正在显示要用程序化广告填充的广告位。

如何使此空div折叠?

1 个答案:

答案 0 :(得分:0)

我发现了一种使用slotRenderEnded事件监听器折叠空回传的方法:

<script src='https://www.googletagservices.com/tag/js/gpt.js'>
googletag.pubads().definePassback('/123456789/PassbackAdUnit', [728, 90]).display();
googletag.cmd.push(function () {
            googletag.pubads().addEventListener('slotRenderEnded', function (event) {
                if (event.isEmpty) {
                //if adcall is empty, then display none on the parent frame
                top.document.getElementById(this.frameElement.id).style.display = "none";
                }
            });
        });
</script>

此解决方法并不完美:在回传广告调用结束之前,广告位将显示为空白。然后父iframe将被隐藏。