什么是App-ads.txt,为什么你应该关注它
App-ads.txt是IAB Tech Lab制定的一项标准,允许移动应用发布商声明哪些广告网络、交易平台和转售商被授权销售其广告库存。它是网站所使用的ads.txt标准在移动应用领域的对应版本,专为应用库存程序化买卖的独特方式而设计。
它所解决的问题很直接:如果没有app-ads.txt,欺诈者可以在广告交易平台中冒充你的应用,以你的应用名义出售虚假展示。这被称为域名欺骗或应用欺骗,它将广告主的预算吸入欺诈性库存,同时压低你合法展示可获得的eCPM。
如果你是运营任何形式程序化广告的移动游戏或工具类应用发布商,实施app-ads.txt不是可选项,而是直接保护你收入的基本要求。
App-ads.txt如何防止广告欺诈
其机制简单但有效。当广告主或需求方平台(DSP)收到声称来自你的应用的竞价请求时,他们可以通过检查你的app-ads.txt文件来验证该声明。如果提交竞价请求的广告网络未在你的文件中列出,DSP就知道该展示未经授权,可以拒绝它。
验证链
- 你的应用列表在Google Play或App Store中包含开发者网站URL。
- 你的开发者网站在根域名上托管app-ads.txt文件(例如 example.com/app-ads.txt)。
- DSP和交易平台定期抓取此文件并构建授权映射。
- 竞价请求会与此映射进行核对。未授权的卖家将被过滤掉。
这创建了一条从你的应用商店列表到你授权卖家的信任链,欺诈者无法伪造,因为他们无法控制你的开发者网站域名。
IAB规范:文件中应包含什么
app-ads.txt文件中的每一行都遵循IAB Tech Lab定义的特定格式。该格式与网页版ads.txt完全相同。
行格式
每个条目包含四个以逗号分隔的字段:
- 域名:广告系统的规范域名(例如 google.com、applovin.com)。
- 发布商账户ID:你在该广告系统中的唯一账户标识符。
- 关系类型:DIRECT(你拥有直接账户)或RESELLER(第三方通过该系统转售你的库存)。
- 认证机构ID:可选的TAG(可信责任组织)ID,用于进一步验证广告系统。对于Google,该值始终为f08c47fec0942fa0。
示例条目
一个使用Google Ad Manager并配合多个中介合作伙伴的发布商,其典型的app-ads.txt文件可能包含如下行:
- google.com, pub-XXXXXXXXXXXXXXXX, DIRECT, f08c47fec0942fa0 — 你的直接Google Ad Manager或AdMob账户。
- applovin.com, XXXXXXXXXX, DIRECT, XXXXXXXXXXXXXXXX — 你的直接AppLovin账户。
- unity.com, XXXXXXX, DIRECT, XXXXXXXXXXXXXXXX — 你的直接Unity Ads账户。
- inmobi.com, XXXXXXXXXX, RESELLER, XXXXXXXXXXXXXXXX — 一个间接访问你库存的网络的转售商条目。
你合作的每个广告网络和中介平台都应该为你提供其特定的app-ads.txt行。不要猜测账户ID或关系类型。
如何创建和托管你的App-ads.txt文件
第一步:收集你的授权卖家行
联系你合作的每个广告网络、SSP和中介合作伙伴。索取他们为你账户提供的app-ads.txt条目。大多数主要平台在其发布商后台中提供这些条目。Google Ad Manager、AdMob、AppLovin MAX、Unity LevelPlay等平台都有专门的部分供你复制相关行。
第二步:创建文件
创建一个名为app-ads.txt(小写,除.txt外无其他扩展名)的纯文本文件。粘贴你收集的所有行,每行一个条目。以#开头的行被视为注释。
第三步:托管在你的开发者网站根目录
上传文件,使其可以通过https://yourdomain.com/app-ads.txt访问。这必须是你在Google Play或App Store列表中所列的确切域名。除非完全匹配,否则子域名将不起作用。
第四步:验证你的开发者网站URL
在Google Play Console中,确认你的开发者网站URL与托管文件的域名一致。在App Store Connect中,在开发者信息下进行同样的验证。此链接使验证系统能够找到你的文件。
需要避免的常见错误
即使理解概念的发布商也经常犯实施错误,从而削弱app-ads.txt所提供的保护。
- 域名错误:当你的商店列表显示example.com时,将文件托管在www.example.com等子域名上,或反之亦然。域名必须完全匹配。
- 缺少条目:忘记列出所有授权卖家。如果遗漏了合法网络,DSP可能会过滤掉真实展示,直接降低你的填充率和收入。
- 文件过期:向你的中介堆栈添加了新的广告网络,但忘记更新app-ads.txt。将此文件视为活文档,每当你的变现合作伙伴发生变化时都必须更新。
- 关系类型错误:将转售商列为DIRECT或反之亦然。请使用你的广告合作伙伴指定的确切关系类型。
- 文件编码问题:文件必须是UTF-8编码的纯文本,以text/plain内容类型提供。HTML包装、BOM字符或其他编码artifacts会导致解析失败。
- HTTPS要求:文件必须可通过HTTPS访问。仅HTTP托管将无法通过大多数爬虫的验证。
Google和AdMob的执行
Google一直是app-ads.txt合规性最积极的执行者。自2020年以来,Google Ad Manager和AdMob逐步加强执行力度,以至于没有有效的app-ads.txt文件可能会严重影响你的收入。
没有App-ads.txt会怎样
- 需求减少:许多DSP,包括Google自己的DV360,不会对没有有效app-ads.txt文件的应用库存进行竞价。这直接减少了你展示的竞争,降低了eCPM。
- 政策警告:如果你在没有正确实施app-ads.txt的情况下投放广告,Google Play Console可能会对你的应用标记变现政策警告。
- 欺骗造成的收入损失:没有该文件,欺诈者可以出售你库存的虚假版本。花在欺骗性展示上的每一美元都是没有花在你真实展示上的一美元。
重要提示:Google会定期抓取app-ads.txt文件并缓存它们。更改可能需要24至48小时才能生效。在添加新的需求来源时提前计划,以确保授权不会出现空白期。
应该列出哪些广告网络
你应该列出每一个被授权销售或转售你库存的实体。这通常包括:
- 你的主要广告服务器:Google Ad Manager或AdMob(大多数发布商至少有一个Google条目)。
- 直接中介合作伙伴:你拥有直接发布商账户的任何网络(AppLovin、Unity、Meta Audience Network、Vungle/Liftoff、ironSource、Chartboost、InMobi等)。
- 转售商和交易平台:通过中介平台或SSP而非与你的直接关系来访问你库存的网络。
- 托管服务提供商:如果你使用RevenueFlex等服务通过Google Ad Manager管理你的广告瀑布流,相关的GAM条目将作为设置的一部分提供。
验证你的实施
发布app-ads.txt文件后,请使用以下方法进行验证:
- 直接URL检查:在浏览器中导航到https://yourdomain.com/app-ads.txt。你应该看到包含所有条目的原始文本文件。
- Google广告透明度中心:Google提供工具来验证你的app-ads.txt是否正在被抓取和正确解析。
- 第三方验证工具:AppBrain和Apptica等公司的工具可以扫描你的文件并标记格式错误或缺少的常见条目。
- 网络后台:大多数广告网络在其发布商后台中显示app-ads.txt状态指示器。检查每一个以确认它识别了你的授权。
对收入的影响:数据说明
正确实施app-ads.txt的发布商通常在几周内就能看到可衡量的收入改善。影响来自两个方向。
首先,更多需求方竞争你的库存,因为之前过滤掉你的DSP现在参与竞价。这种竞争加剧直接提升了eCPM。
其次,广告主预算向已验证的库存转移,因为品牌和代理商越来越多地在其定向标准中要求app-ads.txt合规性。支付最高CPM的优质需求不成比例地集中在执行这些标准的广告主中。
App-ads.txt是少数几项零成本、实施不到一小时、且对用户体验完全没有负面影响的变现优化措施之一。如果你还没有设置,今天就去做。如果你已经设置了,每季度审核一次以确保其保持最新。你的收入取决于此。