使用CDN后Google广告后台出现修正ads.txt提示

确保 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 为例:

  1. ads.txt 文件发布在 example1.com/ads.txt 上。
  2. example1.com/robots.txt 中包含以下两行内容:User-agent: *
    Disallow: /ads
  3. 遵守 robots.txt 标准的抓取工具会忽略 ads.txt 文件。
  4. 您可以按如下方法修改 robots.txt 文件以允许抓取文件(也可以采用其他方法):
    • 方法 1:修改不允许抓取的路径。User-agent: *
      Disallow: /ads/
    • 方法 2:明确允许抓取 ads.txt;能否使用此方法取决于抓取工具是否支持使用 Allow robots.txt 指令。User-agent: *
      Allow: /ads.txt
      Disallow: /ads

示例:禁止用户代理在全站范围内进行抓取

以 example2.com 为例:

  1. ads.txt 文件发布在 example2.com/ads.txt 上。
  2. example2.com/robots.txt 中包含以下两行内容:User-agent: Googlebot
    Disallow: /
  3. 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 替换为您的网域):

  1. 要确认 ads.txt 文件是否可访问,请运行以下命令:curl -iL http://mydomain.com>/ads.txt
    当您转到 mydomain.com/ads.txt 时,应该在浏览器中看到所返回的 ads.txt 文件的内容。
  2. 要确认 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 时是否失败了。

留下评论