web-dev-qa-db-fra.com

iOS 6 UDID - Quels sont les avantages de identifierForVendor par rapport à identifier pour la publicité?

Apple modifie ses paramètres de confidentialité pour iOS6 et désapprouve les UUID de périphérique (UDID). Selon une présentation WWDC et la documentation, il existe deux remplacements pour les UDID, tous deux de la classe UIDevice:

-identifierForVendor

  • ID identique entre les applications du même développeur.
  • Supprimé avec la suppression de la dernière application pour cet ID d'équipe.
  • Sauvegardé.

-identifierForAdvertising

  • Unique à l'appareil.
  • Disponible pour toutes les applications; utilisé pour la publicité - iAd a converti UDID pour iOS 6 et versions ultérieures.
  • Réinitialisez avec "Effacer tout le contenu et les paramètres".
  • Sauvegardé.

Il me semble que -identifierForVendor est inférieur à -identifierForAdvertising puisqu'il serait réinitialisé lors de la dernière désinstallation d'une application chez un fournisseur et par "effacer tout le contenu et les paramètres".

Quels sont les avantages de -identifierForVendor par rapport à -identifierForAdvertising?

69
Tihom

Note importante:

Apple vient de sortir iOS 6.0 et le NDA a été levé.

Pour les développeurs qui ont inclus de manière préemptive le code référencé

[[UIDevice currentDevice] identifierForAdvertising]

cette méthode PAS a été incluse dans iOS 6. Si vous utilisez la méthode ci-dessus, votre application se plantera (probablement) et sera rejetée!

Au lieu de cela, Apple a créé une nouvelle classe ASIdentifierManager, qui inclut la méthode advertisingIdentifier. Voici le Documents Apple dessus:

34
JRG-Developer

Les utilisateurs peuvent limiter l'utilisation du suivi des annonces sur leur téléphone. Voir cet article sur le mécanisme de retrait sous Paramètres> Général> À propos de> Publicité. 

La nouvelle classe ASIdentifierManager a une propriété advertisingTrackingEnabled qui renvoie true ou false selon que l'utilisateur dispose d'un suivi des annonces limité. Même si l'identifiant publicitaire du périphérique est renvoyé par la propriété advertisingIdentifier indépendamment de l'opt-out, vous n'êtes pas censé utiliser l'identifiant si l'utilisateur a désinscrit.

Donc, identifierForVendor a pour avantage que vous aurez toujours le droit d'utiliser cet identifiant pour le téléphone et ce, que l'utilisateur ait ou non opt-in ou non pour le suivi de la publicité.

22
Mr. T

Je pense qu'Apple rejettera simplement votre application si vous utilisez identifierForAdvertising pour tout ce qui n'est pas lié à la publicité (c'est-à-dire si vous envoyez la identifierForAdvertising à vos propres serveurs même si vous n'êtes pas un réseau publicitaire ou si vous envoyez la identifierForAdvertising dans le même demande avec d’autres données susceptibles d’identifier une personne).

Si mes soupçons sont corrects, l'avantage de identifierForVendor par rapport à identifierForAdvertising est que votre application ne sera pas rejetée.

8
Ole Begemann

Il s’agit de deux identifiants différents destinés à deux objectifs différents ... Je pense que ce serait l'identifiantForVendor qui serait utilisé pour effectuer des tâches nécessitant la liaison de l'application à un utilisateur/appareil spécifique, telles que fournir des notifications Push et mettre à jour l'application de l'utilisateur les serveurs de données (comme leur score ou toute autre donnée stockée pour eux).
L'identifiantForAdvertising devrait être utilisé pour des choses telles que la publicité ciblée et également pour vérifier l'efficacité d'une campagne publicitaire particulière (vérifiez quels appareils ont installé des applications en raison d'une publicité particulière).

5
g_low

Utilisez le VendorID. Cet article est très instructif http://www.doubleencore.com/2013/04/unique-identifiers/

3
idiogo

Pour créer une chaîne unique basée sur l'identificateur unique du périphérique dans iOS 6: 

#import <AdSupport/ASIdentifierManager.h>

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

identifierForAdvertising est probablement supérieur en termes de suivi mais peut être soumis à la désinscription actuelle ou future de l'utilisateur. D'autre part, identifierForVendor n'est pas aussi susceptible d'être soumis à l'utilisateur.

0
Gustav

Ces API sont si mal conçues, qu’elle dit clairement: Apple ne veut pas que nous identifions les appareils des utilisateurs.

Il suffit de regarder la description de identifierForVendor.

Il est effacé si l'utilisateur efface toutes les applications du même fournisseur. : ( Ce n’est pas fiable - peut renvoyer nil (conseils de documentation pour "attendre" quelque temps si cela se produit. :(

Ils n'ont pas utilisé de solution évidente, qui fonctionne à tout moment et ne repose pas sur l'installation/la suppression - renvoie SHA-1 (ou tout autre hachage) d'un ID de périphérique matériel interne concaténé avec l'ID de l'équipe.

0
Hrissan

L'utilisateur peut modifier identifierForAdvertising à tout moment dans les paramètres., IdentifierForVendor change après la réinstallation de l'application, s'il n'y a plus d'applications sur le périphérique de ce fournisseur.

Voici l'alternative et la meilleure solution pour l'identificateur de périphérique d'installation multiple d'installation persistante ou persistante:

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

code: https://Gist.github.com/miguelcma/e8f291e54b025815ca46

0
Igor

La chose importante à savoir est que la sauvegarde de identifierForVendor ne peut être restaurée que sur le même appareil. Si la sauvegarde est restaurée sur un périphérique différent, l'identifiant est effacé.

0
malhal