博客
没有网站怎么托管 app-ads.txt?
发布日期: 更新日期: 阅读约 7 分钟
为什么 app-ads.txt 必须放在根目录?
app-ads.txt 必须精确地位于商店信息开发者网站字段所声明的域名的根目录:https://yoursite.com/app-ads.txt。放在子目录中的文件(例如 /files/app-ads.txt 或 /ads/app-ads.txt)会被视为无效,广告网络也找不到它——标准抓取只检查根路径。
在 Android 上,这个地址必须与你在 Play Console 商店信息中填写的开发者网站字段完全一致:AdMob 及其他广告网络会在你所声明的域名上抓取该文件。如果声明的域名与实际托管文件的域名不一致(比如商店信息写的是 yoursite.com,但文件实际放在 anotheraddress.com),验证就会失败。
在 iOS 上,苹果没有与 Play Console 对应的字段;AdMob 使用的是 App Store Connect 中 App Information 标签页下的"Marketing URL"(营销网址)字段。因此,无论在哪个平台上,"我要托管在哪个域名"和"我要在这个字段中填写哪个域名"这两个问题的答案必须完全一致。
没有网站时:Google Sites 与 GitHub Pages
Google Sites 会把你的页面发布为它自己编辑器构建出来的内容;它不允许你把一个原始的 .txt 文件原样放在域名根目录——附加一个文件只会把它变成一个嵌入式附件链接,而不是位于 https://yoursite.com/app-ads.txt 的根文件。所以尽管配置简单,Google Sites 在技术上并不是 app-ads.txt 的可行选项。
GitHub Pages 可以用,但需要一些配置。如果你把仓库创建成精确的名称 username.github.io,仓库根目录会直接映射到该地址,你的 /app-ads.txt 文件就会成为真正的根文件——不需要额外购买域名。如果你用的是一个普通的项目仓库(例如 username.github.io/myapp),文件就会发布在子路径下,不符合根目录要求——这种情况下,你需要把一个已拥有的域名作为自定义域名连接到 Pages。
无论你选择哪条路径,你在商店信息开发者网站字段中填写的地址,都必须与文件实际所在的根域名完全一致——如果你用的是 username.github.io,你也需要在商店信息中填写完全相同的地址;这看起来可能不够专业,但技术上是可行的。
托管方案:Vibeloy 子域名
在 Vibeloy 上生成 app-ads.txt 内容是免费的:只需填写你的 AdMob 发布商 ID(pub-XXX),使用免费账户你就可以复制文件的完整内容。如果你没有自己的网站,将文件自动发布在专属于该应用的子域名根目录下(例如 uygulamaadi.vibeloy.dev/app-ads.txt)包含在高级(premium)方案中。
你唯一需要做的就是在商店信息的开发者网站字段中填写这个子域名地址;由于文件已经位于该地址的根目录,匹配规则会自动满足。不需要创建仓库,不需要手动上传文件,也不需要配置 DNS。
AdMob 通常会在大约 24 小时内重新抓取,以验证新添加或更新的 app-ads.txt 文件;而控制台中的警告完全消失可能还需要再多等几天。在这段时间里,你能做的就是确保文件始终位于根目录、可访问,并且格式正确。
分步指南:托管你的 app-ads.txt 文件
1. 收集你的 AdMob 发布商 ID(pub-XXX,可在 AdMob 控制台的 Settings > Account information 中找到),以及你使用的其他广告网络的信息;在确定托管地址之前,文件内容需要先确定下来。
2. 决定你的托管方式:如果你熟悉 GitHub Pages,可以使用 username.github.io 仓库,或将自己的域名作为自定义域名连接;如果你想避免技术配置,可以改用托管子域名方案。
3. 将文件精确发布在你所选地址的根目录,并把同一个地址填写到 Play Console 的开发者网站字段中,以及(对 iOS 而言)App Store Connect 中的"Marketing URL"字段中。
4. 发布后,在浏览器中直接打开该地址,确认文件以纯文本形式呈现——不是 HTML 页面,也不是 404——然后留意接下来几天 AdMob 控制台中的警告是否消失。
如果你不想自己走完这些步骤,Vibeloy 的免费 app-ads.txt 生成器可以在几分钟内生成格式正确的文件;如果你想让它自动托管在你自己子域名的根目录下,这项功能包含在高级(premium)方案中。
常见问题
- 我可以把 app-ads.txt 发布在子页面上吗?
- 不可以。文件必须精确位于域名根目录:https://yoursite.com/app-ads.txt。放在子路径下的文件(比如 /files/app-ads.txt)会被视为无效,广告网络也找不到它。
- 我可以用 Google Sites 托管 app-ads.txt 吗?
- 不可以。Google Sites 发布的是它自己编辑器构建出来的页面,不允许你把一个原始 .txt 文件放在域名根目录;即使附加了文件,也不会成为根文件。你需要改用 GitHub Pages 或托管子域名方案。
- 在 GitHub Pages 上真正把文件发布到根目录需要什么条件?
- 如果你把仓库创建成精确名称 username.github.io,仓库根目录会直接映射到该地址,不需要额外购买域名。使用普通的项目仓库时,文件会发布在子路径下,这种情况下你需要把自己的域名作为自定义域名连接到 Pages。
- 商店信息中的域名必须与文件托管的域名一致吗?
- 是的,必须完全一致。AdMob 及其他广告网络会在你商店信息中声明的域名上抓取该文件(Android 对应 Play Console 中的开发者网站字段,iOS 对应 App Store Connect 中的"Marketing URL"字段);托管在不同域名上的文件无法通过验证。
- AdMob 验证需要多长时间?
- AdMob 通常会在大约 24 小时内重新抓取,以验证新添加或更新的文件;控制台中的警告完全消失可能还需要再多等几天。没有任何方法能保证加快这个过程。