App Tracking Transparency (ATT) — bu iOS mexanizmi bo'lib, ilovalar va veb-saytlarda kuzatishdan oldin reklama identifikatori IDFA ga kirish uchun foydalanuvchining aniq roziligini talab qiladi. iOS 14.5 da joriy qilingan ATT barcha dasturchilarni kuzatish ruxsati so'rovi bilan tizim dialogini ko'rsatishga majbur qildi. Apple Developer Documentation ma'lumotlariga ko'ra, maqsadli reklama yoki atributsiya uchun IDFA dan foydalanadigan har bir ilova ATT framework ini integratsiya qilishi va kirish ruxsatini olishi kerak.
Asosiy ma'lumotlar
App Tracking Transparency — bu Apple tomonidan iOS 14.5 da taqdim etilgan foydalanuvchi maxfiyligini himoya qilish frameworki. U ilovalardan kuzatish uchun foydalanishdan oldin qurilmaning reklama identifikatoriga (IDFA) kirish uchun aniq ruxsat olishni talab qiladi.
ATT paydo bo'lgunga qadar dasturchilar IDFA ni so'rovsiz o'qiy olishar edi, bu reklama tarmoqlariga foydalanuvchi profillarini yaratish va ularning faoliyatini ilovalar va saytlar o'rtasida kuzatish imkonini berardi. Apple bunday yondashuvni maxfiylik buzilishi deb atadi va majburiy rozilik dialogini joriy qildi.
Framework iOS 14.0 dan boshlab mavjud, ammo IDFA dan foydalanadigan barcha ilovalar uchun 2021 yil aprel oyida iOS 14.5 chiqishi bilan majburiy bo'ldi. Flurry Analytics ma'lumotlariga ko'ra, ATT joriy qilingandan so'ng, AQSh foydalanuvchilarining 25% dan kami kuzatishga rozilik berdi, bu mobil reklama bozorini tubdan o'zgartirdi.
ATT ruxsat mavjudligini ilova o'zgartira olmaydigan yoki chetlab o'ta olmaydigan maxsus tizim dialogi orqali tekshiradi. Foydalanuvchi dasturchi tomonidan taqdim etilgan matn bilan standart pop-upni ko'radi va “Ruxsat berish” yoki “Ilovadan kuzatmaslikni so'rash” ni tanlaydi.
Apple ATT ni App Store dagi Privacy Nutrition Label va Privacy Manifestni ham o'z ichiga olgan umumiy maxfiylik strategiyasining bir qismi sifatida joylashtiradi. Uchala mexanizm birgalikda ishlaydi: yorliqlar ilova qanday ma'lumotlarni to'planishini ko'rsatadi, Manifest API dan foydalanish sabablarini e'lon qiladi, ATT esa foydalanuvchiga kuzatish ustidan nazorat beradi.
Kuzatishni rad etish ilovaning ishlashini bloklamaydi — foydalanuvchi barcha funksiyalardan foydalanishda davom etishi mumkin, ammo reklama tarmoqlari shaxsiylashtirish va atributsiya uchun IDFA ni olmaydi. IDFA ga alternativa sifatida Apple ning SKAdNetwork va Probabilistic Attribution chiqdi.
Branch Metrics ma'lumotlariga ko'ra, ATT joriy qilingandan so'ng, global miqyosda IDFA oladigan ilovalar ulushi 70% dan 20% gacha kamaydi. Bu o'rnatishlarni atributsiya qilish va reklama orqali monetizatsiya yondashuvlarini qayta ko'rib chiqishga olib keldi.
iOS 15 da Apple ATT talablarini kuchaytirmadi, lekin App Privacy Report — ilovalar sensorlar va ma'lumotlarga qanchalik tez-tez murojaat qilishini ko'rsatadigan hisobotni qo'shdi. iOS 16 nazoratni kengaytirdi: foydalanuvchi istalgan vaqtda Sozlamalar → Maxfiylik → Kuzatish orqali kuzatish sozlamalarini o'zgartirishi mumkin.
Muhim: agar foydalanuvchi ATT dialogida “Ilovadan kuzatmaslikni so'rash” ni tanlasa, ilova IDFA qiymatini olmaydi, uning o'rniga nollar qatori — 00000000-0000-0000-0000-000000000000 qaytariladi. IDFA ni boshqa usulda yoki aylanma yo'llar bilan o'qishga urinish App Store da ilovani rad etilishiga olib keladi.
iOS 17 dan boshlab, Apple tekshiruvlarni kuchaytirdi: agar ilova ATT tizim dialogini ko'rsatmasdan IDFA so'rasa, u bo'sh identifikator emas, balki OT darajasida rad javobini oladi. Bu foydalanuvchining xabarisiz IDFA ni fon to'plash imkoniyatini istisno qiladi.
ATT so'rovi jarayoni uch bosqichdan iborat: statusni tekshirish, tizim dialogini ko'rsatish va javobni qayta ishlash. Dasturchi hech qanday bosqichni o'tkazib yubora olmaydi — OT har bir bosqichni nazorat qiladi.
Dialogni chaqirishdan oldin ilova ATTrackingManager orqali joriy statusni tekshirishi kerak. Mumkin bo'lgan statuslar: notDetermined (hali so'ralmagan), restricted (qurilma siyosatlari bilan taqiqlangan), denied (foydalanuvchi rad etgan), authorized (ruxsat berilgan).
Agar status allaqachon aniqlangan bo'lsa (authorized yoki denied), dialogni qayta chaqirish mumkin emas — foydalanuvchi yakuniy qaror qilgan. Qarorni o'zgartirishning yagona yo'li — iOS tizim sozlamalari orqali.
Statusni tekshirish uchun ATTrackingManager.trackingAuthorizationStatus xususiyati ishlatiladi. Chaqiruv asosiy oqimda amalga oshirilishi kerak, chunki tizim dialogi UI komponentidir.
import AppTrackingTransparency
import AdSupport
func checkTrackingStatus() {
let status = ATTrackingManager.trackingAuthorizationStatus
switch status {
case .notDetermined:
requestTrackingPermission()
case .authorized:
readIDFA()
case .denied, .restricted:
useAlternativeTracking()
@unknown default:
break
}
}
Dialog ko'rsatish uchun requestTrackingAuthorization metodi foydalanuvchi tanlovi natijasini oladigan yopilish bilan chaqiriladi. Muhim: dialog faqat bir marta ko'rsatiladi. Agar dasturchi uni qayta chaqirishga urinsa, tizim so'rovni e'tiborsiz qoldiradi.
Dialogdagi matn ikki qismdan iborat: tizim sarlavhasi (uni o'zgartirib bo'lmaydi) va dasturchi Info.plist da NSUserTrackingUsageDescription kaliti orqali ko'rsatadigan maxsus xabar.
Dialog tabiiy kontekstda paydo bo'lishi kerak — ilova ishga tushganda darhol emas, balki kuzatish bilan bog'liq funksiyadan birinchi foydalanishga urinishda. Apple dialog foydalanuvchi funksiyaning qiymatini tushunganidan keyin ko'rsatishni tavsiya qiladi.
func requestTrackingPermission() {
ATTrackingManager.requestTrackingAuthorization { status in
DispatchQueue.main.async {
switch status {
case .authorized:
let idfa = ASIdentifierManager.shared().advertisingIdentifier
print("IDFA: \(idfa)")
case .denied:
print("Foydalanuvchi kuzatishni rad etdi")
default:
break
}
}
}
}
IDFA (Identifier for Advertisers) — bu iOS qurilmasining noyob reklama identifikatori bo'lib, maqsadli reklama va o'rnatishlarni atributsiya qilish uchun ishlatiladi. ATT dan oldin dasturchilar uni ASIdentifierManager orqali hech qanday cheklovlarsiz olishardi. ATT joriy qilingandan so'ng, foydalanuvchi aniq rozilik bermaguncha IDFA ga kirish bloklanadi.
IDFA — bu har bir iOS qurilmasi uchun noyob UUID qator. Reklama tarmoqlari IDFA dan quyidagilar uchun foydalanadi: ilovalarni o'rnatishlarni kuzatish (atributsiya), foydalanuvchi qiziqishlariga asoslangan tegishli reklamalarni ko'rsatish, reklama kampaniyalari samaradorligini o'lchash va retargeting — maqsadli harakatni tugatmagan foydalanuvchilarni qaytarish.
Foydalanuvchi kuzatishni rad etganidan so'ng, ASIdentifierManager 00000000-0000-0000-0000-000000000000 qiymatini qaytaradi. Shu bilan birga, ilova texnik maqsadlarda (masalan, firibgarlikka qarshi) IDFA ni o'qishi mumkin, ammo uni reklama tarmoqlariga uzata olmaydi.
Singular (2024) ma'lumotlariga ko'ra, global ATT rozilik darajasi 25-35% ni tashkil qiladi, Yevropada (GDPR) ko'rsatkich AQShga (15-25%) nisbatan yuqoriroq (40-50%). Bu reklama platformalarini muqobil atributsiya usullarini ishlab chiqishga majbur qildi.
SKAdNetwork — IDFA ni oshkor qilmasdan o'rnatishlarni atributsiya qilish uchun Apple frameworki. U OT darajasida ishlaydi: reklama tarmog'i imzolangan postbekni yuboradi, Apple uni tekshiradi va dasturchiga uzatadi. Atributsiya aniq foydalanuvchini identifikatsiya qilmasdan, faqat kampaniya darajasida amalga oshiriladi.
Probabilistic Attribution o'rnatishlarni reklama ko'rinishlari bilan ehtimollik asosida moslashtirish uchun qurilmaning ko'plab signallaridan — model, iOS versiyasi, vaqt mintaqasi, ekran yorqinligi — foydalanadi. Biroq, Apple bu usulni o'z qoidalarida taqiqlaydi va undan foydalanish ilovani rad etilishiga olib kelishi mumkin.
Google, Adjust va AppsFlyer o'zlarining gibrid yechimlarini ishlab chiqdilar, ular SKAdNetwork ni o'zlarining agregatlangan ma'lumotlari bilan birlashtiradi. Masalan, Google Ads Conversion Tracking IDFA siz atributsiya uchun SKAdNetwork postbeklari va o'zining mashina o'rganish modellaridan foydalanadi.
ATT ni integratsiya qilish uchun Info.plist ga NSUserTrackingUsageDescription kalitini qo'shish va AppTrackingTransparency frameworkini import qilish kerak. Quyida Swift va Objective-C uchun qadamlar keltirilgan.
Birinchi qadam — Info.plist ga NSUserTrackingUsageDescription kalitini ilovaga nima uchun kuzatish kerakligini tushuntiruvchi matn bilan qo'shish. Bu matn tizim dialogida ko'rsatiladi. Misol: “Sizning IDFA shaxsiylashtirilgan reklamalarni ko'rsatish va kampaniyalar samaradorligini kuzatish uchun ishlatiladi”.
Ushbu kalitsiz, requestTrackingAuthorization chaqiruvi ilovaning qulashiga olib keladi — Apple dialog ko'rsatishdan oldin NSUserTrackingUsageDescription mavjudligini aniq tekshiradi. Matn qisqa, aniq va ma'lumotlardan haqiqiy foydalanishga mos kelishi kerak.
Muhim: kalit Xcode Info tab orqali yoki Info.plist XML manbasini tahrirlash orqali qo'lda qo'shiladi. Qo'shgandan so'ng, loyihani qayta yig'ing va kalit yakuniy binarda ko'rinishini tekshiring.
<!-- Info.plist -->
<key>NSUserTrackingUsageDescription</key>
<string>This identifier is used to deliver
personalized ads and measure campaign performance.</string>
Haqiqiy loyihada ATT so'rovini reklama moduli yoki treker birinchi ishga tushirilishidan oldin chaqirish yaxshiroqdir. Ruxsatdan oldin foydalanuvchiga alohida ekranda (pre-permission prompt) rozilikning qiymatini tushuntirish tavsiya etiladi — bu rozilik foizini 20-30% ga oshiradi.
Pre-permission prompt — bu kuzatishni yoqishning foydasini ko'rsatadigan o'z UI (“Tegishli reklamalarni ko'rsatishimizga yordam bering”). Faqat “Davom etish” tugmasi bosilgandan so'ng ATT tizim dialogi chaqiriladi. Adjust (2024) pre-permission ekranidan foydalanganda rozilik 40% ga oshganini qayd etdi.
final class TrackingManager {
static let shared = TrackingManager()
func requestTrackingIfNeeded() {
guard ATTrackingManager.trackingAuthorizationStatus
== .notDetermined
else { return }
ATTrackingManager.requestTrackingAuthorization { _ in
NotificationCenter.default.post(
Notification(Name("trackingStatusChanged"))
)
}
}
}
Dasturchilar ATT ni integratsiya qilishda ko'pincha rozilik konversiyasining pasayishiga yoki App Store moderatorlari tomonidan ilovani rad etilishiga olib keladigan tipik xatolarga yo'l qo'yadilar. Beshta eng keng tarqalgan muammolarni ko'rib chiqamiz.
Eng keng tarqalgan xato — ATT tizim dialogini ilova yuklangandan so'ng birinchi ekranda ko'rsatish. Foydalanuvchi hali ilovaning qiymatini tushunmaydi va yuqori ehtimollik bilan “Rad etish” tugmasini bosadi. IronSource (2023) birinchi ekranda so'rovda uchinchi seansdan keyingi so'rovga nisbatan rozilik 32% ga kamayganini ko'rsatdi.
Tavsiya: foydalanuvchi maqsadli harakatni amalga oshirganidan (kontentni ko'rgan, onbordingni boshlagan) yoki ilovadan 3-5 seans foydalanganidan so'ng kuzatishni so'rang. Bu ishonchni va qiymatni anglashni oshiradi.
Oldindan tushuntirishsiz ATT tizim dialogini ko'rsatish — konversiyani 15-20% gacha kamaytiradigan xato. Foydalanuvchi kutilmagan so'rovni ko'radi va instinktiv ravishda rad etadi. Foydani tushuntiruvchi pre-permission ekrani rozilikni 35-45% gacha oshiradi.
Pre-permission matni aniq bo'lishi kerak: “Tegishli reklamalarni ko'rsatishga ruxsat bering — bu bizga bepul qolishimizga yordam beradi”. Umumiy iboralardan saqlaning — ular ishonchni kamaytiradi. GameAnalytics 2023 yilda foydani tushuntiruvchi pre-permission bo'sh ekranga nisbatan 28% ko'proq rozilik berishini ko'rsatdi.
Agar foydalanuvchi allaqachon kuzatishni rad etgan bo'lsa yoki status restricted (ota-ona nazorati, korporativ siyosatlar) bo'lsa, ilova ATT dialogini qayta chaqirmasligi kerak. Qayta chaqiruv ishlamaydi va maxfiylik buzilishi sifatida qabul qilinadi. Buning o'rniga SKAdNetwork va kontekstli reklamaga o'ting.
Restricted statusida ilova sozlamalarda “Kuzatish so'rovlariga ruxsat berish” opsiyasi yoqilganligini aniqlay olmaydi. Bu holda har doim SKAdNetwork orqali muqobilsiz atributsiyadan foydalaning va pre-permission ekranini ko'rsatmang.
ASIdentifierManager.shared().advertisingIdentifier orqali oldindan ATT ruxsatisiz IDFA ni o'qish nollar qatorini qaytaradi. Ba'zi dasturchilar shaxsiy API lar orqali IDFA ga kirishning eski usullaridan foydalanishga harakat qiladilar — bu ko'rib chiqishda ilovaning rad etilishiga kafolatlanadi.
Apple aylanma yo'llarni topish uchun statik kod analizatori va mashina o'rganishdan foydalanadi. Ilova ko'rib chiqishdan o'tgan taqdirda ham, keyingi yangilanishlar yoki avtomatik tekshiruvlar buzilishni aniqlashi va dasturchi hisobining bloklanishiga olib kelishi mumkin.
NSUserTrackingUsageDescription kalitida juda uzun, noaniq yoki chalg'ituvchi matn — moderatorlar tomonidan ilovani rad etish sababi. Apple tavsifning ma'lumotlardan haqiqiy foydalanishga mos kelishini tekshiradi. Agar ilovada reklama bo'lmasa, lekin “reklama maqsadlarida” deb ko'rsatilgan bo'lsa, moderator yig'ilmani rad etadi.
Tavsiya etilgan format: IDFA dan foydalanish maqsadining 2-3 jumlalik aniq tavsifi. Reklamasiz ilova uchun misol: “Identifikator analitika va firibgarlikning oldini olish uchun ishlatiladi. Ma'lumotlar uchinchi shaxslarga uzatilmaydi va profillash uchun ishlatilmaydi”.
Ko'p beriladigan savollar
Agar ilova ATT siz IDFA yoki kuzatishdan foydalansa, Apple uni ko'rib chiqish jarayonida rad etadi. Hatto kuzatish bo'lmasa ham, shaffoflik uchun ATT qo'shish tavsiya etiladi, aks holda keyingi yangilanishda rad etilish xavfi ortadi.
Ha, ilova to'liq ishlaydi, ammo reklama tarmoqlari shaxsiylashtirish va atributsiya uchun IDFA ni olmaydi. Ilovaning barcha funksiyalari, shaxsiylashtirilgan reklamadan tashqari, mavjud bo'lib qoladi.
Ha, foydalanuvchi istalgan vaqtda Sozlamalar → Maxfiylik → Kuzatish orqali qarorini o'zgartirishi mumkin. Ilova dasturiy ravishda statusni qayta tiklay olmaydi — faqat tizim sozlamalari orqali.
Foydani tushuntiruvchi pre-permission ekranidan foydalaning, kuzatishni birinchi ishga tushirishda emas, balki maqsadli harakatdan so'ng so'rang. Meta (2024) kechiktirilgan so'rovda rozilik 35% ga oshganini ko'rsatdi.
“Bolalar uchun” toifasidagi ilovalar Apple qoidalariga ko'ra kuzatish uchun IDFA va ATT dan foydalana olmaydi. Shuningdek, ularga analitika yoki reklama uchun ma'lumotlarni uchinchi shaxslarga uzatish taqiqlangan.
Xulosa
Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz
IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.