【问题标题】:defineSlot only when div-x is present仅当 div-x 存在时才定义槽
【发布时间】:2018-08-23 12:46:19
【问题描述】:

仅当页面上存在相应的div-x 时,是否可以动态定义googletag.defineSlot?目前通过谷歌标签管理器使用this 方法定义。我们在不存在广告单元的不同页面上收到这些错误:

在单一请求模式下,调用 googletag.defineSlot 的次数超过了 DOM 中与广告位关联的 DIV 的数量。这会影响展示次数

定义广告位并推送展示

<script>
googletag.cmd.push(function() { 
googletag.defineSlot('/101030411/AC-LDB-3', sizesldb, 'div-4')
                 .addService(googletag.pubads());

googletag.pubads().collapseEmptyDivs();
googletag.pubads().enableSingleRequest();
googletag.enableServices();
});

var adunits = document.querySelectorAll('div[id^="div-"]');
for (var i = 0; i < adunits.length; i++) { googletag.cmd.push(function() { 
googletag.display(adunits[i].getAttribute('id')); }); }
</script>

页面上的 Div:

<div style="text-align: center" id='div-x'></div>

仅当与声明的插槽匹配的 div-x 在当前页面上时才定义插槽。

【问题讨论】:

    标签: google-tag-manager google-dfp gpt


    【解决方案1】:

    问题是您在循环中调用cmd.push 函数。试试下面的:

    googletag.cmd.push(function() {
        var adunits = document.querySelectorAll('div[id^="div-"]');
        for (var i = 0; i < adunits.length; i++) { 
            googletag.cmd.push(function() {
                googletag.display(adunits[i].getAttribute('id')); 
            }); 
        }    
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-04
      • 2021-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-13
      相关资源
      最近更新 更多