iOS 设备标识符 IDFA 和 IDFV
1. IDFA 和 IDFV 是什么
iOS 里常见的设备标识符有两个:IDFA 和 IDFV。它们看起来都像设备 ID,但用途、可见范围和隐私要求完全不同。
IDFA 的全称是 Identifier for Advertisers,广告标识符。它是苹果分配给设备的跨 App、可重置、匿名标识符,主要用于广告追踪、广告归因和个性化广告。
IDFV 的全称是 Identifier for Vendors,开发商标识符。它只在同一个开发商旗下的 App 之间共享,主要用于开发商在自己的 App 生态内识别设备。
2. 核心区别
| 项目 | IDFA | IDFV |
|---|---|---|
| 使用目的 | 广告追踪和归因 | 同一开发商内部分析 |
| 可见范围 | 授权后,不同 App 看到同一个值 | 同一 Vendor 旗下 App 看到同一个值 |
| 是否需要授权 | iOS 14.5 后需要 ATT 授权 | 不需要 ATT 授权 |
| 是否可重置 | 用户可以重置或关闭追踪 | 同一 Vendor 的 App 都卸载后可能变化 |
| 是否能给广告平台追踪 | 可以,但必须先授权 | 不可以 |
可以这样理解:
IDFA 像进入商场时发的匿名访客牌。不同店铺都能看到这个号码,所以它适合广告追踪。但用户可以拒绝佩戴,也可以要求换一个号码。
IDFV 像某个连锁超市自己的会员卡。只有这家连锁超市旗下门店认得这张卡,其他商家不认。
3. ATT 对 IDFA 的影响
从 iOS 14.5 开始,苹果引入 AppTrackingTransparency(ATT)框架。应用必须先弹窗请求用户授权,用户同意后才能获取有效 IDFA。
如果用户拒绝授权,应用通常只能拿到全零字符串。因此代码里必须优雅处理拿不到 IDFA 的情况,广告逻辑和分析逻辑都不能因为 IDFA 为空而崩溃。
典型策略:
- 需要 IDFA 前先走 ATT 授权流程。
- 拒绝授权时关闭个性化追踪,保留不依赖 IDFA 的基础统计。
- 不要把 IDFV 当成 IDFA 的替代品做跨 App 广告追踪。
4. 常见误区
4.1 能不能用 IDFV 做广告追踪
不行。
广告平台无法识别你的 IDFV。IDFV 在你的 App 里是一个值,在其他开发商的 App 里是另一个值,无法建立跨 App 追踪链路。
更重要的是,把 IDFV 分享给第三方用于广告追踪也违反苹果的隐私政策。
4.2 IDFA 授权后,不同 App 看到的是同一个吗
是的。
在用户授权之后,同一台设备上不同 App 获取到的 IDFA 是相同的。这也是 IDFA 能用于广告归因的基础。
4.3 IDFV 什么时候会变化
IDFV 与 Vendor 相关。只要设备上还保留同一 Vendor 的任意一个 App,IDFV 通常保持不变。如果这个 Vendor 的所有 App 都被卸载,再重新安装,IDFV 可能变化。