苹果的“advertisingIdentifier”在什么情况下重置?

除了用户手动重置它,有没有人观察到其他的事情会导致ADID被重置? OTA操作系统升级? iTunes恢复?

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

  • “iOS设置”应用程序中的“重置所有设置”
    没有效果

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

  • 通过iTunes恢复设备
    重置advertisingIdentifieridentifierForVendor

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

  • 更新应用程序(自动或通过App Store)
    没有效果

  • 通过TestFlight或Ad-Hoc更新应用程序
    根据文档可以重置identifierForVendor ForVendor。

  • 启用/停用“限制广告跟踪”
    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 。 注意:如果您在还原之前删除了多个带有某个团队ID的应用程序,那么在您重新安装所有安装了该团队ID的应用程序并重新删除之前, identifierForVendor将不会再次被重置。 这似乎是一个错误。

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

(1)据我所知,这应该不会发生在App Store中的应用程序。 这似乎与应用程序的bundleID中的组件数量以及相应的供应configuration文件有关: 关于应用程序部署的iOS 7应用程序版本说明
在我的testing中,具有4个组件的应用程序中的identifierForVendor 确实发生了变化(对于具有开发者或企业版分发configuration文件的版本),但是对于那些包含3个组件的版本并没有改变。

两种情况:

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

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

AFAIK可以将供应商ID和广告ID发送到服务器,当用户使用“重置广告标识符”重置广告ID时,由于供应商ID存在,您可以匹配新旧广告。 不知道苹果如何防止这种情况。

苹果没有官方的确切名单。 该文件只说明:

这个标识符可能会改变 – 例如,如果用户擦除设备 – 所以你不应该caching它。

苹果公司不会给出进一步的细节。 众所周知,重置设备会改变ADID,就像用户手动重置它自己一样(这个function可用,所以iOS 6.1+)。 我一直无法find任何暗示操作系统更新会重置标识符的东西。

当然,其他的,无证的行为可能会重置标识符,但是我还没有find其他的东西。