App 跟踪透明度 (ATT)

App Tracking Transparency(ATT)是 Apple 的隐私框架,于 2021 年 4 月随 iOS 14.5 推出,要求所有 iOS、iPadOS 和 tvOS 应用在跨其他公司的应用和网站跟踪用户活动之前,必须获得用户的明确许可。当应用调用 ATT API 时,系统会显示一个标准化提示,其中包含两个选项:”允许”或”要求 App 不跟踪”。如果未获得用户同意,应用将无法访问设备的广告标识符(IDFA),这从根本上改变了移动营销人员在 Apple 设备上衡量广告活动、归因安装以及个性化用户体验的方式。

App Tracking Transparency 的工作原理

ATT 围绕一个核心 UI 元素构建:由系统呈现的权限对话框。应用必须先触发该对话框,才能读取设备的 IDFA 或以其他方式跨第三方平台跟踪用户。该提示通过 Apple 的 AppTrackingTransparency 框架显示,其文案由 Apple 固定——开发者只能自定义一段显示在系统文字下方的简短用途说明。

根据 Apple 的定义,”跟踪”具体是指将从你的应用收集的用户或设备数据,与从其他公司的应用、网站或线下来源收集的数据关联起来,用于广告或广告效果衡量。与数据经纪商共享数据同样属于跟踪,无论你的应用是否读取 IDFA 等标识符。

跟踪

ATT 提示

每个 ATT 提示都包含三个部分:

  1. 固定的系统问题:”允许 [App Name] 跟踪您在其他公司的 App 和网站上的活动吗?”
  2. 由开发者提供的一段简短用途说明,用于解释为何请求跟踪权限。
  3. 两个按钮:”要求 App 不跟踪”和”允许”。

在用户点击”允许”之前,默认状态为拒绝跟踪。应用可以提前显示自定义预提示页面,向用户说明选择允许跟踪的价值,但系统提示本身无法修改、跳过或替换。

授权状态

ATT 框架会返回四种授权状态之一,每种状态都会决定你的应用可以执行哪些操作以及不能执行哪些操作。

状态含义返回的 IDFA
未确定尚未显示提示全部为零
已授权用户点击了”允许”真实 IDFA
已拒绝用户点击了”要求 App 不跟踪”或在系统范围内禁用了跟踪全部为零
受限设备层面禁止跟踪(例如儿童账户、MDM)全部为零

Apple 为什么推出 ATT

ATT 是 Apple 更广泛隐私战略的核心执行机制。在 iOS 14.5 之前,每台 iPhone 默认都会向应用提供 IDFA。如果用户想停止个性化广告,则必须进入设置并启用”限制广告跟踪”。大约 70% 的用户从未这样做,因此广告网络、归因服务商和开发者几乎可以不受限制地构建跨应用用户行为画像。

Apple 彻底改变了这一默认设置。ATT 将 iOS 生态系统从默认允许、主动退出的跟踪模式转变为默认拒绝、主动选择加入,并将 IDFA——跨应用归因的关键基础——的访问权限绑定到系统对话框中的一次点击。结合 App Store 隐私标签和 SKAdNetwork,ATT 成为了 Apple 推动整个移动广告生态要么获取用户同意,要么使用聚合、匿名数据运行的机制。

ATT 与 IDFA:发生了哪些变化

广告标识符(IDFA)是 iOS 向应用提供的、用于广告和归因的唯一设备级 ID。在 ATT 推出之前,它始终可用;ATT 推出之后,只有获得用户明确同意的应用才能获取它。未获得同意的应用会收到一串零值,而不是真实 ID。

方面ATT 之前(iOS 14.5 之前)ATT 之后(iOS 14.5+)
默认跟踪状态默认加入默认退出
IDFA 访问权限除非用户启用了 LAT,否则可用仅在用户授权后可用
用户级归因Default仅适用于选择加入的用户
授权体验设置中的开关(LAT)每个应用单独显示系统提示
聚合式替代方案未被广泛使用SKAdNetwork / AdAttributionKit

对广告主和订阅类应用的影响

ATT 大幅减少了广告主在 iOS 上可获得的确定性用户级数据,并进一步影响到用户获取、归因和生命周期价值建模。尤其对于订阅类应用而言,其单位经济模型依赖于持续数月跟踪从试用到付费的转化以及后续续订,因此失去基于 IDFA 的精细归因能力后,营销绩效衡量方式不得不进行全面调整。

归因挑战

双重授权进一步加剧了这一问题。为了将一次付费安装准确关联回某次广告展示,发布广告的应用和目标应用(广告主)都需要获得 ATT 授权——这种”双重选择加入”会使基于 IDFA 的有效归因率远低于表面上的授权率。如果缺少其中任何一方的授权,MMP 就无法以确定性方式将安装与其来源关联,而概率归因方法则存在显著误差。

SKAdNetwork 和 AdAttributionKit

Apple 提供的隐私保护型替代方案是 SKAdNetwork(SKAN),之后又推出 AdAttributionKit 对其进行补充,并在部分场景下取代它。这两个框架都在广告活动层级而非用户层级提供归因:广告网络可以知道某个广告活动带来了安装,但无法知道具体是哪个用户完成了安装。回传存在延迟,转化值经过离散化处理,同时聚合阈值会限制报告的精细程度。如需更全面了解这些机制在 iOS 上的实际表现,请参阅 Adapty 关于 iOS 14、IDFA 和归因的深度解析

如何在 iOS 应用中实现 ATT

实现 ATT 分为两个步骤:首先在应用的 Info.plist 中声明跟踪用途,然后在用户流程中的适当时机调用 ATT API。

添加隐私说明

在 Info.plist 中添加 NSUserTrackingUsageDescription 键,并填写一到两句话,说明你的应用为什么需要跟踪用户。这段文字会显示在系统提示下方,如果应用使用含糊、笼统或具有误导性的说明,Apple 会拒绝其上架。

请求授权

当应用处于前台运行状态时,从主线程调用 ATTrackingManager.requestTrackingAuthorization(completionHandler:)。对于每次应用安装,系统只会在第一次调用时显示提示——后续调用只会返回缓存的授权状态,不会再次弹出提示。在读取 ASIdentifierManager.advertisingIdentifier 之前,应始终检查返回的状态;如果状态不是 .authorized,IDFA 将全部为零。

ATT 提示的最佳实践

系统文案无法修改,但显示时机和上下文可以调整。目前主要有三种提示展示策略,每种策略在覆盖用户范围与授权质量之间都有不同的权衡。

漏斗阶段触发时机用户覆盖范围典型授权率
漏斗早期首次启动应用或首次会话最大较低
漏斗中期完成新手引导或首次感受到产品价值之后中等中等至较高
漏斗后期创建账户或首次购买时最小最高

最稳定有效的方法包括:显示预提示,说明明确的具体好处(例如”个性化推荐”或”由广告支持的免费内容”);等到用户已经体验到产品价值后再请求授权;以及如实说明哪些数据会被共享。预提示不得在视觉上模仿系统对话框——Apple 的审核团队会拒绝试图误导用户点击”允许”的应用,同时禁止通过提供奖励来换取用户授权。

https://[www.youtube.com/watch?v=OdwbJdoH5FM ](http://www.youtube.com/watch?v=OdwbJdoH5FM )

ATT 授权率:当前基准

随着用户越来越熟悉隐私提示,以及开发者不断优化预提示和新手引导流程,授权率整体呈上升趋势。Adjust 2025 年第二季度的数据显示,全球平均授权率约为 35%,而 AppsFlyer 此前的基准数据显示,部分用户群体中的这一比例接近 50%。不同国家和垂直行业之间差异显著——游戏和娱乐类应用通常表现较低,而工具和金融类应用往往能够获得更高的授权率。

指标近似值
全球 ATT 授权率~35%
报告中的高位水平~50%
有效 IDFA 归因率(经过双重授权后)显著更低
受限设备(无法显示提示)约占 iOS 用户的 14%

ATT 与 Android 隐私框架对比

Google 在 Android 上采取了不同的路径。Google Advertising ID(GAID)——相当于 Android 版 IDFA——长期以来默认可访问,但 Android 12 引入了退出开关,而 Google 的 Privacy Sandbox 则旨在逐步淘汰跨应用标识符,转而使用设备端的聚合信号。用户级标识符 IDFV(Identifier for Vendors)可在同一发布商的多个应用之间共享,在 iOS 上无需 ATT 授权即可继续使用,对于第一方数据衡量仍然非常有价值。

方面iOS(ATT)Android(GAID + Privacy Sandbox)
授权模式按应用主动选择加入系统范围内主动退出
默认跟踪状态获得权限之前处于禁用状态在用户重置 ID 之前处于启用状态
聚合框架SKAdNetwork / AdAttributionKitPrivacy Sandbox APIs
拒绝授权时的标识符归零的 IDFA归零的 GAID

常见问题

Apple 在 WWDC 2020 上宣布了 ATT,并在 2021 年 4 月 26 日发布的 iOS 14.5 中正式推出。相关规则也从同一时间开始执行,这意味着在该日期之后提交到 App Store 的任何应用,如果希望访问 IDFA 或以其他方式跨第三方平台跟踪用户,都必须使用 ATT 框架。

只有当你的应用实际进行了 Apple 所定义的跟踪行为时,才必须显示该提示——即将应用数据与其他公司收集的数据关联起来用于广告,或与数据经纪商共享数据。不进行跟踪的应用无需调用 ATT API。不过,如果你的应用在没有显示提示的情况下实施跟踪,会在 App Store 审核期间被拒绝,或者在之后被发现时遭到下架。

系统会返回 denied 状态,读取到的 IDFA 将是一串零值,并且你的应用无法为了广告目的与第三方共享设备级数据。你仍然可以使用第一方数据——包括 IDFV——进行应用内分析、个性化以及同一发布商账户内部的跨应用衡量。

只能部分自定义。系统问题和按钮文字是固定的。你可以控制 Info.plist 中的用途说明字符串(显示在系统文字下方的小字),也可以在触发系统对话框之前显示自己的预提示页面。Apple 的审核指南禁止预提示模仿系统 UI、通过奖励诱导用户选择加入,或因用户拒绝而对其进行羞辱或施压。

IDFA 是实际的标识符——一串用于广告目的、可唯一标识设备的字符。ATT 则是控制其访问权限的授权框架。ATT 是一道门,而 IDFA 就是门后的内容。

不适用。ATT 仅适用于 Apple 平台。Android 使用 Google Advertising ID(GAID),其传统模式是默认允许、用户主动退出,而不是主动选择加入。不过,Google 的 Privacy Sandbox 正在逐步推动 Android 转向更加注重隐私保护的聚合式衡量方式。

不可以。系统只会在首次调用 requestTrackingAuthorization 时显示提示;后续调用只会返回缓存的状态,不会再次显示 UI。如果用户想更改选择,必须手动打开“设置”→“隐私与安全性”→“跟踪”,然后切换对应应用的权限。

订阅类应用依赖长期归因——需要将今天的一次广告展示,与数周后产生的付费订阅关联起来,并继续追踪此后数月的续订情况。在缺少 IDFA 的情况下,基于 MMP 的确定性归因只能覆盖选择授权的用户。如今,大多数订阅团队会将用于付费用户获取的 SKAdNetwork 或 AdAttributionKit 回传数据,与第一方事件跟踪(通过 IDFV 或内部用户 ID)结合起来,以便在自有数据中衡量从试用到付费的转化、留存和 LTV。如需更深入的说明,请参阅 Adapty 的 App Tracking Transparency 指南
目录