我正在尝试通过在广告展示后调用刷新来延迟加载广告。与解释的here类似,但使用的是IntersectionObserver
。
var slot;
window.googletag = window.googletag || {}
window.googletag.cmd = window.googletag.cmd || []
window.googletag.cmd.push(function() {
slot = googletag.
defineSlot('/#{AdsHelper::DFP_NETWORK_CODE}/#{ad_unit}', [#{x}, #{y}], '#{element_id}').
addService(googletag.pubads());
googletag.pubads().enableSingleRequest();
googletag.pubads().disableInitialLoad();
googletag.enableServices();
});
googletag.cmd.push(function() {
googletag.display('#{element_id}');
});
var callback = function(entries, observer) {
entries.forEach(entry => {
if (entry.intersectionRatio > 0) {
console.log(entry.target.id)
observer.unobserve(entry.target)
googletag.cmd.push(function() {
googletag.pubads().refresh([slot]);
});
}
});
};
var observer = new IntersectionObserver(callback);
observer.observe(document.querySelector('##{element_id}'));
正在正确调用回调(正确的时间并使用正确的slot
值),并且加载了一些广告,但其他广告则返回此错误。
任何人都知道哪里出了问题,或者在其他地方看到了类似的东西?
谢谢