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 приложения, targeting 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. Если приложение не указывает разрешение и target 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 года. Мы проконсультируем вас и предложим наилучшее решение.
Читайте также