如何检测发布商 DFP 广告的 Google 双击的加载状态
How to detect loading state of a Google Doubleclick for Publishers DFP Ad?
我们在页面上有一系列 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();
我做了一个包装 DFP 的 jquery 插件,不久前想出了解决这个问题的方法......广告单元上有一个名为 renderEnded() 的内部函数,您可以挂钩到该函数以检查广告单元何时呈现。
根据我的经验,这只是意味着 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>
相关文章:
- 使用类从一个标记中双击事件
- onclick函数需要双击,因为类分配延迟
- 了解双击代码标记
- jquery Onclick函数带有导致双击的回调排序函数
- 防止双击执行两次jQuery post请求
- JavaScript双击事件
- 选择“字符串”并使用SeleniumJava双击
- jQuery UI自动完成需要在iOS上双击
- 使用jquery在html中添加双击操作
- 双击泛光灯单击
- 如何在Firefox中禁用视频的单击和双击控件
- 双击可更改树标签
- svg.js/svg平移缩放-双击交互
- 在WordSmith jquery中,双击后什么决定了链接图标的位置
- 宣传单:双击时不要触发点击事件函数
- d3 中是否有点击和双击事件.js力定向图
- 当单选按钮的标签可单击时双击
- Draw2d.js:通过双击将可编辑标签添加到现有连接
- 如何检测发布商 DFP 广告的 Google 双击的加载状态
- 在Google apps脚本中,什么取代了Utilities.sleep()来防止双击