GAID (Google Advertising ID) e AAID (Android Advertising ID) sono identificatori pubblicitari unici dei dispositivi Android, utilizzati per l'attribuzione delle installazioni e la personalizzazione degli annunci. GAID è il nome ufficiale per i dispositivi con Google Play Services, AAID è un termine universale per tutti i dispositivi Android, incluse le build senza servizi Google. Secondo la Documentazione per sviluppatori Google, 2025, ottenere GAID richiede i servizi Google Play. AdvertisingIdClient è l'API principale per ottenere l'identificatore pubblicitario su Android.
Punti chiave
GAID (Google Advertising ID) è un identificatore unico assegnato a ciascun dispositivo Android con Google Play Services installato. È destinato a scopi pubblicitari: attribuzione delle installazioni, misurazione delle campagne e visualizzazione di annunci personalizzati. AAID (Android Advertising ID) è un termine più ampio che copre gli identificatori pubblicitari su tutti i dispositivi Android, inclusi i dispositivi Huawei con HMS, Amazon Fire e le build AOSP senza servizi Google.
La differenza principale tra GAID e IDFA su iOS è che GAID è disponibile senza una richiesta di autorizzazione esplicita, ma da Android 14, le app devono dichiarare l'uso dell'identificatore pubblicitario nel manifest e ottenere il consenso dell'utente in conformità con l'Informativa sulla privacy di Google Play. Google non richiede un dialogo di sistema (come ATT su iOS), ma lo sviluppatore deve seguire le regole di consenso dell'utente.
Secondo le Statistiche di Google Play Console (2025), oltre il 95% dei dispositivi Android attivi supporta GAID tramite Google Play Services. Sui dispositivi senza servizi Google (mercato cinese, Huawei AppGallery), vengono utilizzati AAID dei rispettivi app store o identificatori alternativi come OAID (Open Anonymous ID) per i produttori cinesi.
Il vantaggio chiave di GAID rispetto a IDFA è la possibilità di ottenere l'identificatore senza un dialogo di sistema bloccante. Tuttavia, Google sta costantemente inasprendo i requisiti: da Android 14, le app che targettizzano API 34 e superiori devono dichiarare esplicitamente l'autorizzazione AD_ID nel manifest.
Su Android, l'ottenimento dell'identificatore pubblicitario è implementato tramite Google Play Services e la classe AdvertisingIdClient. A differenza di iOS, dove IDFA richiede un dialogo ATT esplicito, GAID è disponibile per l'app per impostazione predefinita, a meno che l'utente non abbia disattivato la personalizzazione degli annunci nelle impostazioni del dispositivo.
La classe AdvertisingIdClient del pacchetto com.google.android.gms.ads.identifier fornisce due metodi principali: getAdvertisingIdInfo (contesto) e start (contesto). Il metodo restituisce un oggetto AdvertisingIdInfo contenente l'identificatore (stringa UUID) e il flag isLimitAdTrackingEnabled, che indica se l'utente ha disattivato la personalizzazione degli annunci.
La chiamata ad AdvertisingIdClient deve essere eseguita in un thread in background, poiché il metodo accede al servizio remoto di Google Play. Si consiglia di utilizzare coroutine o AsyncTask per il recupero asincrono dell'identificatore. Se Google Play Services non è disponibile sul dispositivo, il metodo genera un'eccezione GooglePlayServicesNotAvailableException — in questo caso, lo sviluppatore deve utilizzare un metodo di identificazione alternativo.
L'utente può reimpostare GAID in qualsiasi momento tramite Impostazioni — Google — Annunci — Reimposta identificatore pubblicitario. Dopo la reimpostazione, le app ricevono un nuovo identificatore e il collegamento ai dati precedenti viene perso. L'utente può anche attivare l'opzione “Disattiva personalizzazione annunci”, che imposta il flag isLimitAdTrackingEnabled su true.
Lo sviluppatore deve rispettare il flag isLimitAdTrackingEnabled: se è true, l'app non deve utilizzare GAID per la personalizzazione degli annunci, ma può usarlo per scopi limitati come misurazione delle conversioni, prevenzione delle frodi e limitazione della frequenza. La violazione di questa regola porta alla sospensione dell'app su Google Play.
A partire da Android 14 (API 34), Google ha introdotto nuove restrizioni all'accesso all'identificatore pubblicitario. L'autorizzazione AD_ID deve ora essere dichiarata esplicitamente nel manifest dell'app per ottenere GAID. Se l'app non dichiara l'autorizzazione e targettizza API 34+, la chiamata ad AdvertisingIdClient restituisce un identificatore nullo.
L'Informativa di Google Play richiede che le app che utilizzano GAID rispettino diverse regole: l'identificatore può essere utilizzato solo per scopi pubblicitari e analitici; l'app non deve collegare GAID a dati personali senza il consenso esplicito dell'utente; GAID non deve essere condiviso con terze parti senza indicazione nell'informativa sulla privacy. Dal 2025, Google Play ha iniziato a scansionare automaticamente le app per la conformità a queste regole utilizzando l'API Play Integrity.
Particolare attenzione è rivolta alle app per bambini: secondo la Google Play Families Policy, le app destinate ai bambini non possono utilizzare GAID per la personalizzazione degli annunci in nessuna circostanza. Gli sviluppatori devono utilizzare reti pubblicitarie certificate per il pubblico infantile.
Il flag isLimitAdTrackingEnabled segnala la scelta dell'utente all'app. Se il flag è true, l'app può utilizzare GAID solo per operazioni di base: attribuzione delle installazioni, analisi, antifrode, limitazione della frequenza. La personalizzazione degli annunci, la profilazione degli utenti e il retargeting basati su GAID sono vietati in questo caso.
Google raccomanda di non tentare di aggirare il flag isLimitAdTrackingEnabled tramite identificatori alternativi (IMEI, indirizzo MAC, Android ID). L'uso di identificatori hardware permanenti è severamente vietato dalla politica di Google Play e porta alla sospensione immediata dell'app senza possibilità di appello.
Ottenere GAID su Android richiede una chiamata asincrona ad AdvertisingIdClient con gestione delle possibili eccezioni. Di seguito è riportato un esempio completo in Kotlin utilizzando le coroutine.
L'esempio dimostra il recupero dell'identificatore pubblicitario e la verifica del flag isLimitAdTrackingEnabled utilizzando coroutine e try-catch per la gestione degli errori di Google Play Services.
import com.google.android.gms.ads.identifier.AdvertisingIdClient
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
data class AdvertisingInfo(
val gaid: String,
val isLimitAdTrackingEnabled: Boolean
)
suspend fun getAdvertisingInfo(context: Context): AdvertisingInfo? {
return withContext(Dispatchers.IO) {
try {
val adInfo = AdvertisingIdClient.getAdvertisingIdInfo(context)
AdvertisingInfo(
gaid = adInfo.id,
isLimitAdTrackingEnabled = adInfo.isLimitAdTrackingEnabled(true)
)
} catch (e: GooglePlayServicesNotAvailableException) {
// Servizi Google Play non disponibili — utilizzo ID alternativo
null
} catch (e: IOException) {
// Errore di rete durante l'accesso al servizio
null
}
}
}
// Utilizzo in Activity o ViewModel
fun onGaidRequested() {
lifecycleScope.launch {
val info = getAdvertisingInfo(this@MainActivity)
setupAdNetwork(
gaid = info?.gaid,
limitTracking = info?.isLimitAdTrackingEnabled ?: true
)
}
}
Comprendere le differenze tra gli identificatori pubblicitari su diverse piattaforme è di fondamentale importanza per gli sviluppatori che lavorano con l'attribuzione pubblicitaria su entrambi i SO. Di seguito è riportato un confronto degli aspetti chiave di GAID, AAID e IDFA.
La differenza principale tra GAID e IDFA è il meccanismo di ottenimento. IDFA richiede il consenso esplicito tramite ATT, senza il quale viene restituito un identificatore nullo. GAID è disponibile senza un dialogo di sistema, ma da Android 14+ richiede la dichiarazione dell'autorizzazione AD_ID nel manifest. GAID ha anche un sistema di flag più flessibile: isLimitAdTrackingEnabled non blocca il recupero dell'identificatore, segnala solo all'app di limitarne l'uso.
Secondo Adjust (2025), la disponibilità di GAID su Android è del 98% dei dispositivi attivi contro il 20–35% di disponibilità di IDFA su iOS. Questo rende Android una piattaforma più prevedibile per l'attribuzione pubblicitaria, ma l'inasprimento delle politiche Google sta gradualmente riducendo questo divario.
AAID, a differenza di GAID, non è legato a Google Play Services e può essere utilizzato su dispositivi Huawei (HMS), Amazon Fire OS e produttori cinesi. Sui dispositivi Huawei, AAID è implementato tramite Huawei Mobile Services (HMS) con la classe AdvertisingIdClient del pacchetto com.huawei.hms.ads.identifier. Per il mercato cinese, è comune anche OAID (Open Anonymous ID) — uno standard sviluppato dall'alleanza dei produttori cinesi per sostituire GAID sui dispositivi senza servizi Google. La scelta dell'API corretta per ottenere l'identificatore influisce direttamente sulla disponibilità dell'attribuzione pubblicitaria in diversi mercati.
Domande frequenti
GAID (Google Advertising ID) è un identificatore pubblicitario per dispositivi con Google Play Services. AAID (Android Advertising ID) è un termine generale per gli identificatori pubblicitari Android, inclusi i dispositivi senza servizi Google (Huawei, Amazon Fire). GAID si ottiene tramite Google Play, AAID tramite l'SDK del rispettivo app store.
Sì, a partire da Android 14 (API 34) è necessario specificare l'autorizzazione AD_ID nel manifest. Se l'app ha targetSdkVersion 34+ e non specifica AD_ID, AdvertisingIdClient restituisce un identificatore nullo. L'autorizzazione viene specificata tramite il tag
Sì, l'utente può reimpostare GAID in qualsiasi momento tramite Impostazioni — Google — Annunci — Reimposta identificatore pubblicitario. Dopo la reimpostazione, tutte le app ricevono un nuovo identificatore e il collegamento con la cronologia delle interazioni pubblicitarie viene perso.
OAID (Open Anonymous ID) è uno standard di identificatore pubblicitario sviluppato dall'alleanza dei produttori cinesi di smartphone (Xiaomi, OPPO, vivo, Huawei). Viene utilizzato su dispositivi senza Google Play Services per il mercato cinese. A differenza di GAID, OAID non richiede Google Play e funziona tramite l'SDK del produttore del dispositivo.
Se isLimitAdTrackingEnabled è true, l'app non può utilizzare GAID per la personalizzazione degli annunci, la profilazione degli utenti e il retargeting. Tuttavia, l'identificatore può essere utilizzato per scopi limitati: attribuzione delle installazioni, analisi, prevenzione delle frodi e limitazione della frequenza.
Riepilogo
Svilupperemo un'applicazione mobile chiavi in mano
IT Sectr crea applicazioni iOS e Android per startup e aziende dal 2017. Ti consulteremo e ti proporremo la soluzione migliore.
Leggi anche