Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 异步谷歌广告与同步谷歌广告_Javascript_Asynchronous_Ads_Synchronous_Google Dfp - Fatal编程技术网

Javascript 异步谷歌广告与同步谷歌广告

Javascript 异步谷歌广告与同步谷歌广告,javascript,asynchronous,ads,synchronous,google-dfp,Javascript,Asynchronous,Ads,Synchronous,Google Dfp,我正在使用谷歌DFP 如果我使用谷歌的同步广告,我的网站加载得很慢,因为它需要在加载网站的同时加载广告,如果广告需要很长时间才能响应,那么页面加载就会暂停 如果我使用异步广告,这不是问题,因为无论是否加载广告,页面都会加载。换句话说,它使站点加载速度更快。问题是,使用异步广告创建一个具有固定宽度和高度的div,无论是否显示广告。所以通常这会在我的网站上留下很多空白,因为并不是所有的广告位置都被使用。同步广告也是如此 谷歌提供了第三种选择,它不创建div,它只使用javascript显示广告,如果

我正在使用谷歌DFP

如果我使用谷歌的同步广告,我的网站加载得很慢,因为它需要在加载网站的同时加载广告,如果广告需要很长时间才能响应,那么页面加载就会暂停

如果我使用异步广告,这不是问题,因为无论是否加载广告,页面都会加载。换句话说,它使站点加载速度更快。问题是,使用异步广告创建一个具有固定宽度和高度的div,无论是否显示广告。所以通常这会在我的网站上留下很多空白,因为并不是所有的广告位置都被使用。同步广告也是如此

谷歌提供了第三种选择,它不创建div,它只使用javascript显示广告,如果在该空间中没有任何广告发布,那么它就不会显示任何空白,这很好,但是它的行为是同步的

我想要的是一些使用异步广告的方法,并且在没有广告发布的情况下不会得到空白


谢谢。

好的。。你可以试试变通办法。我不太确定。但是你可以试一试

您有一个DIV,您的ads将在其中异步加载,因此您可以向其中添加一个元素、任何虚拟项和附加事件侦听器,以了解何时将被您的ads替换

您可以侦听删除节点时触发的DOMNodeRemoved事件,然后可以相应地调整div的大小。。让我知道它是否有效或在这方面是否有任何进展。

尝试以下方法:

<div id='div-gpt-ad-YOURDFPIDGOESHERE-1' style='width:auto; height:auto; margin:0px auto; text-align:center;'>


这应该可以拉伸或缩小div,以匹配创意尺寸(甚至可以将较小的广告放在较大的广告空间中)

我认为您需要的是

googletag.pubads().collapseEmptyDivs();
这将在没有广告显示时隐藏空div。请在这一行之前打电话:

googletag.enableServices();
此处有更多文档供参考:

添加
显示:无与包含div的内联样式相同


collapseEmptyDivs
方法添加了
display:none的内联样式
到父容器div。为了防止额外的空格闪烁,我首先尝试添加
display:none
在我的样式表中作为css样式,但是当广告成功加载到目标广告单元空间时,样式没有被删除。移动显示器:无;内联似乎解决了这个问题。

你能展示一下你的作品吗?我唯一的问题是,在调用collapseEmptyDivs方法之前,它导致页面加载时出现了一个空白。请参阅下面我的答案,了解我是如何解决这个问题的。您也可以将true传递给collapseEmptyDivs()方法调用。这将开始折叠它们,然后根据需要展开它们。选择你的毒药真的。