2

背景

我们使用 Google Ad Manager(以前称为 DFP)作为我们自己网站的广告发布商。我们不想总是投放自家广告,所以我们要折叠所有空的 div。

slot.setCollapseEmptyDiv(true, true);

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

<script src='https://www.googletagservices.com/tag/js/gpt.js'>
  googletag.pubads().definePassback('/123456789/PassbackAdUnit', [728, 90]).display();
</script>

问题

中的订单项PassbackAdUnit都是自家广告,但我们不希望投放大量自家广告。这些订单项设置为仅提供一定数量或一定百分比的展示次数。这会导致回传到某些情况,导致没有可供投放的订单项。

我们希望 div 像所有空的广告 div 一样折叠。但在这种情况下,它并没有崩溃,并且发布商控制台显示了要填充程序化广告的位置。

我怎样才能让这个空的 div 崩溃?

4

1 回答 1

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 将被隐藏。

于 2019-07-26T09:45:17.157 回答