跳到正文
AppFoyer
免费开始

指南 app-ads.txt

没有网站时如何托管 app-ads.txt

爬虫真正需要什么,三种无需建站就能提供主机的方法,每种方法的重定向陷阱,以及如何确认它可以正常工作。

你不需要网站,只需要一个由你控制的主机名,以纯文本、HTTP 200、无重定向的方式提供 /app-ads.txt。把这个地址填入商店详情的开发者网站字段——在 App Store 上是 Marketing URL——爬虫就会在那里读取文件。AdMob 明确把 Firebase Hosting 列为可接受的方式。

几分钟就能搞定

AppFoyer 托管本指南所讲的页面——隐私政策、服务条款、支持、账号删除和 app-ads.txt——放在它们自己的子域名上,你无需自己的域名或服务器。一个应用免费,而且商店要求的任何内容都绝不放在付费墙后面。

核查于 2026年10月12日。 商店政策会变,有时不会事先通知。下文所有内容都链接到官方文档,以那个页面为准,而不是本页。如果两者不一致,以商店为准。 本指南译自英文;引用的商店文档保留英文原文。

你不需要网站,只需要一个由你控制的主机名,以纯文本、HTTP 200、无重定向的方式提供 /app-ads.txt。 把这个地址填入商店详情的开发者网站字段——在 App Store 上是 Marketing URL,在 Google Play 上是 Store listing contact details(商店详情联系信息)下的 Website——爬虫就会在那里读取文件。

AdMob 直接说明了这一点:“If you don’t have a suitable website that allows the uploading of an app-ads.txt file at the root level, you can use Firebase Hosting to host your app-ads.txt file.”(译文:如果你没有合适的、允许在根目录上传 app-ads.txt 文件的网站,可以使用 Firebase Hosting 托管你的 app-ads.txt 文件。)平台托管是预期的做法,而不是变通办法。

爬虫真正需要什么

爬虫不会按包名查找你的应用。它从你的商店详情中取出开发者网站,保留主机名,然后在其根目录抓取 /app-ads.txt。AdMob 的规则:

  • 根目录,而不是路径。 指向 example.com/myapp 的列表会在 example.com/app-ads.txt 处检查。
  • 一级子域名。 爬虫会 “probe[s] up to one subdomain level from the developer website”(译文:从开发者网站起最多探测一级子域名)。www. 和 m. 被视为域名本身。
  • 直接提供。 200 OK、Content-Type: text/plain、无重定向、无需登录、robots.txt 中没有任何规则阻止它。

所以要做的事情是:一个不会变动的地址,正确地提供一个文本文件,持续数年。下面三种方法都能做到;区别在于你需要维护多少。

方法 1:Firebase Hosting

这是 AdMob 点名的方法。一个免费的 Firebase 项目会给你一个主机名,例如 your-project.web.app。

  1. 在 Firebase 控制台中创建项目,并安装 Firebase CLI。
  2. 在一个空文件夹中运行 firebase init hosting,保留默认的 public 目录。
  3. 把你的 app-ads.txt 放进 public/,与生成的 index.html 放在一起。
  4. 运行 firebase deploy --only hosting。
  5. 在每个商店详情中把 https://your-project.web.app 设为开发者网站。

陷阱:如果你以后连接了自定义域名,并选择把 web.app 地址重定向到该域名,那么列表中的地址就会返回重定向。要么让列表继续使用直接提供文件的那个地址,要么把列表更新为新域名。

方法 2:GitHub Pages 或其他静态托管

任何静态托管都可以,只要文件最终位于你所声明主机名的根目录。

在 GitHub Pages 上这个细节很重要:项目站点位于 username.github.io/repo/,但爬虫只检查 username.github.io/app-ads.txt。文件必须放在用户站点中——即名为 username.github.io 的仓库——或者该项目需要有自己的自定义域名。

同样的重定向陷阱也适用:一旦配置了自定义域名,GitHub Pages 会把 github.io 地址重定向到它。请声明那个无需跳转就能提供文件的地址。

方法 3:托管的合规页面

如果你还需要隐私政策、支持页面或账号删除 URL——而带广告的应用几乎总是需要第一项——同一个主机可以提供所有这些内容。这正是 AppFoyer 所做的:每个应用都有自己的子域名,以纯文本、无重定向的方式提供 app-ads.txt,旁边就是商店要求的各个页面。对于开发者网站为 AppFoyer 地址的两个商店上的应用,AdMob 报告 “app-ads.txt file found and verified”(已找到并验证 app-ads.txt 文件)(2026 年 10 月核实)。我们目前还没有来自其他广告网络的抓取结果。

在爬虫之前先自己检查

curl -i https://your-host.example/app-ads.txt

你需要看到 HTTP/2 200(或 HTTP/1.1 200 OK)、content-type: text/plain、没有 location: 头,并且正文中有你的那些行。这里出现 301 或 302 是最常见的隐形失败。

然后等待。AdMob 表示 “it can take up to 24 hours for AdMob to crawl and verify your app-ads.txt files”(译文:AdMob 抓取并验证你的 app-ads.txt 文件可能需要最多 24 小时)。状态位于 Apps → View all apps → app-ads.txt;如果过了一天仍显示未找到,未找到问题指南会按顺序逐一排查原因。

权威来源