确保 ads.txt 文件可被抓取
一旦您的网域上设置了 ads.txt 文件,Google 抓取工具就会执行以下操作:
- 每 24 小时尝试一次抓取该文件。
- 解析该文件的内容,以确定有权通过您的广告资源获利的卖方 ID。
您可以在 Ad Manager 的 ads.txt 管理工具中监控网域的 ads.txt 状态。在某些情况下,ads.txt 文件可能已发布到网域中,但 Ad Manager 却显示“找不到 ads.txt 文件”。如果文件已发布长达 24 小时,这通常意味着尽管该文件可能存在,Google 也无法找到/抓取/解析该文件。
如果出现这种情况,建议您与网站站长一起完成以下问题排查步骤。
目录
确认文件未出现暂时不可用的情况
如果先前看到的 ads.txt 文件在后续重新抓取时不可用,则先前看到的条目将会出现以下情况:
- 如果响应为硬 404 错误(网页实际不存在;错误状态为 HTTP 404),先前看到的条目将被完全清除。
- 如果响应为软 404 错误(针对实际上不存在的网址返回的实际网页;错误状态为 HTTP 200)或服务器 500 错误,先前看到的条目将被保留最多 5 天。在这种情况下,Ad Manager 所显示的“最新版本出现时间”可能就不符合常规的 24 小时更新周期,而是会更早。
确认文件可以通过根网域访问
从 domain.com/ads.txt
重定向到 www.domain.com/ads.txt
的情况相当常见。Ads.txt 的抓取将从根网域开始,而根网域需要从 ads.txt 文件返回或重定向到 ads.txt 文件。
www.domain.com/ads.txt
上的 ads.txt 文件只有在domain.com/ads.txt
重定向到它时才会被抓取。- 系统仅会追踪原始根网域以外的一个重定向(例如
example1.com/ads.txt
→example2.com/ads.txt
)。如果包含第二个重定向,即使它指向同一个网域,该文件也不会被抓取。
确保抓取操作不被 robots.txt 禁止
如果某个网域中的 robots.txt 文件不允许以下任意一项,则抓取工具可能会忽略该网域的 ads.txt 文件:
- 抓取用于发布 ads.txt 文件的网址路径。
- 使用抓取工具的用户代理。
示例:不允许抓取 ads.txt 文件路径上的内容
以 example1.com 为例:
- ads.txt 文件发布在
example1.com/ads.txt
上。 example1.com/robots.txt
中包含以下两行内容:User-agent: *
Disallow: /ads
- 遵守 robots.txt 标准的抓取工具会忽略 ads.txt 文件。
- 您可以按如下方法修改 robots.txt 文件以允许抓取文件(也可以采用其他方法):
- 方法 1:修改不允许抓取的路径。
User-agent: *
Disallow: /ads/
- 方法 2:明确允许抓取 ads.txt;能否使用此方法取决于抓取工具是否支持使用
Allow
robots.txt 指令。User-agent: *
Allow: /ads.txt
Disallow: /ads
- 方法 1:修改不允许抓取的路径。
示例:禁止用户代理在全站范围内进行抓取
以 example2.com 为例:
- ads.txt 文件发布在
example2.com/ads.txt
上。 example2.com/robots.txt
中包含以下两行内容:User-agent: Googlebot
Disallow: /
- Google 抓取工具会忽略 ads.txt 文件。
确保在返回文件的同时,显示的状态代码是 HTTP 200 OK
虽然对 ads.txt 文件的请求可能会在响应正文中返回文件内容,但是如果响应标头中的状态代码指示未找到该文件(例如状态代码 404),则:
- 系统将会忽略该响应。
- 该文件将被视为不存在。
因此,请确保在返回文件的同时,显示的状态代码是 HTTP 200 OK。
确保文件中没有格式错误或无效字符
格式错误(例如无效的空白字符)可能难以检测,但却会使 ads.txt 文件难以被抓取工具解析,从而可能导致文件被忽略。请避免从富文本编辑器复制和粘贴 ads.txt 条目;我们推荐使用纯文本编辑器。
确保通过 HTTP 和 HTTPS 均可访问 ads.txt 文件
Google 抓取工具会尝试通过 HTTP 和 HTTPS 这两种访问方式抓取所有 ads.txt 文件。但是,即使已经通过 HTTP 对 ads.txt 文件进行抓取,404(或 40X)响应仍会导致先前抓取的条目被完全清除。因此,通过 HTTPS 实施的抓取一旦返回 404(或 40X),那么:
- 之前抓取的条目将会被完全清除。
- Ad Manager 将显示“无 ads.txt”状态。
因此,请确保通过 HTTP 和 HTTPS 均可访问 ads.txt。
确认您的服务器/CDN 未向 Google 抓取工具返回无效响应
您在浏览器中查看时,系统可能会显示返回了有效的 ads.txt。但是,如果在用户代理指示抓取工具是 Googlebot 时返回了无效的非 ads.txt 响应,那么:
- Google 不会检测 ads.txt 文件。
- Ad Manager 将指示“找不到 ads.txt 文件”状态。
要针对这种情况进行调试,请让您的网站站长运行以下 shell 命令(将 mydomain.com
替换为您的网域):
- 要确认 ads.txt 文件是否可访问,请运行以下命令:
curl -iL http://mydomain.com>/ads.txt
当您转到mydomain.com/ads.txt
时,应该在浏览器中看到所返回的 ads.txt 文件的内容。 - 要确认 Google 抓取工具能否找到 ads.txt 文件,请运行以下命令:
curl -iL -A "'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html).'"
http://mydomain.com/ads.txt
如果返回了无效的非 ads.txt 响应,则表示当 Google 抓取工具尝试抓取 ads.txt 文件时,您的服务器或内容分发网络 (CDN) 返回了无效响应。
请注意,除了上面介绍的抓取工具用户代理检查之外,可能还有其他原因会导致您的服务器无法向 Google 抓取工具返回有效的响应。请与您的网站站长合作调查并解决此类问题,具体方法是查看您的服务器日志,看看 Google 在抓取 mydomain.com/ads.txt
或 mydomain.com/robots.txt
时是否失败了。