ATT iOS: bu nədir, izləmə sorğusu mexanizmi və IDFA

Müəllif: IT Sectr Dərc olunub: 2026-05-20 Oxuma vaxtı: 10 dəq

App Tracking Transparency (ATT) — tətbiqlərdə və veb-saytlarda izləmədən əvvəl istifadəçinin reklam identifikatoru IDFA-ya giriş üçün açıq razılığını tələb edən iOS mexanizmidir. iOS 14.5-də tətbiq edilən ATT, bütün tərtibatçıları izləmə icazəsi üçün sistem dialoqu göstərməyə məcbur etdi. Apple Developer Documentation-ya görə, hədəfli reklam və ya atribusiya üçün IDFA istifadə edən hər bir tətbiq ATT frameworkunu inteqrasiya etməli və giriş icazəsi almalıdır.

Əsas məqamlar

  • ATT — App Tracking Transparency, iOS 14.5+-də izləmə sorğusu frameworku
  • IDFA — razılıq olmadan girişi məhdudlaşdırılan cihazın reklam identifikatoru
  • Sistem dialoqu — tətbiq mətni olan standart popup, dəyişdirilə bilməz
  • İzləmə icazəsi — reklam göstərmək və quraşdırma atribusiyası üçün məcburi sorğu
  • İmtina — istifadəçi istənilən vaxt Parametrlərdə icazəni geri götürə bilər

ATT (App Tracking Transparency) nədir?

App Tracking Transparency, iOS 14.5-də təqdim edilən Apple-ın istifadəçi məxfiliyini qorumaq üçün frameworkudur. O, tətbiqlərin izləmə üçün istifadə etməzdən əvvəl cihazın reklam identifikatoruna (IDFA) açıq icazə almasını tələb edir.

ATT-dan əvvəl tərtibatçılar sorğusuz IDFA-nı oxuya bilirdilər ki, bu da reklam şəbəkələrinə istifadəçi profilləri qurmağa və onların fəaliyyətini tətbiqlər və veb-saytlar arasında izləməyə imkan verirdi. Apple bu yanaşmanı məxfilik pozuntusu adlandırdı və məcburi razılıq dialoqu tətbiq etdi.

Framework iOS 14.0-dan etibarən mövcuddur, lakin IDFA istifadə edən bütün tətbiqlər üçün 2021-ci ilin aprelində iOS 14.5-in buraxılması ilə məcburi oldu. Flurry Analytics məlumatlarına görə, ATT tətbiqindən sonra ABŞ-da istifadəçilərin 25%-dən azı izləməyə razılıq verdi ki, bu da mobil reklam bazarını kökündən dəyişdi.

ATT, tətbiqin dəyişdirə və ya yan keçə bilməyəcəyi xüsusi sistem dialoqu vasitəsilə icazənin mövcudluğunu yoxlayır. İstifadəçi tərtibatçı tərəfindən təqdim edilən mətnlə standart popup görür və “Icazə ver” və ya “Tətbiqdən izləməməsini xahiş et” seçimini edir.

ATT iOS-da məxfiliklə necə əlaqəlidir

Apple ATT-ni App Store-da Privacy Nutrition Label və Privacy Manifest-i də əhatə edən ümumi məxfilik strategiyasının bir hissəsi kimi mövqeləndirir. Hər üç mexanizm birlikdə işləyir: etiketlər tətbiqin hansı məlumatları topladığını göstərir, Manifest API istifadəsinin səbəblərini bəyan edir, ATT isə istifadəçiyə izləmə üzərində nəzarət verir.

İzləmədən imtina tətbiqin işini bloklamır — istifadəçi bütün funksiyalardan istifadə edə bilər, lakin reklam şəbəkələri personalizasiya və atribusiya üçün IDFA almayacaq. IDFA-ya alternativ olaraq Apple-dan SKAdNetwork və Probabilistic Attribution istifadə olunur.

Branch Metrics-ə görə, ATT tətbiqindən sonra IDFA alan tətbiqlərin payı qlobal miqyasda 70%-dən 20%-ə düşdü. Bu, quraşdırma atribusiyası və reklam vasitəsilə monetizasiya yanaşmalarının yenidən nəzərdən keçirilməsinə səbəb oldu.

iOS 15 və 16-da dəyişikliklər

iOS 15-də Apple ATT tələblərini sərtləşdirmədi, lakin App Privacy Report — istifadəçiyə tətbiqlərin sensorlara və məlumatlara nə qədər tez-tez müraciət etdiyini göstərən hesabat əlavə etdi. iOS 16 nəzarəti genişləndirdi: istifadəçi Parametrlər → Məxfilik → İzləmə vasitəsilə istənilən vaxt izləmə parametrlərini dəyişə bilər.

Vacibdir: istifadəçi ATT dialoqunda “Tətbiqdən izləməməsini xahiş et” seçsə, tətbiq IDFA dəyərini almır, bunun əvəzinə sıfırlar sətri qaytarılır — 00000000-0000-0000-0000-000000000000. IDFA-nı başqa üsulla və ya yan keçmə metodları ilə oxumaq cəhdi App Store-da tətbiqin rədd edilməsinə səbəb olur.

iOS 17-dən başlayaraq Apple yoxlamaları gücləndirdi: tətbiq ATT sistem dialoqunu göstərmədən IDFA tələb edərsə, o, sadəcə boş identifikator deyil, ƏS səviyyəsində imtina alır. Bu, istifadəçinin xəbəri olmadan fon IDFA toplanması ehtimalını istisna edir.

iOS-da izləmə sorğusu necə işləyir

ATT sorğu prosesi üç mərhələdən ibarətdir: statusun yoxlanılması, sistem dialoqunun göstərilməsi və cavabın işlənməsi. Tərtibatçı heç bir addımı atlaya bilməz — ƏS hər mərhələyə nəzarət edir.

Avtorizasiya statusunun yoxlanılması

Dialoqu çağırmazdan əvvəl tətbiq ATTrackingManager vasitəsilə cari statusu yoxlamalıdır. Mümkün statuslar: notDetermined (hələ sorğulanmayıb), restricted (cihaz siyasətləri ilə qadağan edilib), denied (istifadəçi imtina edib), authorized (icazə verilib).

Status artıq müəyyən edilibsə (authorized və ya denied), dialoqu təkrar çağırmaq mümkün deyil — istifadəçi qərarını birdəfəlik verib. Qərarı dəyişməyin yeganə yolu iOS sistem parametrlərindir.

Statusu yoxlamaq üçün ATTrackingManager.trackingAuthorizationStatus xassəsindən istifadə olunur. Çağırış əsas thread-da baş verməlidir, çünki sistem dialoqu UI komponentidir.

swift
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
    }
}

Sistem dialoqunun göstərilməsi

Dialoqu göstərmək üçün istifadəçinin seçiminin nəticəsini alan closure ilə requestTrackingAuthorization metodu çağırılır. Vacibdir: dialoq yalnız bir dəfə göstərilir. Tərtibatçı onu təkrar çağırmağa cəhd edərsə, sistem sorğunu nəzərə almayacaq.

Dialoqda mətn iki hissədən ibarətdir: sistem başlığı (dəyişdirilə bilməz) və tərtibatçının Info.plist-də NSUserTrackingUsageDescription açarı vasitəsilə təyin etdiyi fərdi mesaj.

Dialoq təbii kontekstdə görünməlidir — tətbiq işə salındıqda dərhal deyil, izləmə ilə bağlı funksionallıqdan ilk istifadə cəhdində. Apple istifadəçi funksiyanın dəyərini anladıqdan sonra dialoqu göstərməyi tövsiyə edir.

swift
func requestTrackingPermission() {
    ATTrackingManager.requestTrackingAuthorization { status in
        DispatchQueue.main.async {
            switch status {
            case .authorized:
                let idfa = ASIdentifierManager.shared().advertisingIdentifier
                print("IDFA: \(idfa)")
            case .denied:
                print("Istifadəçi izləmədən imtina etdi")
            default:
                break
            }
        }
    }
}

IDFA və giriş məhdudiyyəti

IDFA (Identifier for Advertisers) — hədəfli reklam və quraşdırma atribusiyası üçün istifadə edilən unikal iOS cihazının reklam identifikatorudur. ATT-dan əvvəl tərtibatçılar onu ASIdentifierManager vasitəsilə məhdudiyyətsiz əldə edirdilər. ATT tətbiqindən sonra IDFA-ya giriş istifadəçi açıq razılıq verməyənədək bloklanır.

IDFA nədir və nə üçün lazımdır

IDFA hər iOS cihazı üçün unikal olan UUID sətridir. Reklam şəbəkələri IDFA-dan istifadə edir: tətbiq quraşdırmalarının izlənməsi (atribusiya), istifadəçinin maraqlarına əsaslanan uyğun reklamın göstərilməsi, reklam kampaniyalarının effektivliyinin ölçülməsi və retargeting — hədəf hərəkəti tamamlamamış istifadəçilərin qaytarılması.

İstifadəçi izləmədən imtina etdikdən sonra ASIdentifierManager 00000000-0000-0000-0000-000000000000 dəyərini qaytarır. Tətbiq yenə də texniki məqsədlər üçün (məsələn, antifraud) IDFA-nı oxuya bilər, lakin onu reklam şəbəkələrinə ötürə bilməz.

Singular (2024) məlumatlarına görə, ATT üçün qlobal razılıq səviyyəsi 25-35% təşkil edir, Avropada (GDPR) göstərici daha yüksəkdir (40-50%) ABŞ-dan (15-25%). Bu, reklam platformalarını alternativ atribusiya metodları hazırlamağa məcbur etdi.

IDFA-ya alternativlər: SKAdNetwork və Probabilistic Attribution

SKAdNetwork — IDFA-nı açıqlamadan quraşdırma atribusiyası üçün Apple frameworkudur. O, ƏS səviyyəsində işləyir: reklam şəbəkəsi imzalanmış postback göndərir, Apple onu yoxlayır və tərtibatçıya ötürür. Atribusiya konkret istifadəçinin identifikasiyası olmadan, yalnız kampaniya səviyyəsində baş verir.

Probabilistic Attribution quraşdırmaları reklam göstərişləri ilə ehtimal əsasında uyğunlaşdırmaq üçün cihazın çoxsaylı siqnallarından — model, iOS versiyası, saat qurşağı, ekran parlaqlığı — istifadə edir. Lakin Apple bu metodu öz qaydalarında qadağan edir və onun istifadəsi tətbiqin rədd edilməsinə səbəb ola bilər.

Google, Adjust və AppsFlyer SKAdNetwork-ü öz aqreqasiya edilmiş məlumatları ilə birləşdirən hibrid həllər hazırladılar. Məsələn, Google Ads Conversion Tracking IDFA olmadan atribusiya üçün SKAdNetwork postbacklərindən və öz maşın öyrənmə modellərindən istifadə edir.

ATT-nin tətbiq kodunda reallaşdırılması

ATT inteqrasiyası üçün Info.plist-ə NSUserTrackingUsageDescription açarını əlavə etmək və AppTrackingTransparency frameworkunu idxal etmək tələb olunur. Aşağıda Swift və Objective-C üçün addımlar verilmişdir.

Info.plist-in konfiqurasiyası

İlk addım Info.plist-ə tətbiqin izləməyə niyə ehtiyacı olduğunu izah edən mətnlə NSUserTrackingUsageDescription açarını əlavə etməkdir. Bu mətn sistem dialoqunda göstəriləcək. Nümunə: “Sizin IDFA-nız fərdiləşdirilmiş reklam göstərmək və kampaniyaların effektivliyini izləmək üçün istifadə olunur”.

Bu açar olmadan requestTrackingAuthorization çağırışı tətbiqin crash olmasına gətirib çıxaracaq — Apple dialoqu göstərməzdən əvvəl NSUserTrackingUsageDescription-ın mövcudluğunu açıq şəkildə yoxlayır. Mətn qısa, konkret və məlumatların real istifadəsinə uyğun olmalıdır.

Vacibdir: açar Xcode Info tab vasitəsilə və ya Info.plist XML mənbəyini redaktə etməklə əl ilə əlavə olunur. Əlavə etdikdən sonra layihəni yenidən qurun və açarın yekun binar faylda göstərildiyini yoxlayın.

xml
<!-- Info.plist -->
<key>NSUserTrackingUsageDescription</key>
<string>This identifier is used to deliver
personalized ads and measure campaign performance.</string>

Swift-də tam inteqrasiya

Real layihədə ATT sorğusunu reklam modulunun və ya trekerin ilk işə salınmasından əvvəl çağırmaq daha yaxşıdır. Ayrı bir ekranda (pre-permission prompt) istifadəçiyə razılığın faydasını əvvəlcədən izah etmək tövsiyə olunur — bu, razılıq faizini 20-30% artırır.

Pre-permission prompt — izləmənin aktivləşdirilməsinin faydasını göstərən öz UI interfeysidir (“Bizə uyğun reklam göstərməyə kömək edin”). Yalnız “Davam et” düyməsi basıldıqdan sonra ATT sistem dialoqu çağırılır. Adjust (2024) pre-permission ekranından istifadə edərkən razılıqda 40% artım qeyd etdi.

swift
final class TrackingManager {
    static let shared = TrackingManager()

    func requestTrackingIfNeeded() {
        guard ATTrackingManager.trackingAuthorizationStatus
            == .notDetermined
        else { return }

        ATTrackingManager.requestTrackingAuthorization { _ in
            NotificationCenter.default.post(
                Notification(Name("trackingStatusChanged"))
            )
        }
    }
}

ATT ilə işləyərkən səhvlər

Tərtibatçılar ATT inteqrasiyası zamanı tez-tez razılıq konversiyasının azalmasına və ya App Store moderatorları tərəfindən tətbiqin rədd edilməsinə səbəb olan tipik səhvlərə yol verirlər. Beş ən çox yayılmış problemi nəzərdən keçirək.

Tətbiq işə salındıqdan dərhal sonra ATT sorğusu

Ən çox yayılmış səhv — ATT sistem dialoqunu tətbiq yükləndikdən sonra ilk ekranda göstərməkdir. İstifadəçi hələ tətbiqin dəyərini anlamır və yüksək ehtimalla “İmtina et” düyməsini basır. IronSource (2023) üçüncü seansdan sonra sorğu ilə müqayisədə ilk ekranda sorğu zamanı razılığın 32% azaldığını göstərdi.

Tövsiyə: istifadəçi hədəf hərəkəti yerinə yetirdikdən sonra (məzmunu izlədi, onborda başladı) və ya tətbiqdən 3-5 seans istifadə etdikdən sonra izləmə tələb edin. Bu, etibarı və dəyər haqqında məlumatlılığı artırır.

Pre-permission ekranının olmaması

ATT sistem dialoqunu əvvəlcədən izahat vermədən göstərmək konversiyanı 15-20%-ə qədər azaldan səhvdir. İstifadəçi gözlənilməz sorğu görür və instinktiv olaraq imtina edir. Fayda izahı olan pre-permission ekranı razılığı 35-45%-ə qədər artırır.

Pre-permission mətni konkret olmalıdır: “Uyğun reklam göstərməyə icazə verin — bu, bizim pulsuz qalmağımıza kömək edir”. Ümumi ifadələrdən qaçın — onlar etibarı azaldır. GameAnalytics 2023-cü ildə göstərdi ki, fayda izahı olan pre-permission boş ekrandan 28% daha çox razılıq verir.

Restricted və denied statuslarının nəzərə alınmaması

İstifadəçi artıq izləmədən imtina edibsə və ya status restricted-dirsə (valideyn nəzarəti, korporativ siyasətlər), tətbiq ATT dialoqunu təkrar çağırmamalıdır. Təkrar çağırış işləmir və məxfilik pozuntusu kimi qəbul edilir. Bunun əvəzinə SKAdNetwork və kontekstli reklama keçin.

Restricted statusunda tətbiq “İzləmə sorğularına icazə ver” seçiminin parametrlərdə aktiv olub-olmadığını müəyyən edə bilməz. Bu halda həmişə SKAdNetwork vasitəsilə alternativsiz atribusiyadan istifadə edin və pre-permission ekranı göstərməyin.

ATT çağırmadan IDFA yoxlanılması

Əvvəlcədən ATT icazəsi olmadan ASIdentifierManager.shared().advertisingIdentifier vasitəsilə IDFA oxumaq sıfırlar sətri qaytarır. Bəzi tərtibatçılar özəl API vasitəsilə IDFA-ya girişin köhnə üsullarından istifadə etməyə çalışırlar — bu, zəmanətli şəkildə tətbiqin rədd edilməsinə səbəb olur.

Apple yan keçmə yollarını aşkar etmək üçün statik kod analizatoru və maşın öyrənməsindən istifadə edir. Tətbiq baxışdan keçsə belə, sonrakı yeniləmələr və ya avtomatik yoxlamalar pozuntunu aşkar edə və tərtibatçı hesabının bloklanmasına səbəb ola bilər.

Yanlış NSUserTrackingUsageDescription mətni

NSUserTrackingUsageDescription açarında çox uzun, qeyri-müəyyən və ya çaşdırıcı mətn moderatorlar tərəfindən tətbiqin rədd edilməsinin səbəbidir. Apple təsvirin məlumatların real istifadəsinə uyğun olub-olmadığını yoxlayır. Tətbiqdə reklam yoxdursa, lakin “reklam məqsədləri üçün” göstərilibsə, moderator yığmanı rədd edəcək.

Tövsiyə olunan format: IDFA istifadə məqsədinin 2-3 cümləlik konkret təsviri. Reklamsız tətbiq üçün nümunə: “İdentifikator analitika və fırıldaqçılığın qarşısının alınması üçün istifadə olunur. Məlumatlar üçüncü şəxslərə ötürülmür və profilləşdirmə üçün istifadə edilmir”.

Tez-tez verilən suallar

Tətbiqə ATT əlavə etməsəm nə olar?

Tətbiq IDFA və ya ATT olmadan izləmədən istifadə edərsə, Apple onu baxış prosesində rədd edəcək. Hətta izləmə olmadıqda da şəffaflıq üçün ATT əlavə etmək tövsiyə olunur, əks halda növbəti yeniləmədə rədd edilmə riski artır.

Tətbiq izləməyə razılıq olmadan işləyirmi?

Bəli, tətbiq tam işləyir, lakin reklam şəbəkələri personalizasiya və atribusiya üçün IDFA almayacaq. Fərdiləşdirilmiş reklamdan başqa tətbiqin bütün funksiyaları əlçatan qalır.

iOS-da ATT statusunu sıfırlamaq mümkündürmü?

Bəli, istifadəçi istənilən vaxt Parametrlər → Məxfilik → İzləmə vasitəsilə qərarını dəyişə bilər. Tətbiq statusu proqramlı şəkildə sıfırlaya bilməz — yalnız sistem parametrləri vasitəsilə.

ATT üçün razılıq faizini necə artırmaq olar?

Fayda izahı ilə pre-permission ekranından istifadə edin, izləməni ilk işə salmada deyil, hədəf hərəkət yerinə yetirildikdən sonra tələb edin. Meta (2024) gecikmiş sorğu ilə razılıqda 35% artım göstərdi.

ATT uşaq tətbiqlərinə təsir edirmi?

“Uşaqlar üçün” kateqoriyasındakı tətbiqlər Apple qaydalarına görə IDFA və ATT-dən izləmə üçün istifadə edə bilməz. Onlara həmçinin analitika və ya reklam üçün məlumatları üçüncü şəxslərə ötürmək qadağandır.

Nəticə

  • ATT — App Tracking Transparency, iOS 14.5+-də IDFA-ya giriş tələbi üçün məcburi framework
  • IDFA — ATT tərəfindən icazəsiz girişdən qorunan cihazın reklam identifikatoru
  • Sistem dialoqu — istifadəçi həmişə tətbiqin dəyişdirə və ya yan keçə bilməyəcəyi dialoq görür
  • Pre-permission — razılığı 20-40% artıran fayda izahı ilə öz ekran
  • SKAdNetwork — IDFA-ya girişi olmayan tətbiqlər üçün Apple-dan alternativsiz atribusiya
  • Konversiya — qlobal razılıq səviyyəsi 25-35%, Avropada GDPR sayəsində 50%
  • ATT-ni hər hansı trekeri çağırmazdan əvvəl inteqrasiya edin və mütləq Info.plist-ə NSUserTrackingUsageDescription açarını əlavə edin

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun