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 мора да се изврши у позадинској нити, јер метода приступа удаљеном 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. године. Саветоваћемо вас и предложити најбоље решење.
Прочитајте такође