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%. Рекомендується показувати pre-permission екран із власним дизайном та поясненням цінності відстеження для користувача перед системним діалогом ATT.
Важливо: додаток може викликати requestTrackingAuthorization лише один раз до отримання відповіді. Після того як користувач вибрав «Відхилити» або «Попросити додаток не відстежувати», діалог більше не відображається на пристрої. Розробник повинен передбачити fallback-механізми для роботи без 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-адреси, версії ОС та інших сигналів пристрою; приватні агреговані API, такі як Private Click Measurement (PCM) від WebKit; та власні рішення рекламних платформ, що використовують машинне навчання для передбачення конверсій. Для китайського ринку також використовується CAID (Cellular Advertising ID), заснований на даних мобільної мережі оператора.
Реалізація запиту IDFA потребує інтеграції App Tracking Transparency та правильної обробки всіх можливих статусів авторизації. Нижче наведено повний приклад для Swift з pre-permission екраном.
Приклад демонструє повний цикл роботи з IDFA: перевірку статусу, відображення pre-permission екрану, виклик системного діалогу ATT та отримання ідентифікатора після авторизації.
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)
}
}
Оскільки більшість користувачів відхиляють запит 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 став стандартом де-факто для iOS-атрибуції після впровадження ATT, і всі великі рекламні мережі зобов'язані підтримувати його для роботи на пристроях 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 створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.
Читайте також