IDFA: що це, як працює та запит дозволу в iOS

Автор: IT Sectr Опубліковано: 2026-05-22 Час читання: 8 хв

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 — рекламний ідентифікатор iOS для відстеження користувачів та атрибуції встановлень додатків.
  • App Tracking Transparency — фреймворк Apple, що вимагає явної згоди користувача перед отриманням IDFA.
  • ATTrackingManager — основний клас iOS для запиту дозволу на відстеження через requestTrackingAuthorization.
  • SKAdNetwork — альтернативний механізм атрибуції від Apple, що не потребує IDFA та згоди користувача.
  • Privacy Manifest — обов'язковий файл iOS 18+ з декларацією причин використання рекламного ідентифікатора.

Що таке IDFA?

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.

Як працюють IDFA та App Tracking Transparency

App Tracking Transparency (ATT) — це фреймворк Apple, представлений в iOS 14.5, який вимагає явної згоди користувача перед читанням IDFA. Без згоди метод asIdentifierManager повертає нульовий ідентифікатор (00000000-0000-0000-0000-000000000000), і додаток не може відстежувати користувача.

Фреймворк App Tracking Transparency

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%. Рекомендується показувати pre-permission екран із власним дизайном та поясненням цінності відстеження для користувача перед системним діалогом ATT.

Важливо: додаток може викликати requestTrackingAuthorization лише один раз до отримання відповіді. Після того як користувач вибрав «Відхилити» або «Попросити додаток не відстежувати», діалог більше не відображається на пристрої. Розробник повинен передбачити fallback-механізми для роботи без IDFA, щоб додаток продовжував коректно функціонувати в умовах обмеженого трекінгу.

Вимоги iOS 18+ до відстеження

З виходом iOS 18 Apple посилила вимоги до додатків, що використовують рекламний ідентифікатор. Усі додатки, які запитують IDFA або передають дані про пристрій для рекламних цілей, повинні відповідати новим правилам App Store. Недотримання вимог веде до відхилення збірки на етапі модерації App Store Connect.

Privacy Manifest та відстеження

Починаючи з iOS 18, кожен додаток зобов'язаний включати Privacy Manifest (файл privacy.xcprivacy) з декларацією всіх API, що використовуються для відстеження. Для IDFA використовується ключ NSPrivacyTracking та NSPrivacyTrackingDomains, де вказуються домени рекламних мереж, яким передається ідентифікатор. Без коректного маніфесту додаток відхиляється модерацією App Store Connect.

Apple також ввела вимогу обов'язкового зазначення причини використання рекламного ідентифікатора в описі додатка. Якщо додаток використовує IDFA для атрибуції встановлень, він повинен використовувати SKAdNetwork як основний метод, а IDFA — лише як додатковий сигнал для підвищення точності атрибуції.

Альтернативи IDFA

Зі зростанням обмежень на IDFA індустрія розробила кілька альтернативних підходів. SKAdNetwork (StoreKit Ad Network) — офіційний механізм атрибуції від Apple, який працює без IDFA та не потребує згоди користувача. SKAdNetwork використовує підписані postback-запити між рекламною мережею та App Store, гарантуючи приватність користувача.

Інші альтернативи включають: імовірнісну атрибуцію на основі IP-адреси, версії ОС та інших сигналів пристрою; приватні агреговані API, такі як Private Click Measurement (PCM) від WebKit; та власні рішення рекламних платформ, що використовують машинне навчання для передбачення конверсій. Для китайського ринку також використовується CAID (Cellular Advertising ID), заснований на даних мобільної мережі оператора.

Приклади коду для запиту IDFA

Реалізація запиту IDFA потребує інтеграції App Tracking Transparency та правильної обробки всіх можливих статусів авторизації. Нижче наведено повний приклад для Swift з pre-permission екраном.

Запит ATT на Swift

Приклад демонструє повний цикл роботи з IDFA: перевірку статусу, відображення pre-permission екрану, виклик системного діалогу ATT та отримання ідентифікатора після авторизації.

swift
import AppTrackingTransparency
import AdSupport

func requestIDFAAccess() {
    let status = ATTrackingManager.trackingAuthorizationStatus

    switch status {
    case .notDetermined:
        // Показуємо pre-permission екран з поясненням
        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)
    }
}

Стратегії роботи без IDFA

Оскільки більшість користувачів відхиляють запит ATT, розробникам потрібен набір стратегій для ефективної роботи без ідентифікатора. Основний підхід — комбінація SKAdNetwork та імовірнісних методів атрибуції.

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 став стандартом де-факто для iOS-атрибуції після впровадження ATT, і всі великі рекламні мережі зобов'язані підтримувати його для роботи на пристроях Apple.

Прогнозовані ідентифікатори

Рекламні мережі, такі як Meta та Google, розробили власні рішення на основі машинного навчання, які передбачають конверсії без ідентифікатора користувача. Meta Aggregated Events Measurement (AEM) використовує агреговані дані для атрибуції, а Google Attribution моделює конверсії на основі історичних даних.

Для розробника важливо впровадити множинні методи атрибуції одночасно: SKAdNetwork як основний, серверну атрибуцію через рекламні мережі та власні аналітичні інструменти з моделюванням конверсій. Комбінація методів дозволяє відновити до 70–80% точності атрибуції порівняно з епохою IDFA. Рекомендується тестувати різні комбінації методів на етапі бета-тестування, щоб вибрати оптимальний набір для конкретного додатка та цільової аудиторії.

Часті запитання

Що таке IDFA простими словами?

IDFA — це унікальний код пристрою iPhone або iPad, який рекламні мережі використовують для показу персоналізованої реклами та вимірювання ефективності кампаній. З iOS 14.5 додаток зобов'язаний запитати ваш дозвіл перед отриманням IDFA через системний діалог App Tracking Transparency.

У чому різниця між IDFA та IDFV?

IDFV (Identifier for Vendor) — це ідентифікатор, унікальний для всіх додатків одного розробника на пристрої. На відміну від IDFA, IDFV не потребує згоди ATT та доступний завжди. IDFA єдиний для всіх додатків, IDFV — тільки для додатків одного вендора (по bundle ID).

Як отримати IDFA без згоди користувача?

Отримати IDFA без згоди користувача неможливо. Починаючи з iOS 14.5, ASIdentifierManager.advertisingIdentifier повертає нульовий ідентифікатор (00000000-0000-0000-0000-000000000000), якщо користувач не дав згоду через ATT. Єдиний легальний спосіб — викликати ATTrackingManager.requestTrackingAuthorization та отримати authorized статус.

Що таке NSUserTrackingUsageDescription?

NSUserTrackingUsageDescription — це ключ в Info.plist додатка, який містить текст, що відображається в системному діалозі ATT. Текст повинен пояснювати користувачеві, навіщо додатку потрібне відстеження. Приклад: «Ваш IDFA використовується для показу персоналізованої реклами та вимірювання ефективності кампаній».

Чи працює IDFA на Android?

Ні, IDFA — це ексклюзивний ідентифікатор екосистеми Apple. На Android використовується GAID (Google Advertising ID) або AAID (Android Advertising ID). Обидва виконують аналогічну функцію, але регулюються різними правилами — на Android користувач може скинути ідентифікатор або вимкнути персоналізацію реклами в налаштуваннях Google.

Підсумки

  • IDFA — рекламний ідентифікатор пристроїв Apple, що використовується для атрибуції та персоналізованої реклами.
  • App Tracking Transparency — фреймворк iOS 14.5+, що вимагає явної згоди користувача перед отриманням IDFA.
  • ATTrackingManager — основний клас для запиту дозволу на відстеження в iOS.
  • SKAdNetwork — альтернативний механізм атрибуції від Apple, що не потребує згоди користувача та IDFA.
  • Privacy Manifest — обов'язковий файл iOS 18+ з декларацією причин використання рекламного ідентифікатора.
  • Pre-permission екран — власний діалог з поясненням перед системним ATT, що підвищує конверсію до 55–65%.
  • Множинна атрибуція — комбінація SKAdNetwork, імовірнісних методів та машинного навчання для відновлення точності вимірювання кампаній.

Ми розробимо мобільний застосунок під ключ

IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.

Обговорити проект

Читайте також