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 adoption rate 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 года. Мы проконсультируем вас и предложим наилучшее решение.
Читайте также