Obtenir un identifiant publicitaire réinitialisable par l'utilisateur Fait partie d'Android Jetpack.
Pour protéger la confidentialité des utilisateurs, il est recommandé d'utiliser d'identifiants réinitialisables par l'utilisateur. L'identifiant publicitaire est l'un de ces identifiants. Il permet d'identifier de manière unique un utilisateur particulier pour les cas d'utilisation publicitaires, comme la personnalisation des annonces.
La mise en œuvre d'une solution standardisée de suivi des annonces sur tous les appareils exécutant votre l'application, vous pouvez utiliser la bibliothèque d'identifiants publicitaires. Cette bibliothèque, disponible sur les appareils équipés d'Android 4.0 (niveau d'API 14) et les niveaux supérieurs, définit une interface permettant d'interagir avec les fournisseurs d'annonces au niveau du système. Cette interface permet à votre application de recevoir des valeurs d'identifiant publicitaire cohérentes.
Le fournisseur d'annonces inclus dans la bibliothèque d'identifiants publicitaires définit également intent standard pour ouvrir un écran de paramètres implémenté par le fournisseur d'annonces. Cet écran de paramètres permet à l'utilisateur de réinitialiser son identifiant publicitaire et de se désinscrire. de personnalisation des annonces.
Ce guide explique comment utiliser le module client de la bibliothèque Advertising ID pour obtenir un identifiant publicitaire cohérent par appareil et utilisateur. Ce guide présente ensuite une vue d'ensemble de l'architecture de la bibliothèque.
Configurer votre application cliente
En interagissant avec le module client de la bibliothèque d'identifiants publicitaires, votre application peut récupérer un identifiant publicitaire cohérent qui représente l'utilisateur qui interagit avec l'application.
L'identifiant publicitaire est représenté à l'aide de la version 3 du format d'identifiant unique universel (UUID) ou d'un format équivalent de 128 bits :
38400000-8cf0-11bd-b23e-10b96e40000d
La bibliothèque d'identifiants publicitaires normalise la valeur renvoyée si nécessaire pour fournir ID utilisant ce format.
Pour récupérer l'identifiant publicitaire réinitialisable par l'utilisateur pour votre application, complétez le procédez comme suit:
Pour vérifier si un fournisseur d'annonces est disponible, appelez
AdvertisingIdClient.isAdvertisingIdProviderAvailable()
. Si cette méthode renvoiefalse
, votre application doit utiliser un autre moyen pour effectuer les cas d'utilisation de suivi des annonces requis.Obtenez les informations sur l'identifiant de l'annonce, y compris l'identifiant publicitaire, en appelant
AdvertisingIdClient.getAdvertisingIdInfo()
. La bibliothèque Advertising ID exécute cette méthode sur un thread de travail et utilise un délai avant expiration de la connexion de 10 secondes.
L'extrait de code suivant montre comment récupérer l'identifiant publicitaire ainsi que d'autres informations provenant du fournisseur d'annonces:
app/build.gradle
Groovy
dependencies { implementation 'androidx.ads:ads-identifier:1.0.0-alpha01' // Used for the calls to addCallback() in the snippets on this page. implementation 'com.google.guava:guava:28.0-android' }
Kotlin
dependencies { implementation("androidx.ads:ads-identifier:1.0.0-alpha01") // Used for the calls to addCallback() in the snippets on this page. implementation("com.google.guava:guava:28.0-android") }
MyAdIdClient
Kotlin
// Used for the call to addCallback() within this snippet. import com.google.common.util.concurrent.Futures.addCallback private fun determineAdvertisingInfo() { if (AdvertisingIdClient.isAdvertisingIdProviderAvailable()) { val advertisingIdInfoListenableFuture = AdvertisingIdClient.getAdvertisingIdInfo(applicationContext) addCallback(advertisingIdInfoListenableFuture, object : FutureCallback<AdvertisingIdInfo> { override fun onSuccess(adInfo: AdvertisingIdInfo?) { val id: String = adInfo?.id val providerPackageName: String = adInfo?.providerPackageName val isLimitTrackingEnabled: Boolean = adInfo?.isLimitTrackingEnabled } // Any exceptions thrown by getAdvertisingIdInfo() // cause this method to be called. override fun onFailure(t: Throwable) { Log.e("MY_APP_TAG", "Failed to connect to Advertising ID provider.") // Try to connect to the Advertising ID provider again or fall // back to an ad solution that doesn't require using the // Advertising ID library. } }, Executors.newSingleThreadExecutor()) } else { // The Advertising ID client library is unavailable. Use a different // library to perform any required ad use cases. } }
Java
// Used for the call to addCallback() within this snippet. import com.google.common.util.concurrent.Futures; private void determineAdvertisingInfo() { if (AdvertisingIdClient.isAdvertisingIdProviderAvailable()) { ListenableFuture<AdvertisingIdInfo> advertisingIdInfoListenableFuture = AdvertisingIdClient.getAdvertisingIdInfo(getApplicationContext()); Futures.addCallback(advertisingIdInfoListenableFuture, new FutureCallback<AdvertisingIdInfo>() { @Override public void onSuccess(AdvertisingIdInfo adInfo) { String id = adInfo.getId(); String providerPackageName = adInfo.getProviderPackageName(); boolean isLimitTrackingEnabled = adInfo.isLimitTrackingEnabled(); // Any exceptions thrown by getAdvertisingIdInfo() // cause this method to be called. @Override public void onFailure(Throwable throwable) { Log.e("MY_APP_TAG", "Failed to connect to Advertising ID provider."); // Try to connect to the Advertising ID provider again // or fall back to an ad solution that doesn't require // using the Advertising ID library. } }); } else { // The Advertising ID client library is unavailable. Use a different // library to perform any required ad use cases. } }
Architecture de la bibliothèque d'identifiants publicitaires
La figure 1 illustre la structure de la bibliothèque Advertising ID. Cette bibliothèque comprend les modules suivants:
- Un module client, qui est une couche mince incluse dans les applications.
- Un module de fournisseur, mis à disposition par le fabricant de l'appareil. Les implémentations de ce module doivent définir une UI de paramètres pour permettre aux utilisateurs de réinitialiser leur identifiant publicitaire et d'activer ou de désactiver les préférences de suivi des annonces.
Le module client communique avec le module fournisseur pour récupérer l'annonce ID et préférences des utilisateurs concernant le suivi des annonces
Comment la bibliothèque gère-t-elle plusieurs fournisseurs ?
Un appareil peut prendre en charge plusieurs fournisseurs d'annonces au niveau du système en même temps. Si la bibliothèque Advertising ID détecte cette situation, elle s'assure que votre application récupère toujours des informations auprès du même fournisseur, en supposant que le fournisseur reste disponible. Ce processus permet de maintenir la cohérence de l'ID publicitaire.
Si l'ensemble des fournisseurs d'annonces disponibles change au fil du temps et que votre application interagit avec un fournisseur d'identifiants d'annonce différent, toutes les autres applications clientes avec ce nouveau fournisseur. Votre application présente le même comportement que se produisait si l'utilisateur avait demandé à réinitialiser son identifiant publicitaire.
La bibliothèque du fournisseur d'identifiants publicitaires utilise l'ordre déterministe suivant pour classer les fournisseurs :
- Fournisseurs ayant demandé l'autorisation
androidx.ads.identifier.provider.HIGH_PRIORITY
. - Fournisseurs installés sur l'appareil depuis le plus longtemps.
- Fournisseurs qui apparaissent en premier dans l'ordre alphabétique.