IDFA (Identifier for Advertisers) — یک شناسه منحصر به فرد دستگاه در iOS است که برای اهداف تبلیغاتی و انتساب نصبها طراحی شده است. با ظهور App Tracking Transparency (ATT) در iOS 14.5، دریافت IDFA نیاز به رضایت صریح کاربر از طریق دیالوگ سیستمی دارد. به گفته Apple App Tracking Transparency Documentation, 2025، بدون مجوز ATT برنامه یک شناسه صفر دریافت میکند. App Tracking Transparency اکوسیستم تبلیغات موبایل را به طور اساسی تغییر داد و در دسترس بودن IDFA را پس از پیادهسازی 80% کاهش داد.
نکات اصلی
IDFA (Identifier for Advertisers) — یک شناسه الفبایی-عددی منحصر به فرد است که به هر دستگاه Apple برای اهداف تبلیغاتی اختصاص مییابد. برخلاف IDFV (Identifier for Vendor)، IDFA برای همه برنامههای روی دستگاه یکسان است و کاربر میتواند در هر زمان از طریق تنظیمات — حریم خصوصی — تبلیغات — بازنشانی شناسه، آن را بازنشانی کند.
هدف اصلی IDFA انتساب نصب و ردیابی اثربخشی کمپینهای تبلیغاتی در دستگاههای Apple است. شبکههای تبلیغاتی از IDFA برای ارتباط کلیک روی آگهی با نصب برنامه، ساخت پروفایل کاربران و نمایش تبلیغات شخصیسازی شده استفاده میکنند. از زمان پیادهسازی ATT، درصد کاربرانی که IDFA را ارائه میدهند، بر اساس برآوردهای مختلف پلتفرمهای تحلیلی، به طور متوسط 20–35% است.
به گفته Flurry Analytics (2025)، پس از iOS 18 نرخ پذیرش ATT به 92% دستگاههای فعال افزایش یافت، اما سهم کاربرانی که با ردیابی موافقت میکنند به 22% کاهش یافت. این امر منجر به تغییر اساسی در صنعت تبلیغات موبایل شد و شبکههای تبلیغاتی را مجبور به جستجوی روشهای جایگزین انتساب کرد.
ویژگی کلیدی IDFA — این شناسه حاوی دادههای شخصی کاربر نیست و به Apple ID مرتبط نمیشود. با این حال، Apple آن را به عنوان شناسهای طبقهبندی میکند که مشمول مقررات App Tracking Transparency است.
App Tracking Transparency (ATT) — فریمورک Apple است که در iOS 14.5 معرفی شد و قبل از خواندن IDFA نیاز به رضایت صریح کاربر دارد. بدون رضایت، متد asIdentifierManager یک شناسه صفر (00000000-0000-0000-0000-000000000000) برمیگرداند و برنامه نمیتواند کاربر را ردیابی کند.
ATT از طریق کلاس ATTrackingManager با تنها متد عمومی requestTrackingAuthorization(completionHandler:) پیادهسازی میشود. هنگام فراخوانی این متد، سیستم یک دیالوگ بومی با متنی که توسعهدهنده از طریق کلید NSUserTrackingUsageDescription در Info.plist تعیین میکند، نمایش میدهد. کاربر میتواند یکی از سه گزینه را انتخاب کند: «اجازه ردیابی»، «درخواست از برنامه برای عدم ردیابی» یا «رد کردن».
وضعیت مجوز از طریق ATTrackingManager.trackingAuthorizationStatus ردیابی میشود که میتواند چهار مقدار داشته باشد: notDetermined، restricted، denied یا authorized. قبل از درخواست ATT توصیه میشود وضعیت فعلی را بررسی کنید و اگر وضعیت قبلاً تعیین شده است، دیالوگ را فراخوانی نکنید — از iOS 17 به بعد، فراخوانی مجدد requestTrackingAuthorization در وضعیت denied دیالوگ را نشان نمیدهد و خطا برمیگرداند.
زمان درخواست ATT به طور بحرانی بر درصد موافقت تأثیر میگذارد. تحقیقات Singular (2025) نشان میدهد که درخواست ATT در صفحه خوشآمدگویی (در اولین راهاندازی) 35–45% تبدیل دارد، در حالی که درخواست پس از انجام یک عمل (مثلاً پس از ثبتنام) تبدیل را به 55–65% افزایش میدهد. توصیه میشود قبل از دیالوگ سیستمی ATT، یک صفحه پیشمجوز با طراحی خاص و توضیح ارزش ردیابی برای کاربر نمایش داده شود.
مهم: برنامه میتواند requestTrackingAuthorization را تنها یک بار قبل از دریافت پاسخ فراخوانی کند. پس از اینکه کاربر «رد کردن» یا «درخواست عدم ردیابی» را انتخاب کرد، دیالوگ دیگر روی دستگاه نمایش داده نمیشود. توسعهدهنده باید مکانیسمهای جایگزین برای کار بدون IDFA پیشبینی کند تا برنامه در شرایط ردیابی محدود به درستی عمل کند.
با عرضه iOS 18، Apple الزامات برنامههایی را که از شناسه تبلیغاتی استفاده میکنند، سختگیرانهتر کرد. همه برنامههایی که IDFA درخواست میکنند یا دادههای دستگاه را برای اهداف تبلیغاتی ارسال میکنند، باید با قوانین جدید App Store مطابقت داشته باشند. عدم رعایت الزامات منجر به رد بیلد در مرحله تأیید App Store Connect میشود.
از iOS 18 به بعد، هر برنامه باید Privacy Manifest (فایل privacy.xcprivacy) با اعلام تمام APIهای استفاده شده برای ردیابی شامل کند. برای IDFA از کلیدهای NSPrivacyTracking و NSPrivacyTrackingDomains استفاده میشود که دامنههای شبکههای تبلیغاتی که شناسه به آنها ارسال میشود را مشخص میکند. بدون مانیفست صحیح، برنامه در تأیید App Store Connect رد میشود.
Apple همچنین الزام ذکر اجباری دلیل استفاده از شناسه تبلیغاتی در توضیحات برنامه را معرفی کرد. اگر برنامه از IDFA برای انتساب نصب استفاده میکند، باید از SKAdNetwork به عنوان روش اصلی و IDFA تنها به عنوان سیگنال اضافی برای افزایش دقت انتساب استفاده کند.
با افزایش محدودیتهای IDFA، صنعت چندین رویکرد جایگزین توسعه داده است. SKAdNetwork (StoreKit Ad Network) — مکانیزم رسمی انتساب از Apple که بدون IDFA کار میکند و نیازی به رضایت کاربر ندارد. SKAdNetwork از درخواستهای postback امضا شده بین شبکه تبلیغاتی و App Store استفاده میکند و حریم خصوصی کاربر را تضمین میکند.
سایر جایگزینها شامل: انتساب احتمالی مبتنی بر آدرس IP، نسخه OS و سایر سیگنالهای دستگاه؛ APIهای خصوصی تجمیع شده مانند Private Click Measurement (PCM) از WebKit؛ و راهحلهای اختصاصی پلتفرمهای تبلیغاتی با استفاده از یادگیری ماشین برای پیشبینی تبدیلها. برای بازار چین همچنین از CAID (Cellular Advertising ID) مبتنی بر دادههای شبکه موبایل اپراتور استفاده میشود.
پیادهسازی درخواست IDFA نیاز به یکپارچهسازی App Tracking Transparency و مدیریت صحیح تمام وضعیتهای ممکن مجوز دارد. در زیر یک نمونه کامل برای Swift با صفحه پیشمجوز آورده شده است.
نمونه چرخه کامل کار با IDFA را نشان میدهد: بررسی وضعیت، نمایش صفحه پیشمجوز، فراخوانی دیالوگ سیستمی ATT و دریافت شناسه پس از مجوز.
import AppTrackingTransparency
import AdSupport
func requestIDFAAccess() {
let status = ATTrackingManager.trackingAuthorizationStatus
switch status {
case .notDetermined:
// نمایش صفحه پیشمجوز با توضیح
showPrePermissionScreen { accepted in
guard accepted else { return }
ATTrackingManager.requestTrackingAuthorization { newStatus in
handleATTStatus(newStatus)
}
}
case .authorized:
// کاربر قبلاً رضایت داده است — IDFA را دریافت میکنیم
let idfa = ASIdentifierManager.shared().advertisingIdentifier
print("IDFA: \(idfa.uuidString)")
case .denied, .restricted:
// کاربر را به تنظیمات هدایت میکنیم
redirectToSettings()
@unknown default:
break
}
}
private func handleATTStatus(status: ATTrackingManager.AuthorizationStatus) {
if status == .authorized {
let idfa = ASIdentifierManager.shared().advertisingIdentifier
// IDFA را به شبکه تبلیغاتی ارسال میکنیم
sendIDFAToAdNetwork(idfa.uuidString)
}
}
از آنجا که اکثر کاربران درخواست ATT را رد میکنند، توسعهدهندگان به مجموعهای از استراتژیها برای کار مؤثر بدون شناسه نیاز دارند. رویکرد اصلی ترکیبی از SKAdNetwork و روشهای احتمالی انتساب است.
SKAdNetwork (SKAN) — فریمورک Apple برای انتساب نصب است که نیازی به IDFA ندارد و دیالوگ رضایت نشان نمیدهد. شبکه تبلیغاتی SKAdNetwork ID خود را در Info.plist برنامه ثبت میکند و پس از نصب، App Store یک postback امضا شده با اطلاعات کمپین ارسال میکند. SKAN 4.0 که در iOS 17 معرفی شد، از multiple conversions، source identifiers و coarse-grained conversion values پشتیبانی میکند.
محدودیتهای SKAN: تأخیر postback از 24 تا 48 ساعت، عدم وجود شناسه کاربر، تعداد محدود conversion values (تا 64). با وجود این، SKAN پس از پیادهسازی ATT به استاندارد دوفاکتو برای انتساب iOS تبدیل شده است و همه شبکههای تبلیغاتی بزرگ باید برای کار روی دستگاههای Apple از آن پشتیبانی کنند.
شبکههای تبلیغاتی مانند Meta و Google راهحلهای اختصاصی خود را بر اساس یادگیری ماشین توسعه دادهاند که تبدیلها را بدون شناسه کاربر پیشبینی میکنند. Meta Aggregated Events Measurement (AEM) از دادههای تجمیع شده برای انتساب استفاده میکند و Google Attribution تبدیلها را بر اساس دادههای تاریخی مدلسازی میکند.
برای توسعهدهنده مهم است که چندین روش انتساب را همزمان پیادهسازی کند: SKAdNetwork به عنوان اصلی، انتساب سروری از طریق شبکههای تبلیغاتی و ابزارهای تحلیلی خود با مدلسازی تبدیل. ترکیب روشها امکان بازیابی 70–80% دقت انتساب را در مقایسه با دوران IDFA فراهم میکند. توصیه میشود ترکیبهای مختلف روشها را در مرحله بتا آزمایش کنید تا مجموعه بهینه برای برنامه خاص و مخاطب هدف انتخاب شود.
سوالات متداول
IDFA — یک کد منحصر به فرد دستگاه iPhone یا iPad است که شبکههای تبلیغاتی برای نمایش تبلیغات شخصیسازی شده و اندازهگیری اثربخشی کمپینها استفاده میکنند. از iOS 14.5، برنامه قبل از دریافت IDFA باید از طریق دیالوگ سیستمی App Tracking Transparency مجوز درخواست کند.
IDFV (Identifier for Vendor) — شناسهای است که برای همه برنامههای یک توسعهدهنده روی دستگاه یکتا است. برخلاف IDFA، IDFV نیاز به رضایت ATT ندارد و همیشه در دسترس است. IDFA برای همه برنامهها یکسان است، IDFV فقط برای برنامههای یک فروشنده (بر اساس bundle ID).
دریافت IDFA بدون رضایت کاربر غیرممکن است. از iOS 14.5، ASIdentifierManager.advertisingIdentifier یک شناسه صفر (00000000-0000-0000-0000-000000000000) برمیگرداند اگر کاربر از طریق ATT رضایت نداده باشد. تنها راه قانونی فراخوانی ATTrackingManager.requestTrackingAuthorization و دریافت وضعیت authorized است.
NSUserTrackingUsageDescription — کلیدی در Info.plist برنامه است که متن نمایش داده شده در دیالوگ سیستمی ATT را شامل میشود. متن باید توضیح دهد که چرا برنامه به ردیابی نیاز دارد. مثال: «IDFA شما برای نمایش تبلیغات شخصیسازی شده و اندازهگیری اثربخشی کمپینها استفاده میشود».
خیر، IDFA یک شناسه اختصاصی اکوسیستم Apple است. در Android از GAID (Google Advertising ID) یا AAID (Android Advertising ID) استفاده میشود. هر دو عملکرد مشابهی دارند اما با قوانین متفاوتی تنظیم میشوند — در Android کاربر میتواند شناسه را بازنشانی کند یا شخصیسازی تبلیغات را در تنظیمات Google غیرفعال کند.
خلاصه
ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد
IT Sectr از سال 2017 برنامههای iOS و Android را برای استارتاپها و کسبوکارها ایجاد میکند. ما به شما مشاوره میدهیم و بهترین راهحل را پیشنهاد خواهیم کرد.
همچنین بخوانید