defineSlot только при наличии div-x

Можно ли динамически определить googletag.defineSlot только когда соответствующий div-x присутствует на странице? Определение через Google Tag Manager с использованием этого метода в настоящее время. Мы получаем эти ошибки на разных страницах, где нет рекламного блока:

googletag.defineSlot вызывался чаще, чем DIV в DOM, связанные с рекламными местами, в режиме одного запроса. Это повлияет на количество показов

Определите рекламное место и нажмите на дисплей

<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>

Намеченное действие - определить defineSlot, только если div-x, который соответствует объявленному слоту, находится на текущей странице.

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')); }); }
    });
Другие вопросы по тегам