添加AdSense HTML代码后广告重复显示两次问题求助
问题原因
- 开启了AdSense自动广告功能:AdSense后台开启自动广告后,系统会自动在手动添加的广告之外,额外匹配插入符合规则的广告位,即使仅手动添加1组代码,也会出现额外的自动插入广告
- 代码被重复插入DOM:如果是SSR/SPA等动态页面,组件重复挂载、路由切换后未销毁旧实例、缓存机制异常等情况,会导致广告代码块被重复插入到页面DOM中,触发两次广告加载
- 初始化逻辑重复执行:哪怕页面内只有1个广告容器,如果
(adsbygoogle = window.adsbygoogle || []).push({});这段初始化代码被执行了两次,也会触发两次广告请求,可能渲染两条广告 - fluid自适应规则适配:你使用的
data-ad-format="fluid"属性允许广告位根据页面宽度自动适配内容,部分场景下会在同一个ins容器内渲染多条拼接的广告物料,视觉上呈现为两条独立广告 - 浏览器扩展注入:部分广告类、购物类浏览器插件会主动在页面中插入额外的AdSense广告位赚取佣金,属于第三方客户端层面的修改
解决方法
- 检查AdSense后台配置:进入AdSense后台「广告」板块的「按网站」管理页,确认当前站点是否开启了自动广告,不需要可以直接关闭,也可以在自动广告设置中排除手动添加广告的页面区域,避免重复投放
- 排查DOM和脚本执行逻辑:打开浏览器开发者工具的Elements面板,搜索
adsbygoogle关键词,确认页面内实际存在的广告容器数量,如果有重复容器直接删掉冗余的代码;同时检查初始化脚本的执行逻辑,确保push方法仅调用一次,也可以给ins标签添加唯一id,初始化时指定对应容器:
<!-- 给ins加唯一id --> <ins id="custom-ad-1" class="adsbygoogle" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-0000000000000" data-ad-slot="00000000000"></ins> <script> // 指定容器初始化,避免重复渲染 (adsbygoogle = window.adsbygoogle || []).push({element: document.getElementById('custom-ad-1')}); </script>
- 调整广告位属性:如果是同一个ins容器内出现两条广告,可以将
data-ad-format="fluid"修改为固定格式比如data-ad-format="rectangle",也可以添加data-ad-matched-content-ui-type="none"属性关闭同位置多广告拼接规则 - 排除第三方影响:使用无痕模式、禁用所有浏览器扩展后重新打开页面,确认额外广告是否为扩展注入,如果是该原因可以在站点常见问题中提示用户注意相关扩展的广告注入行为
内容的提问来源于stack exchange,提问作者Bonip
相关产品推荐
相关产品推荐

