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