GAID (Google Advertising ID) ve AAID (Android Advertising ID), kurulum atıfı ve reklam kişiselleştirme için kullanılan benzersiz Android cihaz reklam tanımlayıcılarıdır. GAID, Google Play Services'e sahip cihazlar için resmi ad, AAID ise Google hizmetleri olmayan yapılar dahil tüm Android cihazlar için evrensel bir terimdir. Google Developer Documentation, 2025'e göre GAID almak Google Play Services gerektirir. AdvertisingIdClient, Android'de reklam tanımlayıcıyı almak için ana API'dir.
Önemli Noktalar
GAID (Google Advertising ID), Google Play Services yüklü her Android cihaza atanan benzersiz bir tanımlayıcıdır. Reklam amaçları için tasarlanmıştır: kurulum atıfı, kampanya ölçümü ve kişiselleştirilmiş reklam gösterme. AAID (Android Advertising ID), HMS'li Huawei cihazlar, Amazon Fire ve Google hizmetleri olmayan AOSP yapılar dahil tüm Android cihazlardaki reklam tanımlayıcılarını kapsayan daha geniş bir terimdir.
GAID ile iOS'daki IDFA arasındaki temel fark, GAID'nin açık bir izin talebi olmadan kullanılabilmesidir, ancak Android 14'ten itibaren uygulamalar bildirim dosyasında reklam tanımlayıcı kullanımını beyan etmeli ve Google Play Gizlilik Politikası'na uygun olarak kullanıcı onayı almalıdır. Google (iOS'taki ATT gibi) bir sistem diyaloğu gerektirmez, ancak geliştirici kullanıcı onay kurallarına uymalıdır.
Google Play Console Statistics (2025)'e göre aktif Android cihazların %95'inden fazlası Google Play Services aracılığıyla GAID'yi destekler. Google hizmetleri olmayan cihazlarda (Çin pazarı, Huawei AppGallery), ilgili uygulama mağazalarının AAID'si veya Çinli üreticiler için OAID (Open Anonymous ID) gibi alternatif tanımlayıcılar kullanılır.
GAID'nin IDFA'ya göre temel avantajı, tanımlayıcının engelleyici bir sistem diyaloğu olmadan alınabilmesidir. Ancak Google gereksinimleri sürekli sıkılaştırmaktadır: Android 14'ten itibaren API 34 ve üzerini hedefleyen uygulamalar bildirim dosyasında AD_ID iznini açıkça beyan etmelidir.
Android'de reklam tanımlayıcısı almak Google Play Services ve AdvertisingIdClient sınıfı aracılığıyla uygulanır. IDFA'nın açık bir ATT diyaloğu gerektirdiği iOS'un aksine, kullanıcı cihaz ayarlarında reklam kişiselleştirmeyi devre dışı bırakmadığı sürece GAID varsayılan olarak uygulama için kullanılabilir.
com.google.android.gms.ads.identifier paketindeki AdvertisingIdClient sınıfı iki ana yöntem sağlar: getAdvertisingIdInfo (bağlam) ve start (bağlam). Yöntem, tanımlayıcıyı (UUID dizesi) ve kullanıcının reklam kişiselleştirmeyi devre dışı bırakıp bırakmadığını gösteren isLimitAdTrackingEnabled bayrağını içeren bir AdvertisingIdInfo nesnesi döndürür.
AdvertisingIdClient çağrısı bir arka plan iş parçacığında yapılmalıdır, çünkü yöntem uzak Google Play hizmetine erişir. Tanımlayıcının asenkron olarak alınması için coroutine veya AsyncTask kullanılması önerilir. Cihazda Google Play Services mevcut değilse, yöntem GooglePlayServicesNotAvailableException istisnası fırlatır — bu durumda geliştirici alternatif bir tanımlama yöntemi kullanmalıdır.
Kullanıcı GAID'yi herhangi bir zamanda Ayarlar — Google — Reklamlar — Reklam tanımlayıcısını sıfırla yoluyla sıfırlayabilir. Sıfırlamadan sonra uygulamalar yeni bir tanımlayıcı alır ve önceki verilerle bağlantı kaybolur. Kullanıcı ayrıca «Reklam kişiselleştirmeyi devre dışı bırak» seçeneğini etkinleştirebilir, bu da isLimitAdTrackingEnabled bayrağını true olarak ayarlar.
Geliştirici isLimitAdTrackingEnabled bayrağına saygı göstermelidir: true ise, uygulama GAID'yi reklam kişiselleştirme için kullanmamalı, ancak dönüşüm ölçümü, dolandırıcılık önleme ve sıklık sınırlaması gibi sınırlı amaçlar için kullanabilir. Bu kuralın ihlali Google Play'de uygulamanın askıya alınmasına yol açar.
Android 14'ten (API 34) başlayarak Google, reklam tanımlayıcısına erişim konusunda yeni kısıtlamalar getirdi. GAID almak için AD_ID izni artık uygulama bildirim dosyasında açıkça beyan edilmelidir. Uygulama izni beyan etmez ve API 34+'yı hedeflerse, AdvertisingIdClient çağrısı boş bir tanımlayıcı döndürür.
Google Play Politikası, GAID kullanan uygulamaların birkaç kurala uymasını gerektirir: tanımlayıcı yalnızca reklam ve analiz amaçları için kullanılabilir; uygulama, açık kullanıcı onayı olmadan GAID'yi kişisel verilerle ilişkilendirmemelidir; GAID, gizlilik politikasında belirtilmeden üçüncü taraflarla paylaşılmamalıdır. 2025'ten itibaren Google Play, Play Integrity API'yi kullanarak uygulamaları bu kurallara uygunluk açısından otomatik olarak taramaya başlamıştır.
Çocuk uygulamalarına özel dikkat gösterilir: Google Play Families Policy'ye göre çocuklara yönelik uygulamalar hiçbir koşulda reklam kişiselleştirme için GAID kullanamaz. Geliştiriciler çocuk izleyiciler için sertifikalı reklam ağları kullanmalıdır.
isLimitAdTrackingEnabled bayrağı, kullanıcının seçimini uygulamaya bildirir. Bayrak true ise, uygulama GAID'yi yalnızca temel işlemler için kullanabilir: kurulum atıfı, analiz, dolandırıcılık önleme, sıklık sınırlaması. Bu durumda GAID'ye dayalı reklam kişiselleştirme, kullanıcı profili oluşturma ve yeniden hedefleme yasaktır.
Google, alternatif tanımlayıcılar (IMEI, MAC adresi, Android ID) aracılığıyla isLimitAdTrackingEnabled bayrağını atlatmaya çalışılmamasını önerir. Kalıcı donanım tanımlayıcılarının kullanımı Google Play politikası tarafından kesinlikle yasaktır ve itiraz imkanı olmaksızın uygulamanın derhal askıya alınmasına yol açar.
Android'de GAID almak, olası istisnaların yönetimiyle AdvertisingIdClient'a asenkron çağrı gerektirir. Aşağıda coroutine kullanan Kotlin'de tam bir örnek verilmiştir.
Örnek, Google Play Services hatalarını yönetmek için coroutine ve try-catch kullanarak reklam tanımlayıcısını almayı ve isLimitAdTrackingEnabled bayrağını kontrol etmeyi gösterir.
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 kullanılamıyor — alternatif ID kullan
null
} catch (e: IOException) {
// Hizmete erişirken ağ hatası
null
}
}
}
// Activity veya ViewModel'de kullanım
fun onGaidRequested() {
lifecycleScope.launch {
val info = getAdvertisingInfo(this@MainActivity)
setupAdNetwork(
gaid = info?.gaid,
limitTracking = info?.isLimitAdTrackingEnabled ?: true
)
}
}
Her iki işletim sisteminde reklam atıfı ile çalışan geliştiriciler için farklı platformlardaki reklam tanımlayıcıları arasındaki farkları anlamak kritik öneme sahiptir. Aşağıda GAID, AAID ve IDFA'nın temel yönlerinin bir karşılaştırması bulunmaktadır.
GAID ve IDFA arasındaki temel fark, alma mekanizmasıdır. IDFA, ATT aracılığıyla açık onay gerektirir, onay olmadan boş tanımlayıcı döndürülür. GAID sistem diyaloğu olmadan kullanılabilir, ancak Android 14+'tan itibaren bildirim dosyasında AD_ID izni beyanı gerektirir. GAID ayrıca daha esnek bir bayrak sistemine sahiptir: isLimitAdTrackingEnabled tanımlayıcı almayı engellemez, yalnızca uygulamaya kullanımı sınırlaması için sinyal verir.
Adjust (2025)'e göre Android'de GAID kullanılabilirliği aktif cihazların %98'i iken, iOS'ta IDFA kullanılabilirliği %20–35'tir. Bu, Android'i reklam atıfı için daha öngörülebilir bir platform yapar, ancak Google politikalarının sıkılaştırılması bu farkı giderek kapatmaktadır.
AAID, GAID'den farklı olarak Google Play Services'e bağlı değildir ve Huawei (HMS), Amazon Fire OS ve Çinli üretici cihazlarında kullanılabilir. Huawei cihazlarında AAID, com.huawei.hms.ads.identifier paketindeki AdvertisingIdClient sınıfı ile Huawei Mobile Services (HMS) aracılığıyla uygulanır. Çin pazarı için OAID (Open Anonymous ID) de yaygındır — Google hizmetleri olmayan cihazlarda GAID'nin yerini almak üzere Çinli üreticiler ittifakı tarafından geliştirilmiş bir standart. Tanımlayıcıyı almak için doğru API seçimi, farklı pazarlarda reklam atıfının kullanılabilirliğini doğrudan etkiler.
Sıkça Sorulan Sorular
GAID (Google Advertising ID), Google Play Services'e sahip cihazlar için reklam tanımlayıcısıdır. AAID (Android Advertising ID), Google hizmetleri olmayan cihazlar (Huawei, Amazon Fire) dahil Android reklam tanımlayıcıları için genel bir terimdir. GAID Google Play aracılığıyla, AAID ilgili uygulama mağazasının SDK'sı aracılığıyla alınır.
Evet, Android 14'ten (API 34) başlayarak bildirim dosyasında AD_ID izninin belirtilmesi gerekir. Uygulama targetSdkVersion 34+ ise ve AD_ID belirtmezse, AdvertisingIdClient boş tanımlayıcı döndürür. İzin
Evet, kullanıcı GAID'yi herhangi bir zamanda Ayarlar — Google — Reklamlar — Reklam tanımlayıcısını sıfırla yoluyla sıfırlayabilir. Sıfırlamadan sonra tüm uygulamalar yeni bir tanımlayıcı alır ve reklam etkileşim geçmişiyle bağlantı kaybolur.
OAID (Open Anonymous ID), Çinli akıllı telefon üreticileri ittifakı (Xiaomi, OPPO, vivo, Huawei) tarafından geliştirilmiş bir reklam tanımlayıcı standardıdır. Çin pazarı için Google Play Services olmayan cihazlarda kullanılır. GAID'den farklı olarak OAID, Google Play gerektirmez ve cihaz üreticisinin SDK'sı aracılığıyla çalışır.
isLimitAdTrackingEnabled true ise, uygulama GAID'yi reklam kişiselleştirme, kullanıcı profili oluşturma ve yeniden hedefleme için kullanamaz. Ancak tanımlayıcı sınırlı amaçlar için kullanılabilir: kurulum atıfı, analiz, dolandırıcılık önleme ve sıklık sınırlaması.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.
Ayrıca okuyun