Ottieni un ID pubblicità reimpostabile dall'utente Parte di Android Jetpack.
Per tutelare la privacy degli utenti, è una best practice per tutte le app per Android funzionare con identificatori reimpostabili dall'utente. Uno di questi identificatori è un ID pubblicità, che identifica in modo univoco un determinato utente per i casi d'uso pubblicitari, come la personalizzazione degli annunci.
Per supportare una soluzione di monitoraggio degli annunci standardizzata su tutti i dispositivi che eseguono la tua app, puoi utilizzare la libreria ID pubblicità. Questa libreria, disponibile sui dispositivi con Android 4.0 (livello API 14) e versioni successive, definisce un'interfaccia per interagire con i fornitori di pubblicità a livello di sistema. Questa interfaccia consente alla tua app di ricevere valori dell'ID pubblicità coerenti.
Il fornitore di annunci incluso nella libreria ID pubblicità definisce anche un intent standard per l'apertura di una schermata delle impostazioni implementata dal fornitore di annunci. Questa schermata delle impostazioni consente all'utente di reimpostare l'ID pubblicità e di disattivare la personalizzazione degli annunci.
Questa guida spiega come utilizzare il modulo client della libreria ID pubblicità per ottenere un ID pubblicità coerente per ogni utente del dispositivo. Questa guida fornisce quindi una panoramica dell'architettura della libreria.
Configura l'app client
Interagendo con il modulo client della libreria ID pubblicità, la tua app può recuperare un ID pubblicità coerente che rappresenta l'utente che interagisce con l'app.
L'ID pubblicità è rappresentato utilizzando la versione 3 del formato UUID (Universally Unique Identifier) o un formato equivalente a 128 bit:
38400000-8cf0-11bd-b23e-10b96e40000d
La libreria ID pubblicità normalizza il valore restituito in base alle necessità per fornire ID utilizzando questo formato.
Per recuperare l'ID pubblicità reimpostabile dall'utente per la tua app, completa i seguenti passaggi:
Verifica se è disponibile un fornitore di annunci chiamando
AdvertisingIdClient.isAdvertisingIdProviderAvailable(). Se questo metodo restituiscefalse, la tua app deve utilizzare un altro mezzo per eseguire i casi d'uso di monitoraggio degli annunci richiesti.Ottieni i dettagli dell'identificatore pubblicità, incluso l'ID pubblicità, chiamando il numero
AdvertisingIdClient.getAdvertisingIdInfo(). La libreria ID pubblicità esegue questo metodo su un thread di lavoro e utilizza un timeout di connessione di 10 secondi.
Il seguente snippet di codice mostra come recuperare l'ID pubblicità insieme ad altre informazioni dal fornitore di annunci:
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.
}
}
Architettura della libreria ID pubblicità
La Figura 1 mostra la struttura della libreria dell'ID pubblicità. La libreria è costituita dai seguenti moduli:
- Un modulo client, un livello sottile incluso nelle app.
- Un modulo del fornitore, reso disponibile dal produttore del dispositivo. Le implementazioni di questo modulo devono definire un'interfaccia utente delle impostazioni per consentire agli utenti di reimpostare il proprio ID pubblicità e attivare/disattivare le preferenze di monitoraggio degli annunci.
Il modulo client comunica con il modulo fornitore per recuperare gli ID pubblicità e le preferenze dell'utente in merito al monitoraggio degli annunci.
Come la libreria gestisce più fornitori
È possibile che un dispositivo supporti più fornitori di annunci a livello di sistema contemporaneamente. Se la libreria ID pubblicità rileva questa situazione, verifica che la tua app recuperi sempre le informazioni dallo stesso fornitore, supponendo che il fornitore rimanga disponibile. Questo processo mantiene l'ID pubblicità coerente.
Se il set di fornitori di annunci disponibili cambia nel tempo e la tua app interagisce con un fornitore di identificatori pubblicità diverso, anche tutte le altre app client iniziano a utilizzare il nuovo fornitore. La tua app mostra lo stesso comportamento che si verificherebbe se l'utente avesse richiesto di reimpostare il proprio ID pubblicità.
La libreria del fornitore di ID pubblicità utilizza il seguente ordine deterministico per classificare i fornitori:
- Fornitori che hanno richiesto l'autorizzazione
androidx.ads.identifier.provider.HIGH_PRIORITY. - I fornitori installati sul dispositivo da più tempo.
- I fornitori che compaiono per primi in ordine alfabetico.