让十个应用的合规工作井井有条
哪些确实必须按应用分别处理,哪些可以共享,应用组合常犯的两个错误,以及把年度恐慌变成一个下午工作的登记表。
工作量不会线性增长——每个应用都需要自己的 URL、自己的删除途径和自己的声明,因为每个应用都有自己的商店详情。能够扩展的是方法:一种主机名模式,每种页面类型一个模板,以及一份按应用重新生成而不是靠记忆的依赖列表。
几分钟就能搞定
AppFoyer 托管本指南所讲的页面——隐私政策、服务条款、支持、账号删除和 app-ads.txt——放在它们自己的子域名上,你无需自己的域名或服务器。一个应用免费,而且商店要求的任何内容都绝不放在付费墙后面。
核查于 2026年9月19日。 商店政策会变,有时不会事先通知。下文所有内容都链接到官方文档,以那个页面为准,而不是本页。如果两者不一致,以商店为准。 本指南译自英文;引用的商店文档保留英文原文。
一个应用是一张检查清单。十个应用是一个系统,失败的方式也随之改变:没有什么是难的,但总有某样东西稍微过时,而你是从你最久没碰过的那个应用的拒审中才发现的。
哪些必须按应用分别处理
没有商量余地,因为每个应用都有自己的商店详情和自己的数据行为:
- 隐私政策。 不同的 SDK 组合意味着不同的披露内容。一份涵盖“我们的应用”的共享政策,是应用组合的典型错误——见下文。
- 账号删除页面,以及每个应用各自一条能联系到你的途径。
- Data safety 和 App Privacy 声明。 按每个商店详情分别填写,依据的是该应用自己的依赖列表。
app-ads.txt,如果该应用展示广告——它是通过该应用列表中的网站来定位的。- URL 本身,因为每个商店详情都有自己的字段。
哪些确实可以共享
- 模板。 所有隐私政策使用一种结构,条款使用一种结构,按应用分别填写。
- 主机名模式。 每个应用一个可预测的地址,胜过一堆临时拼凑的 URL。
- 支持地址,如果确实是一个收件箱服务所有应用。
- 你对 SDK 的了解。 Crashlytics 或 AdMob 收集什么,在每个应用中都是同一个事实;不同的只是哪些应用包含了它们。
- 流程——发布检查清单、审查节奏,以及下面的登记表。
应用组合常犯的两个错误
所有应用共用一份政策。 这是显而易见的省事做法,但它在两个方向上都会失败:政策列出了那个低调的工具类应用根本不碰的数据,又漏掉了最新那个应用上个月新增的东西。这两种情况都与你如实填写的 Data safety 表单不一致,而对比两者的审核人员看到的是一份与这个应用无关的政策。
一个无法归属的共享删除收件箱。 请求发来时写着“请删除我的账号”,却看不出指的是你十个应用中的哪一个。你无法处理你无法识别的请求,而在你弄清楚的这段时间里,GDPR 的时钟一直在走。请为每个应用的请求设置路由,让通知本身就能看出是哪个应用。
登记表
让应用组合变得可管理的,是一张你真正在维护的表——用电子表格就可以。每个应用一行,包含以下列:
| 列 | 原因 |
|---|---|
| 应用名称、bundle / application id | 身份 |
| 上架的商店 | 决定需要更新多少个控制台 |
| 隐私政策 URL | 你会反复粘贴的那个 |
| 账号删除 URL | 同上 |
| 支持地址 / 页面 | 同上 |
| 声明的开发者网站 | 查找 app-ads.txt 的地方 |
| 是否展示广告? | app-ads.txt 是否适用 |
| 是否有账号? | 删除要求是否适用 |
| 主要 SDK | 依赖列表的摘要 |
| 政策上次审查日期 | 告诉你哪些已经过时的日期 |
最后一列是最有价值的一列。两个商店都要求声明保持准确——而不仅仅是在上线时准确过——而“上次审查日期”能让你不必通读全部十个应用,就找出已经偏离的那三个。
行之有效的节奏
- 每次发布,每个应用:有没有任何依赖发生变化?如果有,重新检查该应用的政策和两份数据表单。把这一项写进发布检查清单,而不是靠记忆。
- 每季度,整个应用组合:打开登记表,按“上次审查日期”排序,检查最旧的几个。确认每个 URL 在未登录状态下仍返回 200。
- 每当 URL 迁移时:为每个受影响的应用更新每个控制台,并让旧地址保持重定向。有十个应用时,这是最容易只完成十分之九的改动。
一个十行的脚本,对登记表中的每个 URL 执行 curl 并报告非 200 的结果,只需一个下午就能写好,而且能抓住实际会发生的那种故障——一个悄无声息消失的主机。
AppFoyer 在这里做什么
每个应用都是独立的应用:有自己的子域名、自己的五个页面、自己的 app-ads.txt、自己的通知渠道、自己的检查清单。没有可能出错的共享政策,每个应用的删除请求在到达时都标明了是哪个应用。
控制台中的检查清单就是登记表的实时部分——它按应用告诉你哪个商店字段仍然为空以及为什么重要,所以“哪些已经过时”是一个屏幕,而不是一个你忘了更新的电子表格列。各套餐的区别在于你可以发布多少个应用:Free 一个,Pro 十个,Advanced 五十个。
坦白说明这方面的局限:批量编辑和应用分组目前还不存在。 今天要给十五个应用添加一行广告网络记录,就是十五次编辑。这项工作已在计划中但尚未发布,一个向你推销应用组合工具的页面应该说清楚其中哪些是真实存在的。
权威来源
- Provide information for Google Play’s Data safety section — Google Play Console 帮助中心,关于保持声明准确
- App privacy details on the App Store — Apple,关于保持回答及时更新
- Set up app-ads.txt — AdMob 帮助中心