adsense广告不出现的处理方式

adsense广告在广告展示失败的时候,需要采取一些措施来保证页面不会出现空白区域等现象,最早是使用了替补游戏来弥补广告不能正常展示。本次处理需要去除这些替补游戏的展示,广告不成功展示或者不展示,直接隐藏处理,来达到不影响其他进行的业务。

背景

当广告单元完成对广告的请求后,AdSense 会向 <ins> 元素添加一个名为 data-ad-status 的参数。 根据系统是否返回广告,此参数将更新为以下项之一:

data-ad-status="filled" 系统向广告单元返回了一个广告,该广告正在展示。
data-ad-status="unfilled" 系统未返回任何广告,广告单元为空。

处理方式

  • 1、直接使用CSS 隐藏广告空缺的广告单元ins元素
css 复制代码
ins.adsbygoogle[data-ad-status="unfilled"] {  
    display: none !important;  
}
  • 2、仅在广告单元出现广告空缺时展示替补广告
javascript 复制代码
<ins class="adsbygoogle"  
     style="display:inline-block;width:300px;height:250px"  
     data-ad-client="ca-pub-1234567890123456"  
     data-ad-slot="1234567890">  
    <a href="/page"><img src="/backup.jpg" width="300px" height="250px"></a>  
</ins>
<style>
    ins.adsbygoogle a {  
        display: none !important;  
    }  
    ins.adsbygoogle[data-ad-status="unfilled"] a {  
        display: block;  
    }
</style>
  • 3、可以使用 MutationObserver 检测 data-ad-status 参数发生的更改,来隐藏样式
  • 4、当页面不满足添加adsense广告时,但是页面里已经提起占据了一个位置这时候需要隐藏这个占位,等满足其他条件需要添加广告时候才保留,可以使用:empty来处理这种场景(id:#xxxx-ad 元素是没有子元素的)
css 复制代码
#xxxx-ad:empty {
    display: none !important;
}
  • 5、当在第四种场景下,同时里面展示了广告,但是广告展示不成功的话,需要使用:has来处里这种场景
xml 复制代码
<div class="card" id="xxxx-ad">
    <ins class="adsbygoogle"  data-ad-status="unfilled">
    ...
    </ins>
</div>
<style>
      #xxxx-ad:has(ins.adsbygoogle[data-ad-status="unfilled"]) {
        display:none;     
      } 
</style>

参考

相关推荐
狮子座的男孩1 天前
html+css基础:25、3D变换(3D空间与景深/透视点的位置/位移/旋转/缩放/多重变换/背部可见性)
css·经验分享·html·旋转·透视点·缩放/位移·3d变换/空间与景深
思码梁田1 天前
CSS 浏览器厂商前缀:从「写 5 遍」到现代自动化兼容
前端·css·css3·border-radius·1024程序员节·box-shadow·厂商前缀
feixing_fx2 天前
CSS Grid 入门:二维布局时代的降维打击
前端·css·前端框架·css3
2603_965896622 天前
CSS BEM 命名规范|组件化样式分层权威指南
前端·javascript·css
进击的明明2 天前
前端开发中的 BEM 国际命名规范:让 CSS 不再"打架"
前端·css·html
燕落南枝2 天前
CSS 分组选择器与链接伪类选择器详解
前端·css
溪语流沙2 天前
【每天一个CSS | Day33】聚焦即弹出的命令面板
前端·css·html5·组件·每日一练
燕落南枝2 天前
CSS 用户行为伪类::hover 与 :focus 详解
前端·css
钱栈up3 天前
前端改了三页、后端也动了,用户说「完全没变化」——我在 116 库上找到的三个真凶
css·数据库
燕落南枝3 天前
CSS 字体样式:颜色、字体族、倾斜、加粗与装饰
前端·css