只有在页面上存在相应的<?php
$single = $_POST['single'];
$id = $_POST['id'];
// do your logic and set it's status
echo json_encode(['status' => $status]);
时,才可以动态定义googletag.defineSlot
吗?当前使用this方法通过Google跟踪代码管理器进行定义。我们在没有广告单元的其他页面上收到这些错误:
googletag.defineSlot的次数超过了与广告位相关联的DOM中DIV的次数。这会影响展示次数
定义广告位并推送显示
div-x
页面上的导航:
<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-x时,定义defineSlot。
答案 0 :(得分:0)
问题是您正在循环中调用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'));
});
}
});