web-dev-qa-db-ja.com

iOS 6 UDID-identifierForVendorは、Advertising For Identifierよりもどのような利点がありますか?

AppleはiOS6のプライバシー設定を変更し、デバイスのUUID(UDID)を廃止します。 WWDCのプレゼンテーションとドキュメントによると、UDIDの代わりにUIDeviceクラスに2つの代替があります。

-identifierForVendor

  • 同じ開発者のアプリ間で同一のID。
  • そのチームIDの最後のアプリを削除すると消去されます。
  • バックアップ。

-identifierForAdvertising

  • デバイスに固有。
  • すべてのアプリケーションで利用可能。広告に使用— iAdはiOS 6以降のUDIDから変換しました。
  • 「すべてのコンテンツと設定を消去」でリセットします。
  • バックアップ。

-identifierForVendor-identifierForAdvertisingよりも劣っていると思われます。ベンダーからアプリを最後にアンインストールすると、「すべてのコンテンツと設定を消去」することでリセットされるからです。

-identifierForVendor-identifierForAdvertisingより優れている利点は何ですか?

69
Tihom

重要な注意事項

AppleはiOS 6.0をリリースしたばかりで、NDAは解除されました。

参照するコードをプリエンプティブに含めた開発者向け

[[UIDevice currentDevice] identifierForAdvertising]

このメソッドは[〜#〜] not [〜#〜]iOS 6に含まれています。上記のメソッドを使用すると、アプリは(ほとんどおそらく)クラッシュして拒否されます!

代わりに、AppleはメソッドASIdentifierManagerを含む新しいクラスadvertisingIdentifierを作成しました。これは Apple docs です:

34
JRG-Developer

ユーザーは、携帯電話での広告追跡の使用を制限できます。 オプトアウトメカニズムに関するこの記事 [設定]> [全般]> [バージョン情報]> [広告]を参照してください。

新しいASIdentifierManagerクラスにはadvertisingTrackingEnabledプロパティがあり、ユーザーが広告トラッキングを制限しているかどうかに応じてtrueまたはfalseを返します。デバイスの広告識別子は、オプトアウトに関係なくadvertisingIdentifierプロパティによって返されますが、ユーザーがオプトアウトしている場合は識別子を使用する必要はありません。

したがって、identifierForVendorの利点は、ユーザーが広告トラッキングのオプトインまたはオプトアウトに関係なく、常にこのIDにアクセスして電話で使用する権利があることです。

22
Mr. T

Appleは、広告に関連しないものにidentifierForAdvertisingを使用する場合(つまり、identifierForAdvertising広告ネットワークではない場合や、個人を特定できる可能性のある他のデータと同じリクエストでidentifierForAdvertisingを送信する場合でも、サーバーを所有します)。

私の疑いが正しければ、identifierForVendoridentifierForAdvertisingの利点は、アプリが拒否されないことです。

8
Ole Begemann

これらは、2つの異なる目的のための2つの異なるIDです。 identifierForVendorは、プッシュ通知を提供したり、ユーザーのアプリデータのサーバー側を更新したり(スコアやその他のデータが保存されているものなど)、特定のユーザー/デバイスにリンクするアプリを必要とするものそれら)。

5
g_low

VendorIDを使用します。これは非常に啓発的な記事です http://www.doubleencore.com/2013/04/unique-identifiers/

3
idiogo

IOS 6でデバイスの一意の識別子に基づいてuniqueStringを作成するには:

#import <AdSupport/ASIdentifierManager.h>

NSString *uniqueString = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
NSLog(@"uniqueString: %@", uniqueString);
1
wzbozon

identifierForAdvertisingは追跡の点ではおそらく優れていますが、ユーザーによる現在または将来のオプトアウトの対象となる可能性があります。一方、identifierForVendorはユーザーの対象になる可能性は低くなります。

0
Gustav

これらのAPIは非常に不適切に設計されているため、-Appleはユーザーデバイスを識別することを望んでいません。

IdentifierForVendorの説明をご覧ください。

ユーザーが同じベンダーのすべてのアプリを消去すると、消去されます。 :(信頼性がありません-nilを返すことがあります(これが発生した場合、しばらくの間「待機」するように文書化するアドバイス。:(

彼らは明らかな解決策を使用せず、いつでも機能し、インストール/削除に依存しません-チームIDと連結された内部ハードウェアデバイスIDのSHA-1(またはその他のハッシュ)を返します。

0
Hrissan

ユーザーは、設定でいつでもidentifierForAdvertisingを変更できます。このベンダーのデバイスにアプリがもうない場合は、アプリの再インストール後にidentifierForVendorが変更されます。

ここに、代替または取得または永続的なクロスインストールデバイス識別子の最適なソリューションを示します。

説明: https://blog.onliquid.com/persistent-device-unique-identifier-ios-keychain/

コード: https://Gist.github.com/miguelcma/e8f291e54b025815ca46

0
Igor

知っておくべき重要なことは、identifierForVendorのバックアップは同じデバイスにしか復元できないことです。バックアップが別のデバイスに復元されると、識別子は消去されます。

0
malhal