gpt4 book ai didi

javascript - 如何检测 Google Doubleclick for Publishers DFP 广告的加载状态?

转载 作者:行者123 更新时间:2023-11-30 12:56:22 26 4
gpt4 key购买 nike

我们在页面上有一系列 DFP 广告,每次用户点击图库查看器上的每个缩略图图标时,这些广告都会使用 javascript refresh() 调用自动刷新:

googletag.pubads().refresh();

问题是,如果用户快速点击图库,则每次点击时广告都会不断刷新,因此最终会出现空白广告,因为系统无法跟上用户的点击。

因此,我只想在广告完全加载完成时才调用刷新。

有什么方法可以检测广告位中广告的加载状态吗?

我们的广告使用:

slot_header_lge = googletag.defineSlot('/XXX/Header-Home-Large', [945, 230], 'div-gpt-ad-Header-Large').addService(googletag.pubads());

googletag.pubads().enableAsyncRendering();
googletag.pubads().collapseEmptyDivs();
googletag.enableServices();

最佳答案

我做了一个jquery plugin包装了 DFP 并在不久前提出了解决此问题的方法...广告单元上有一个名为 renderEnded() 的内部函数,您可以 Hook 该函数以检查广告单元何时呈现。

根据我的经验,这仅表示 HTML 代码已放入页面中……并不一定表示广告已完全加载完毕。您可以将一些超时与此结合起来,以获得一个相当健壮的系统。

例如,对于我的插件,您可以尝试以下操作,它不允许在页面上最后一个广告呈现后 5 秒内刷新广告:

<!DOCTYPE html>
<html>
<head>
<title>TEST</title>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://coop182.github.io/jquery.dfp.js/jquery.dfp.js"></script>

</head>
<body>

Test DFP Ads.

<div class="adunit" id="buyingcars_ATF_728x90" data-dimensions="728x90"></div>

<script>

var adsLoaded = true;

function checkLoading() {

console.log('Checking...');

if (adsLoaded) {
loadAds();
}
}

function loadAds() {

console.log('Loading...');

adsLoaded = false;

$.dfp({
dfpID: '3853655',
afterAllAdsLoaded: function() {
setTimeout(function(){adsLoaded = true;}, 5000);
}
});
}

checkLoading();

</script>

<a href="#" onclick="checkLoading();">Refresh</a>

</body>
</html>

关于javascript - 如何检测 Google Doubleclick for Publishers DFP 广告的加载状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18972912/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com