GAID (Google Advertising ID) и AAID (Android Advertising ID) — уникални рекламни идентификатори на Android устройства, използвани за атрибуция на инсталации и персонализация на реклами. GAID е официалното наименование за устройства с Google Play Services, AAID е универсален термин за всички Android устройства, включително компилации без Google услуги. Според Google Developer Documentation, 2025, получаването на GAID изисква свързване на Google Play услуги. AdvertisingIdClient — основният API за получаване на рекламен идентификатор на Android.
Основни моменти
GAID (Google Advertising ID) — уникален идентификатор, присвояван на всяко Android устройство с инсталирани Google Play Services. Предназначен е за рекламни цели: атрибуция на инсталации, измерване на ефективността на кампании и показване на персонализирани реклами. AAID (Android Advertising ID) — по-широк термин, който обхваща рекламните идентификатори на всички Android устройства, включително устройства Huawei с HMS, Amazon Fire и компилации AOSP без Google услуги.
Основната разлика между GAID и IDFA на iOS — GAID е достъпен без изрично искане на разрешение, но от Android 14 приложенията трябва да декларират използването на рекламния идентификатор в манифеста и да получат съгласие на потребителя съгласно Политиката за поверителност на Google Play. Google не изисква системен диалог (като ATT на iOS), но разработчикът трябва да спазва правилата за съгласие на потребителя.
Според Google Play Console Statistics (2025), над 95% от активните Android устройства поддържат GAID чрез Google Play Services. На устройства без Google услуги (китайски пазар, Huawei AppGallery) се използва AAID от съответните магазини за приложения или алтернативни идентификатори като OAID (Open Anonymous ID) за китайски производители.
Ключово предимство на GAID пред IDFA — възможност за получаване на идентификатор без блокиращ системен диалог. Google обаче постоянно затяга изискванията: от Android 14 приложенията, насочени към API 34 и нагоре, трябва изрично да посочат разрешение AD_ID в манифеста.
На Android получаването на рекламен идентификатор се реализира чрез Google Play Services и класа AdvertisingIdClient. За разлика от iOS, където IDFA изисква изричен ATT диалог, GAID е достъпен за приложението по подразбиране, ако потребителят не е изключил персонализацията на реклами в настройките на устройството.
Класът AdvertisingIdClient от пакета com.google.android.gms.ads.identifier предоставя два основни метода: getAdvertisingIdInfo (контекст) и start (контекст). Методът връща обект AdvertisingIdInfo, съдържащ идентификатора (UUID низ) и флага isLimitAdTrackingEnabled, който показва дали потребителят е изключил персонализацията на реклами.
Извикването на AdvertisingIdClient трябва да се изпълнява в background нишка, тъй като методът има достъп до отдалечена услуга на Google Play. Препоръчва се използване на корутини или AsyncTask за асинхронно получаване на идентификатора. Ако Google Play Services не са налични на устройството, методът хвърля изключение GooglePlayServicesNotAvailableException — в този случай разработчикът трябва да използва алтернативен метод за идентификация.
Потребителят може да нулира GAID по всяко време чрез Настройки — Google — Реклами — Нулиране на рекламния идентификатор. След нулиране приложенията получават нов идентификатор и връзката с предишни данни се губи. Потребителят може също да активира опцията „Деактивиране на персонализацията на реклами", която променя флага isLimitAdTrackingEnabled на true.
Разработчикът е длъжен да уважава флага isLimitAdTrackingEnabled: ако е true, приложението не може да използва GAID за персонализация на реклами, но може да го използва за ограничени цели като измерване на конверсии, борба с измами и ограничаване на честотата на показване. Нарушаването на това правило води до блокиране на приложението в Google Play.
От Android 14 (API 34) Google въведе нови ограничения за достъп до рекламния идентификатор. Разрешение AD_ID вече трябва изрично да бъде посочено в манифеста на приложението за получаване на GAID. Ако приложението не посочи разрешението и е насочено към API 34+, извикването на AdvertisingIdClient връща нулев идентификатор.
Политиката на Google Play изисква приложенията, използващи GAID, да спазват няколко правила: идентификаторът може да се използва само за рекламни и аналитични цели; приложението не може да свързва GAID с лични данни без изрично съгласие на потребителя; GAID не трябва да се предава на трети страни без посочване в политиката за поверителност. От 2025 г. Google Play започна автоматично да сканира приложенията за съответствие с тези правила с помощта на Play Integrity API.
Особено внимание се отделя на приложенията за деца: според Google Play Families Policy, приложенията, насочени към деца, не могат да използват GAID за персонализация на реклами при никакви обстоятелства. Разработчиците са задължени да използват рекламни мрежи, сертифицирани за работа с детска аудитория.
Флагът isLimitAdTrackingEnabled сигнализира на приложението за избора на потребителя. Ако флагът е true, приложението може да използва GAID само за основни операции: атрибуция на инсталации, аналитика, анти-измама, ограничаване на честотата. Персонализация на реклами, създаване на потребителски профили и ретаргетинг на базата на GAID в този случай са забранени.
Google препоръчва да не се опитвате да заобиколите флага isLimitAdTrackingEnabled чрез алтернативни идентификатори (IMEI, MAC адрес, Android ID). Използването на постоянни хардуерни идентификатори е категорично забранено от политиката на Google Play и води до незабавно блокиране на приложението без възможност за обжалване.
Получаването на GAID на Android изисква асинхронно извикване на AdvertisingIdClient с обработка на възможни изключения. По-долу е даден пълен пример на Kotlin с използване на корутини.
Примерът демонстрира получаване на рекламния идентификатор и проверка на флага isLimitAdTrackingEnabled с помощта на корутини и try-catch за обработка на грешки на 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 не са налични — използваме алтернативен ID
null
} catch (e: IOException) {
// Мрежова грешка при обръщение към услугата
null
}
}
}
// Използване в Activity или ViewModel
fun onGaidRequested() {
lifecycleScope.launch {
val info = getAdvertisingInfo(this@MainActivity)
setupAdNetwork(
gaid = info?.gaid,
limitTracking = info?.isLimitAdTrackingEnabled ?: true
)
}
}
Разбирането на разликите между рекламните идентификатори на различни платформи е от решаващо значение за разработчиците, работещи с рекламна атрибуция и на двете операционни системи. По-долу е сравнение на ключовите аспекти на GAID, AAID и IDFA.
Основната разлика между GAID и IDFA — механизмът за получаване. IDFA изисква изрично съгласие чрез ATT, без което се връща нулев идентификатор. GAID е достъпен без системен диалог, но от Android 14+ изисква декларация на разрешение AD_ID в манифеста. GAID също има по-гъвкава система от флагове: isLimitAdTrackingEnabled не блокира получаването на идентификатора, а само сигнализира на приложението за необходимостта от ограничаване на употребата.
Според Adjust (2025), достъпността на GAID на Android е 98% от активните устройства срещу 20-35% достъпност на IDFA на iOS. Това прави Android по-предвидима платформа за рекламна атрибуция, но затягането на политиките на Google постепенно намалява тази разлика.
AAID, за разлика от GAID, не е обвързан с Google Play Services и може да се използва на устройства Huawei (HMS), Amazon Fire OS и китайски производители. На устройствата Huawei, AAID се реализира чрез Huawei Mobile Services (HMS) с клас AdvertisingIdClient от пакета com.huawei.hms.ads.identifier. За китайския пазар е разпространен също OAID (Open Anonymous ID) — стандарт, разработен от алианса на китайски производители за замяна на GAID на устройства без Google услуги. Правилният избор на API за получаване на идентификатора пряко влияе върху достъпността на рекламната атрибуция на различни пазари.
Често задавани въпроси
GAID (Google Advertising ID) — рекламен идентификатор за устройства с Google Play Services. AAID (Android Advertising ID) — общ термин за рекламните идентификатори на Android, включително устройства без Google услуги (Huawei, Amazon Fire). GAID се получава чрез Google Play, AAID — чрез SDK на съответния магазин за приложения.
Да, от Android 14 (API 34) е необходимо да посочите разрешение AD_ID в манифеста. Ако приложението има targetSdkVersion 34+ и не посочва AD_ID, AdvertisingIdClient връща нулев идентификатор. Разрешението се посочва чрез таг
Да, потребителят може да нулира GAID по всяко време чрез Настройки — Google — Реклами — Нулиране на рекламния идентификатор. След нулиране всички приложения получават нов идентификатор и връзката с историята на рекламните взаимодействия се губи.
OAID (Open Anonymous ID) — стандарт за рекламен идентификатор, разработен от алианса на китайски производители на смартфони (Xiaomi, OPPO, vivo, Huawei). Използва се на устройства без Google Play Services за китайския пазар. За разлика от GAID, OAID не изисква Google Play и работи чрез SDK на производителя на устройството.
Ако isLimitAdTrackingEnabled е true, приложението не може да използва GAID за персонализация на реклами, създаване на потребителски профили и ретаргетинг. Въпреки това идентификаторът може да се използва за ограничени цели: атрибуция на инсталации, аналитика, борба с измами и ограничаване на честотата на показване.
Обобщение
Ще разработим мобилно приложение под ключ
IT Sectr създава iOS и Android приложения за стартъпи и бизнеси от 2017 г. Ще ви консултираме и ще предложим най-доброто решение.
Прочетете също