如果仅存在Google广告,则显示div

时间:2012-08-29 15:21:27

标签: javascript html google-dfp

使用javascript,我需要显示DIV,但前提是它包含Google广告。以下是我通过Google工作的代码:

<div id='div-gpt-ad-1346196436229-0'>
    <script type='text/javascript'>
        googletag.cmd.push(function() { googletag.display('div-gpt-ad-1346196436229-0'); });
    </script>
</div>

上述代码中的DIV ID是由Google针对广告位生成的。

我能得到任何想法或指示吗?不可否认,我在javascripting世界中相当弱,所以请保持温柔。 :)

7 个答案:

答案 0 :(得分:13)

只需将此标记包含在标题代码中即可。

<script type='text/javascript'>
googletag.defineSlot('AdSlot-name', [AdSize], 
'div-gpt-ad-1346196436229-0').addService(googletag.pubads());
googletag.pubads().collapseEmptyDivs();
</script>

您添加的标记是:

googletag.pubads().collapseEmptyDivs();

答案 1 :(得分:2)

有两种方法可以解决这个问题...如果没有使用DFP API中的collapseEmptyDivs设置的广告,您可以改变对此的思考方式并隐藏div。

如果你绝对必须从一个隐藏的div开始,然后只显示它,如果它包含一个广告,它会更复杂......如果你在你的页面上使用jQuery,请查看我写的plugin

其他答案几乎是正确的,但不像检查iframe那么简单......根据我的经验,无论广告是否实际显示在哪里,都会出现iframe。在页面加载时检查iframe也不起作用,因为广告通常会在页面加载后呈现。

你需要关注DFP广告管理系统脚本,并在渲染了renderEnded后检查广告的状态...使用上面的链接插件,你有两个回调可以很容易地执行此操作...插件还添加了一个类到display-block或display-none的广告单元div,取决于广告是否被发现......这些可以很容易地用于隐藏或显示带有CSS的div。

答案 2 :(得分:2)

如果没有广告素材,DoubleClick只会输出一个空字符串。我正在计算包​​含广告的div中的子项数,并基于此隐藏。

<script type="text/javascript">
    if($('#ad-id').children().length < 5)
    {
        $('#ad-id').hide();
    }
</script>

答案 3 :(得分:0)

基本上很简单

通过他们的广告,谷歌正在使用一个完整的HTML文档和一个iframe,所以完成了页面,你可以检查div是否包含'html'或'iframe'标签,如果是,则显示它

希望有所帮助

*我建议将广告放在持有人diw中,并使用预定义的id-s

答案 4 :(得分:0)

使用其他响应,您可以使用jQuery检查iframe的元素内容

if($('#div-gpt-ad-1346196436229-0').has('iframe'))
  $('#div-gpt-ad-1346196436229-0').show

答案 5 :(得分:0)

旧问题,但我在IE中遇到了一个问题,广告在未能获得广告时加载了空白的白色背景iframe。以下代码处理操作问题+ IE修复,您必须将collapseEmtpyDivs设置为true并从最初显示的adunit元素开始:

if( $(adUnit).css("display") == "none"  || $(adUnit).hasClass("display-none") )
    $(adUnit).remove();

答案 6 :(得分:0)

这可能是一种除了隐藏或显示广告服务容器div之外的其他方式。我知道这不是主题,但如果广告的存在决定了页面上的其他内容,例如项目是应该绝对定位,还是浮动等等,该怎么办? 在我的情况下,我有一个广告服务插槽顶部的视频播放器,我想改变背景,只有广告是现在。 ... 非常hacky这样做的方式,似乎应该是一个回调或响应请求,以确定在display()结束后成功/ fali等。