GAID (Google Advertising ID) i AAID (Android Advertising ID) — to unikalne identyfikatory reklamowe urządzeń Android, używane do atrybucji instalacji i personalizacji reklam. GAID to oficjalna nazwa dla urządzeń z Google Play Services, AAID to uniwersalny termin dla wszystkich urządzeń Android, w tym kompilacji bez usług Google. Według Google Developer Documentation, 2025, uzyskanie GAID wymaga podłączenia usług Google Play. AdvertisingIdClient — główne API do uzyskania identyfikatora reklamowego na Androidzie.
Najważniejsze
GAID (Google Advertising ID) — to unikalny identyfikator przypisywany każdemu urządzeniu Android z zainstalowanymi Google Play Services. Jest przeznaczony do celów reklamowych: atrybucji instalacji, pomiaru skuteczności kampanii i wyświetlania spersonalizowanych reklam. AAID (Android Advertising ID) — szerszy termin obejmujący identyfikatory reklamowe na wszystkich urządzeniach Android, w tym urządzeniach Huawei z HMS, Amazon Fire i kompilacjach AOSP bez usług Google.
Główna różnica między GAID a IDFA na iOS — GAID jest dostępny bez jawnego żądania uprawnienia, ale od Androida 14 aplikacje muszą deklarować użycie identyfikatora reklamowego w manifeście i uzyskiwać zgodę użytkownika zgodnie z Polityką prywatności Google Play. Google nie wymaga systemowego okna dialogowego (jak ATT na iOS), ale deweloper musi przestrzegać zasad zgody użytkownika.
Według Google Play Console Statistics (2025), ponad 95% aktywnych urządzeń Android obsługuje GAID przez Google Play Services. Na urządzeniach bez usług Google (rynek chiński, Huawei AppGallery) używany jest AAID z odpowiednich sklepów aplikacji lub alternatywne identyfikatory, takie jak OAID (Open Anonymous ID) dla chińskich producentów.
Kluczowa zaleta GAID przed IDFA — możliwość uzyskania identyfikatora bez blokującego okna systemowego. Jednak Google stale zaostrza wymagania: od Androida 14 aplikacje targetujące API 34 i wyżej muszą jawnie określić uprawnienie AD_ID w manifeście.
Na Androidzie uzyskanie identyfikatora reklamowego jest realizowane przez Google Play Services i klasę AdvertisingIdClient. W przeciwieństwie do iOS, gdzie IDFA wymaga jawnego okna ATT, GAID jest dostępny dla aplikacji domyślnie, jeśli użytkownik nie wyłączył personalizacji reklam w ustawieniach urządzenia.
Klasa AdvertisingIdClient z pakietu com.google.android.gms.ads.identifier udostępnia dwie główne metody: getAdvertisingIdInfo (kontekst) i start (kontekst). Metoda zwraca obiekt AdvertisingIdInfo zawierający identyfikator (ciąg UUID) i flagę isLimitAdTrackingEnabled, która pokazuje, czy użytkownik wyłączył personalizację reklam.
Wywołanie AdvertisingIdClient musi być wykonane w wątku tła, ponieważ metoda odwołuje się do zdalnej usługi Google Play. Zaleca się używanie korutyn lub AsyncTask do asynchronicznego uzyskania identyfikatora. Jeśli Google Play Services są niedostępne na urządzeniu, metoda zgłasza wyjątek GooglePlayServicesNotAvailableException — w tym przypadku deweloper musi użyć alternatywnej metody identyfikacji.
Użytkownik może zresetować GAID w dowolnym momencie przez Ustawienia — Google — Reklamy — Resetuj identyfikator reklamowy. Po zresetowaniu aplikacje otrzymują nowy identyfikator, a powiązanie z poprzednimi danymi zostaje utracone. Użytkownik może również włączyć opcję „Wyłącz personalizację reklam”, która zmienia flagę isLimitAdTrackingEnabled na true.
Deweloper ma obowiązek respektować flagę isLimitAdTrackingEnabled: jeśli jest równa true, aplikacja nie może używać GAID do personalizacji reklam, ale może go używać do ograniczonych celów, takich jak pomiar konwersji, walka z oszustwami i ograniczanie częstotliwości wyświetlania. Naruszenie tej zasady prowadzi do zablokowania aplikacji w Google Play.
Począwszy od Androida 14 (API 34), Google wprowadziło nowe ograniczenia dostępu do identyfikatora reklamowego. Uprawnienie AD_ID musi być teraz jawnie określone w manifeście aplikacji, aby uzyskać GAID. Jeśli aplikacja nie określa uprawnienia i targetuje API 34+, wywołanie AdvertisingIdClient zwraca zerowy identyfikator.
Polityka Google Play wymaga, aby aplikacje używające GAID przestrzegały kilku zasad: identyfikator może być używany tylko do celów reklamowych i analitycznych; aplikacja nie może łączyć GAID z danymi osobowymi bez jawnej zgody użytkownika; GAID nie może być przekazywany stronom trzecim bez wskazania w polityce prywatności. Od 2025 roku Google Play rozpoczął automatyczne skanowanie aplikacji pod kątem zgodności z tymi zasadami za pomocą Play Integrity API.
Szczególną uwagę poświęca się aplikacjom dla dzieci: zgodnie z Google Play Families Policy, aplikacje skierowane do dzieci nie mogą używać GAID do personalizacji reklam w żadnych warunkach. Deweloperzy są zobowiązani do korzystania z sieci reklamowych certyfikowanych do pracy z dziecięcą publicznością.
Flaga isLimitAdTrackingEnabled sygnalizuje aplikacji wybór użytkownika. Jeśli flaga ma wartość true, aplikacja może używać GAID tylko do podstawowych operacji: atrybucja instalacji, analityka, antyfraud, ograniczanie częstotliwości. Personalizacja reklam, tworzenie profili użytkowników i retargeting na podstawie GAID są w tym przypadku zabronione.
Google zaleca nie próbować omijać flagi isLimitAdTrackingEnabled przez alternatywne identyfikatory (IMEI, MAC-address, Android ID). Używanie trwałych identyfikatorów sprzętowych jest kategorycznie zabronione polityką Google Play i prowadzi do natychmiastowego zablokowania aplikacji bez możliwości odwołania.
Uzyskanie GAID na Androidzie wymaga asynchronicznego wywołania AdvertisingIdClient z obsługą możliwych wyjątków. Poniżej znajduje się pełny przykład w Kotlin z użyciem korutyn.
Przykład demonstruje uzyskanie identyfikatora reklamowego i sprawdzenie flagi isLimitAdTrackingEnabled za pomocą korutyn i try-catch do obsługi błędów 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) {
// Google Play Services niedostępne — używamy alternatywnego ID
null
} catch (e: IOException) {
// Błąd sieciowy podczas połączenia z serwisem
null
}
}
}
// Użycie w Activity lub ViewModel
fun onGaidRequested() {
lifecycleScope.launch {
val info = getAdvertisingInfo(this@MainActivity)
setupAdNetwork(
gaid = info?.gaid,
limitTracking = info?.isLimitAdTrackingEnabled ?: true
)
}
}
Zrozumienie różnic między identyfikatorami reklamowymi na różnych platformach jest kluczowe dla deweloperów pracujących z atrybucją reklam na obu systemach. Poniżej znajduje się porównanie kluczowych aspektów GAID, AAID i IDFA.
Główna różnica między GAID a IDFA — mechanizm uzyskiwania. IDFA wymaga jawnej zgody przez ATT, bez którego zwracany jest zerowy identyfikator. GAID jest dostępny bez okna systemowego, ale od Androida 14+ wymaga deklaracji uprawnienia AD_ID w manifeście. GAID ma również bardziej elastyczny system flag: isLimitAdTrackingEnabled nie blokuje uzyskania identyfikatora, a jedynie sygnalizuje aplikacji konieczność ograniczenia użycia.
Według Adjust (2025), dostępność GAID na Androidzie wynosi 98% aktywnych urządzeń wobec 20–35% dostępności IDFA na iOS. To czyni Android bardziej przewidywalną platformą dla atrybucji reklam, ale zaostrzanie polityk Google stopniowo zmniejsza tę różnicę.
AAID, w przeciwieństwie do GAID, nie jest powiązany z Google Play Services i może być używany na urządzeniach Huawei (HMS), Amazon Fire OS i chińskich producentów. Na urządzeniach Huawei AAID jest realizowany przez Huawei Mobile Services (HMS) z klasą AdvertisingIdClient z pakietu com.huawei.hms.ads.identifier. Na rynku chińskim powszechnie stosowany jest również OAID (Open Anonymous ID) — standard opracowany przez sojusz chińskich producentów w celu zastąpienia GAID na urządzeniach bez usług Google. Wybór odpowiedniego API do uzyskania identyfikatora bezpośrednio wpływa na dostępność atrybucji reklam na różnych rynkach.
Często zadawane pytania
GAID (Google Advertising ID) — identyfikator reklamowy dla urządzeń z Google Play Services. AAID (Android Advertising ID) — ogólny termin dla identyfikatorów reklamowych Android, obejmujący urządzenia bez usług Google (Huawei, Amazon Fire). GAID jest uzyskiwany przez Google Play, AAID — przez SDK odpowiedniego sklepu aplikacji.
Tak, począwszy od Androida 14 (API 34) należy określić uprawnienie AD_ID w manifeście. Jeśli aplikacja ma targetSdkVersion 34+ i nie określa AD_ID, AdvertisingIdClient zwraca zerowy identyfikator. Uprawnienie określa się przez tag
Tak, użytkownik może zresetować GAID w dowolnym momencie przez Ustawienia — Google — Reklamy — Resetuj identyfikator reklamowy. Po zresetowaniu wszystkie aplikacje otrzymują nowy identyfikator, a powiązanie z historią interakcji reklamowych zostaje utracone.
OAID (Open Anonymous ID) — standard identyfikatora reklamowego opracowany przez sojusz chińskich producentów smartfonów (Xiaomi, OPPO, vivo, Huawei). Używany na urządzeniach bez Google Play Services na rynek chiński. W przeciwieństwie do GAID, OAID nie wymaga Google Play i działa przez SDK producenta urządzenia.
Jeśli isLimitAdTrackingEnabled ma wartość true, aplikacja nie może używać GAID do personalizacji reklam, tworzenia profili użytkowników i retargetingu. Jednak identyfikator może być używany do ograniczonych celów: atrybucja instalacji, analityka, walka z oszustwami i ograniczanie częstotliwości wyświetlania.
Podsumowanie
Opracujemy aplikację mobilną pod klucz
IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.
Przeczytaj również