GAID (Google Advertising ID) و AAID (Android Advertising ID) — شناسههای تبلیغاتی منحصربهفرد دستگاههای اندروید هستند که برای انتساب نصبها و شخصیسازی تبلیغات استفاده میشوند. GAID — نام رسمی برای دستگاههای دارای Google Play Services، AAID — اصطلاحی جهانی برای تمام دستگاههای اندروید از جمله بیلدهای بدون سرویسهای گوگل است. طبق Google Developer Documentation, 2025، دریافت GAID نیاز به اتصال سرویسهای Google Play دارد. AdvertisingIdClient — API اصلی برای دریافت شناسه تبلیغاتی در اندروید.
نکات اصلی
GAID (Google Advertising ID) — یک شناسه منحصربهفرد است که به هر دستگاه اندرویدی دارای Google Play Services اختصاص مییابد. این شناسه برای اهداف تبلیغاتی طراحی شده است: انتساب نصبها، اندازهگیری اثربخشی کمپینها و نمایش تبلیغات شخصیسازیشده. AAID (Android Advertising ID) — اصطلاحی گستردهتر است که شناسههای تبلیغاتی را در تمام دستگاههای اندروید از جمله دستگاههای Huawei با HMS، Amazon Fire و بیلدهای AOSP بدون سرویسهای گوگل پوشش میدهد.
تفاوت اصلی GAID با IDFA در iOS — GAID بدون درخواست صریح مجوز در دسترس است، اما از اندروید 14 برنامهها باید استفاده از شناسه تبلیغاتی را در مانیفست اعلام کرده و مطابق با سیاست محرمانگی Google Play رضایت کاربر را دریافت کنند. گوگل به دیالوگ سیستمی نیاز ندارد (مانند ATT در iOS)، اما توسعهدهنده باید قوانین رضایت کاربر را رعایت کند.
طبق Google Play Console Statistics (2025)، بیش از 95% دستگاههای فعال اندروید از GAID از طریق Google Play Services پشتیبانی میکنند. در دستگاههای بدون سرویسهای گوگل (بازار چین، Huawei AppGallery) از AAID فروشگاههای برنامه مربوطه یا شناسههای جایگزین مانند OAID (Open Anonymous ID) برای تولیدکنندگان چینی استفاده میشود.
مزیت کلیدی GAID نسبت به IDFA — امکان دریافت شناسه بدون دیالوگ سیستمی مسدودکننده. با این حال گوگل دائماً الزامات را سختگیرانهتر میکند: از اندروید 14، برنامههای targeting API 34 و بالاتر باید صریحاً مجوز AD_ID را در مانیفست مشخص کنند.
در اندروید دریافت شناسه تبلیغاتی از طریق 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 میشود.
از اندروید 14 (API 34)، گوگل محدودیتهای جدیدی برای دسترسی به شناسه تبلیغاتی اعمال کرده است. مجوز 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 در این حالت ممنوع است.
گوگل توصیه میکند سعی نکنید پرچم isLimitAdTrackingEnabled را از طریق شناسههای جایگزین (IMEI، آدرس MAC، Android ID) دور بزنید. استفاده از شناسههای سختافزاری دائمی به طور قطعی توسط سیاست Google Play ممنوع است و منجر به مسدود شدن فوری برنامه بدون امکان تجدیدنظر میشود.
دریافت GAID در اندروید نیاز به فراخوانی ناهمزمان 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 در دسترس نیستند — از 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 در اندروید 98% دستگاههای فعال است در مقابل 20-35% دسترسی IDFA در iOS. این امر اندروید را به پلتفرمی قابلپیشبینیتر برای انتساب تبلیغات تبدیل میکند، اما سختگیرانهتر شدن سیاستهای گوگل به تدریج این شکاف را کاهش میدهد.
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 در دستگاههای بدون سرویسهای گوگل توسعه یافته است. انتخاب API صحیح برای دریافت شناسه مستقیماً بر دسترسی انتساب تبلیغات در بازارهای مختلف تأثیر میگذارد.
سؤالات متداول
GAID (Google Advertising ID) — شناسه تبلیغاتی برای دستگاههای دارای Google Play Services. AAID (Android Advertising ID) — اصطلاحی کلی برای شناسههای تبلیغاتی اندروید، شامل دستگاههای بدون سرویسهای گوگل (Huawei, Amazon Fire). GAID از طریق Google Play دریافت میشود، AAID — از طریق SDK فروشگاه برنامه مربوطه.
بله، از اندروید 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 از سال 2017 برنامههای iOS و Android را برای استارتاپها و کسبوکارها ایجاد میکند. ما به شما مشاوره میدهیم و بهترین راهحل را پیشنهاد خواهیم کرد.
همچنین بخوانید