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')); }); }
});