苹果的“广告标识符”在什么情况下会被重置?

26

除了用户手动重置之外,有没有观察到其他会导致ADID重置的原因?OTA操作系统升级?iTunes恢复?


操作系统升级或格式化设备。 - Divyu
@Divyu 来源在哪里?我非常怀疑操作系统升级会重置广告标识符... - Andreas Ley
3个回答

86

(在 iPhone 3GS 上使用 iOS 6.0.1 和 iOS 6.1.3 以及 iPhone 4S 上使用 iOS 6.1.3 和 iOS 7.0.0 进行测试,对 advertisingIdentifieridentifierForVendor 的影响)

  • iOS 设置应用程序中的“重置所有设置”
    没有影响。

  • iOS 设置应用程序中的“擦除所有内容和设置”
    重置了 advertisingIdentifieridentifierForVendor

  • 通过 iTunes 恢复设备
    重置了 advertisingIdentifieridentifierForVendor

  • 从设备中删除应用程序
    如果这是具有特定 Team ID 的最后一个应用程序,则会重置 identifierForVendor

  • 更新应用程序(自动或通过应用商店)
    没有影响。

  • 通过 TestFlight 或 Ad-Hoc 更新应用程序
    根据文档,可能会重置 identifierForVendor

  • 启用/禁用“限制广告跟踪”
    iOS 6.0.1:没有影响
    iOS 6.1.3:重置了 advertisingIdentifier

  • OTA 系统更新(从 iOS 6.0.1 更新到 iOS 6.1.3)
    没有影响。

  • OTA 系统更新(从 iOS 6.1.3 更新到 iOS 7.0.0)
    在某些情况下会重置 identifierForVendor。(1)

  • 通过 iTunes 进行系统更新(从 iOS 6.1.3 更新到 iOS 7.0.0)
    在某些情况下会重置 identifierForVendor。(1)

  • iOS设置应用程序中的“重置广告标识符”
    重置advertisingIdentifier。如果已经有一些正在运行(或挂起)的应用程序请求了advertisingIdentifier,它们将无法在停止和重新启动之前检索到新的标识符。

  • iTunes备份
    没有影响

  • iTunes备份还原(到同一设备)
    还原备份的设置,包括advertisingIdentifieridentifierForVendor。注意:如果您在恢复之前删除了多个带有某个Team ID的应用程序,则identifierForVendor将永远不会再次重置,直到您安装并再次删除所有使用该Team ID的应用程序。这似乎是一个错误。

  • iTunes备份还原(到另一设备)
    重置advertisingIdentifieridentifierForVendor


  • (1) 据我所知,在App Store中的应用程序不应该出现这种情况。这似乎与应用程序包ID中的组件数量和相应的预配配置文件有关:iOS 7应用程序发布说明关于应用程序部署
    在我的测试中,对于具有4个组件的应用程序(使用开发人员或企业分发预配配置文件的版本),identifierForVendor会改变,但对于那些具有3个组件的应用程序,identifierForVendor则不会改变。


    @MusiGenesis 你说得对。实际上,苹果在这两个版本之间改变了这种行为,而我没有注意到。在iOS模拟器中进行了验证,并在答案中进行了修复。谢谢! :) - Andreas Ley
    @Andreas Ley 你好,如果我将备份恢复到另一台设备上,新设备上是否仍然可以获得相同的ADID和VendorID? - MasterBeta
    @RandyDailey 经过更多的测试,看起来通过iTunes进行系统更新与OTA更新是等效的。 - Andreas Ley
    那么,有没有办法在iOS应用程序中唯一识别设备,因为广告标识符行不通?请注意,没有使用用户注册系统。 - George Pligoropoulos
    @GeorgePligor 最接近的方法是滥用iOS钥匙串,在应用程序首次启动时存储标识符。当应用程序被卸载时,钥匙串项目不会被删除并保留在系统更新之间。但是,当用户完全擦除设备时,此信息也会丢失。苹果正在努力确保您无法唯一地识别设备,因此钥匙串技巧在某些时候可能会停止工作。 - Andreas Ley
    显示剩余7条评论

    4

    两种情况:

    • 手动选择“重置广告标识符”。但如果应用程序在后台运行,标识符将保持活动状态,直到重新启动该应用程序。
    • 手动选择“重置所有内容和设置”。

    备份、操作系统升级、应用程序重新安装或选择“限制广告跟踪”不会重置标识符。

    据我所知,您可以将供应商ID和广告ID发送到服务器,当用户使用“重置广告标识符”重置时,您可以将新的与旧的匹配,因为供应商ID存活下来了。不知道苹果打算如何防止这种情况。


    1
    没有官方的、权威的苹果公司列表。文档只说明:
    这个标识符可能会改变——例如,如果用户擦除了设备——所以你不应该缓存它。
    苹果不提供任何进一步的细节。已知重置设备会更改广告标识符,用户自己手动重置也会更改(在可用的情况下,如iOS 6.1+)。我找不到任何暗示操作系统更新会重置标识符的内容。当然,其他未记录的行为可能会重置标识符,但我找不到其他任何信息。

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接