我的结论:ATT不是技术点,是上线流程
我见过最常见的失败接入,是开发照着文档调了requestTrackingAuthorization,测试机也弹窗了,大家就以为完成。等版本上线,投放报表断层、用户投诉弹窗突兀、审核追问隐私用途,才发现前期没设计完整。
真正可用的ATT流程,应该从产品场景开始,再到代码调用,最后到数据验证。代码只占三分之一,另外三分之二是时机和口径。
ATT怎么用,我更愿意按真实上线流程讲,而不是只贴一段调用代码。一次可用的ATT接入,至少要包含权限状态判断、触发时机、说明页、归因兜底和数据验证。少任何一环,上线后都容易返工。
我见过最常见的失败接入,是开发照着文档调了requestTrackingAuthorization,测试机也弹窗了,大家就以为完成。等版本上线,投放报表断层、用户投诉弹窗突兀、审核追问隐私用途,才发现前期没设计完整。
真正可用的ATT流程,应该从产品场景开始,再到代码调用,最后到数据验证。代码只占三分之一,另外三分之二是时机和口径。
ATT有几种常见状态:notDetermined表示用户还没选择,authorized表示允许,denied表示拒绝,restricted表示受限制。只有notDetermined时才适合请求系统弹窗。
实测时我会先在启动后记录一次状态,但不立刻弹。比如新用户完成关键动作后再触发:看完3条内容、加入购物车、完成角色创建、保存第一个项目。这个节点要和产品价值有关,而不是随便找个页面塞进去。
自定义说明页不是为了“骗同意”,而是把苹果那句生硬的系统话翻译成人话。比如内容App可以写:允许后,我们能减少重复广告,并衡量哪些内容推广真正有效。不要写“开启后体验全面升级”,这种话用户不信,审核也未必喜欢。
按钮也要克制。可以用“继续”“稍后再说”,别把拒绝按钮做得像灰色陷阱。隐私相关交互越像套路,用户越容易反感。
ATT怎么用最容易漏的一步,是把授权结果写进分析系统。只知道弹窗展示次数不够,要记录展示、点击继续、系统授权结果、触发场景、App版本、渠道来源。
我习惯做一张漏斗:进入触发场景100%,看到说明页多少,点击继续多少,系统authorized多少,后续完成注册或付费多少。这样能判断问题在文案、时机,还是用户本来就不信任这个场景。
用户拒绝ATT后,不要每次打开App都用自定义弹层追问。正确做法是在设置页放一个“隐私与个性化”入口,说明可前往系统设置修改。只有当用户主动访问相关功能时,再轻量提示一次。
同时要准备归因兜底:SKAdNetwork、聚合事件、第一方转化路径都要跑。把业务建立在“用户都会同意”这个假设上,基本等于上线前埋雷。
ATT怎么用,最后可以压成三句话:清楚说明用途,克制选择时机,验证数据结果。别把它做成一个孤零零的弹窗,也别把它包装成用户必须接受的门槛。
好的ATT接入看起来并不花哨:用户知道自己在同意什么,开发者知道授权带来多少有效数据,投放团队知道无授权时如何继续归因。能做到这三点,就已经超过大部分粗糙上线。
在涉及跨App或跨网站追踪前,请求系统ATT授权,并在隐私标签中准确披露数据用途。不要在用户拒绝后限制无关核心功能,也不要诱导或误导授权。
建议在用户理解产品价值之后弹,例如完成首次关键操作、进入个性化功能、准备使用广告相关权益时。冷启动立即弹通常同意率和体验都较差。
可以提供设置入口和清晰说明,但不要频繁打扰。系统授权状态需要用户到iOS设置中手动修改,App内不能反复强行弹系统授权窗。