关于移动设备唯一标识生成
1. iOS
iOS的设备唯一标志由iOS系统直接给予,根据应用类型不同分两类:
- IDFV:Vindor标示符,适用于对内:例如分析用户在应用内的行为等。来源是应用的bundle id,e.g com.shinezone。每个发行商的发行的应用的IDFV是一致的。任何应用可以使用。
- IDFA:广告标示符,适用于对外:例如广告推广,换量等跨应用的用户追踪等。来源是系统API,设备唯一。仅广告应用可用。
IDFA非广告应用不得使用(来源):
广告
在你提交 app 以供审核时,将向你询问你的 app 是否使用“广告标识符”(IDFA) 来投放广告。如果你指出 app 使用 IDFA,但是没有广告功能或无法正常显示广告,则你的 app 可能被拒绝。请务必在 iOS 设备上对你的 app 进行测试,以确定广告是否可以正常工作。同样,如果你指出你的 app 未使用 IDFA,但可以显示广告,则会将你的 app 置于“无效的二进制文件”状态。
2. Android
Android的设备唯一标志由系统内的几个信息组合按程序算法生成。其算法不受应用、发行商等要素的影响,只要同设备,生成的ID即一致。
3. 问题
- A、B两个同公司的应用,是否能在同一玩家游玩的时候对他们进行识别
- A、B两个不同公司的应用,是否有什么办法能在同一玩家游玩的时候对他们进行识别
- A、B两个不同公司的应用,在植入了同一款广告应用之后,该广告应用是否能对使用这两个应用的玩家进行识别
4. 结论
4.1 iOS
4.2 Android
无关是否广告应用,也无关公司所属。都可以识别。
5. 验证
上述结论需要实际实验来进行验证,这里的验证主要是iOS操作系统,无Android部分。测试环境:iPhone7 Plus | iOS 10.3.3
经实际应用测试,上述的结论没有问题。
6. 风险点
6.1 iOS
- 在本机所有相同BundleID的应用都被删除的情况下,IDFV会被重置
- 在开启限制广告跟踪开关的情况下,IDFA无法生成(为0)
- 开关过一次广告跟踪开关之后,本机的IDFA会重置
- 刷机和还原系统会重置一切
6.2 Android
以下行为会改变Android的唯一标识:
- 刷机
- 还原系统
- 用户更换手机Sim卡
- 厂商的Bug,定制后的系统,可能多个设备具有一样的Android ID
- 用户对应用的授权变动
EOF