AdSense "No ads available"

inspector 显示"无广告可投"——库存 / 主题 / 地区原因。

站上有些页面广告正常出现,另一些——通常同一个模板、同一个作者、同一天发——slot 渲染成空白,AdSense 的 Ad Inspector 把这次展示标成 “No ad served”。这跟代码 bug 不一样,不是非黑即白,而是一次实时拍卖:这个页面这一时刻这个用户没有可填充的竞价。

修复思路主要是搞清楚”这个 slot 为什么没赢”,然后要么改 slot、要么改页面、要么接受。

常见原因

按命中率从高到低。

1. 页面主题广告主池太窄

“DaVinci Resolve 怎么修 vsync 撕裂”页面有几十个潜在广告主。“古董 Casio FX-100 收藏者论坛”可能只有两个,而且这周都暂停了。

怎么判断:Ad Inspector → “Reason for not showing an ad”,看到 “limited matching ads” 就是需求侧问题,不是代码问题。

2. 用户所在国家 / 语言的库存很薄

如果你的流量集中在 AdSense 需求稀薄的国家(部分非洲、中亚市场),或者读者使用广告稀少的语言,这批展示的填充率会接近 0。

怎么判断:AdSense → Reports → 按 Country 看。如果有 1-2 个国家占了展示大头但收益接近 0,就是地域库存问题。

3. slot 尺寸跟当下投放活动对不上

你的 slot 固定 320×50,但 AdSense 当前活动大多投 300×250 或 728×90 ——这个 slot 就会输拍卖。

怎么判断:把 slot 改成响应式(data-ad-format="auto")。填充率明显上去就是固定尺寸是问题。

4. 浏览器或系统级拦截

Brave、Firefox Strict、iOS Safari 内容拦截、企业代理都会在请求发出前就拦掉广告。AdSense 都没收到这次展示,看起来像”没库存”,其实是客户端拦截。

怎么判断:AdSense → Reports 把广告展示数跟页面浏览数对比。展示数不到浏览数的 60%,就是被拦截而不是没需求。

5. 用户选择不接受个性化广告

GDPR、加州隐私法允许用户选择 opt out。AdSense 会尊重这个选择,回退到”上下文(非个性化)“广告——填充率大约下降 30-50%。

怎么判断:AdSense → Reports → 按 “Personalization” 拆分,对比个性化和非个性化的填充率。

6. 页面近期触发了政策限制

擦边的页面(赌博相关、成人题材、版权内容引用)可能被静默限制:不是全站撤广告,而是没有需求愿意对这个页面竞价。

怎么判断:AdSense → Policy center → Page-level enforcement。状态为 “limited ad serving” 的页面会出现在这里。

7. 新页面 AdSense 还没爬完

文章发出后,AdSense 的内容分类器要花点时间爬取并归类。在归类完成前,AdSense 不知道该匹配什么广告主,竞价做不好。

怎么判断:发了 7 天以上的页面填充正常,刚发的新文章不填——等 3-7 天。

最短修复路径

第 1 步:用 Ad Inspector 看具体原因

Chrome 打开问题页 → 点 AdSense 扩展(或 DevTools → AdSense 面板) → 看 “Reason”:

原因文案诊断行动
”Limited matching ads”主题 / 地域 / 尺寸不匹配见第 2 步
”No ad to display”真没库存改响应式
”Restricted ad serving”政策问题查 Policy center
”Personalization disabled”用户拒绝预期内,不能修

这一个属性就排除掉一半诊断分支。

第 2 步:改响应式

“limited matching” 多半通过给 AdSense 更多尺寸选项就能解决:

<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-XXXXXXXXXX"
     data-ad-slot="1234567890"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>

固定尺寸(比如 data-ad-format="rectangle")在大多数细分领域都打不过响应式。

第 3 步:给同一个 slot 多个尺寸(multi-size)

非要固定尺寸的话,在 AdSense → Ads → Ad units 里给 slot 配多个尺寸:

<ins data-ad-format="auto"
     data-ad-layout-key="-fb+5w+4e-db+86"
     data-multi-size="300x250,336x280,250x250"></ins>

让拍卖多几种组合可投。

第 4 步:审视页面内容是否擦政策线

逐字看页面,过一遍这几个问题:

  • 有没有提到赌博、体育博彩、毒品(哪怕是侧面)?
  • 有没有嵌入未审核的 UGC?
  • 有没有引用受版权保护媒体的下载或链接?

任何一项擦边,需求都可能被悄悄限制。

第 5 步:按主题设定合理预期

有些主题的填充率本来就上不去。常见预期:

  • 个人金融、软件、电商:90-99%
  • 技术教程、效率工具:80-90%
  • 小众爱好、地域内容:50-75%
  • 翻译性质的非英语市场:30-60%

如果你的主题组合本来就在低区间,把精力放在 RPM 优化(每次会话浏览数、停留时长)上,别死磕填充率。

第 6 步:多接一家广告网络

填充率长期低于 60% 的站,加一家备网(Ezoic、达标的话 Mediavine、Raptive、备份 Adsterra)。它们的需求池不一样,能接住 AdSense 不投的那些展示。

预防建议

  • 新建 slot 默认全部用 data-ad-format="auto",除非有特别理由。
  • 主题不要只写极冷门方向,配上一些主流话题做平衡。
  • 在 AdSense → Reports → “URLs” 监控每页的填充率,长期 0 填充就回头审视内容。
  • 周维度填充率长期低于 70% 就接一家备网做兜底。

相关阅读

标签: #AdSense #变现 #排查 #排查