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%. Препоръчва се показване на екран за предварително разрешение със собствен дизайн и обяснение на стойността на проследяването за потребителя преди системния ATT диалог.

Важно: приложението може да извика requestTrackingAuthorization само веднъж преди получаване на отговор. След като потребителят избере „Отхвърли“ или „Поискай да не проследява“, диалоговият прозорец вече не се показва на устройството. Разработчикът трябва да предвиди резервни механизми за работа без 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 адрес, версия на OS и други сигнали на устройството; частни агрегирани API, като Private Click Measurement (PCM) от WebKit; и собствени решения на рекламни платформи, използващи машинно обучение за предсказване на конверсии. За китайския пазар се използва и CAID (Cellular Advertising ID), базиран на данни от мобилната мрежа на оператора.

Примери за код за заявка на IDFA

Имплементацията на заявка за IDFA изисква интегриране на App Tracking Transparency и правилно обработване на всички възможни статуси на оторизация. По-долу е даден пълен пример за Swift с екран за предварително разрешение.

Заявка за ATT в Swift

Примерът демонстрира пълния работен цикъл с IDFA: проверка на статуса, показване на екрана за предварително разрешение, извикване на системния ATT диалог и получаване на идентификатора след оторизация.

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

Стратегии за работа без 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+ с декларация на причините за използване на рекламния идентификатор.
  • Екран за предварително разрешение — собствен диалог с обяснение преди системния ATT, повишава конверсията до 55–65%.
  • Множествена атрибуция — комбинация от SKAdNetwork, вероятностни методи и машинно обучение за възстановяване на точността на измерване на кампании.

Ще разработим мобилно приложение под ключ

IT Sectr създава iOS и Android приложения за стартъпи и бизнеси от 2017 г. Ще ви консултираме и ще предложим най-доброто решение.

Обсъдете проекта

Прочетете също