ユーザーが手動でリセットする以外に、ADIDがリセットされる原因となる他のことを誰かが観察しましたか? OTA OSのアップグレード? iTunesが復元しますか?
(iOS6.0.1およびiOS6.1.3を搭載したiPhone3GSおよびiOS6.1.3およびiOS7.0.0を搭載したiPhone4Sでテストした場合のadvertisingIdentifier
およびidentifierForVendor
への影響)
iOS設定アプリの「すべての設定をリセット」
無効
iOS設定アプリの「すべてのコンテンツと設定を消去」advertisingIdentifier
とidentifierForVendor
の両方をリセットします。
iTunes経由でデバイスを復元するadvertisingIdentifier
とidentifierForVendor
の両方をリセットします。
デバイスからアプリを削除する
これが特定のチームIDを持つ最後のアプリである場合は、identifierForVendor
をリセットします。
アプリの更新(自動またはApp Store経由)
無効
TestFlightまたはAd-Hocを介したアプリの更新
ドキュメントによると、identifierForVendor
をリセットする可能性があります。
「広告追跡の制限」の有効化/無効化
iOS 6.0.1:効果なし
iOS 6.1.3:advertisingIdentifier
をリセットします。
システムアップデートOTA(iOS6.0.1からiOS6.1.3)
無効
システムアップデートOTA(iOS6.1.3からiOS7.0.0)
場合によってはidentifierForVendor
をリセットします。 (1)
iTunes経由のシステムアップデート(iOS6.1.3からiOS7.0.0)
場合によってはidentifierForVendor
をリセットします。 (1)
iOS設定アプリの「広告識別子のリセット」advertisingIdentifier
をリセットします。実行中の(または一時停止中の)アプリの一部がすでにadvertisingIdentifier
をリクエストしている場合、アプリを停止して再起動するまで、新しいアプリを取得することはできません。
iTunes経由のバックアップ
無効
iTunesを介したバックアップの復元(同じデバイスへ)advertisingIdentifier
とidentifierForVendor
の両方を含むバックアップ設定を復元します。注:復元前にチームIDを持つ複数のアプリを削除した場合、インストールしたチームIDを持つすべてのアプリを再インストールして再度削除するまで、identifierForVendor
が再度リセットされることはありません。これはバグのようです。
iTunesを介したバックアップの復元(別のデバイスへ)advertisingIdentifier
とidentifierForVendor
の両方をリセットします。
(1)私が理解している限り、これはAppStoreのアプリでは発生しないはずです。これは、アプリのbundleID内のコンポーネントの数とそれぞれのプロビジョニングプロファイルに関連しているようです: アプリのデプロイに関するiOS 7アプリのリリースノート
私のテストでは、4つのコンポーネントを備えたアプリのidentifierForVendor
did変更(開発者またはエンタープライズのディストリビューションプロビジョニングプロファイルを備えたバージョンの場合)、しかししなかった 3つのコンポーネントを持つものの変更。
2つのケース:
バックアップ、OSのアップグレード、アプリの再インストール、または「広告の追跡を制限する」を選択しても、識別子はリセットされません。
AFAIKでは、ベンダーIDと広告IDをサーバーに送信できます。ユーザーが「広告識別子のリセット」を使用して広告IDをリセットすると、ベンダーIDが存続するため、新しいものと古いものを一致させることができます。 Appleがこれを防ぐつもりである方法がわかりません。
Appleからの公式の決定的なリストはありません。ドキュメントには次のように記載されています。
この識別子は、たとえばユーザーがデバイスを消去した場合に変更される可能性があるため、キャッシュしないでください。
Appleはこれ以上の詳細を提供していません。デバイスをリセットするとADIDが変更され、ユーザーが手動でデバイスをリセットすることも知られています(この機能が利用できる場合は、iOS 6.1以降)。 OSのアップデートで識別子がリセットされることを示唆するものは何も見つかりませんでした。
もちろん、他の文書化されていない動作によって識別子がリセットされる可能性はありますが、他に何も見つかりませんでした。