Поддержка iOS 14
С января 2021 года компания Apple ограничивает доступ к IDFA на iOS 14. Это означает, что Apple перестанет отдавать IDFA по умолчанию. IDFA (Identifier for Advertisers) — уникальный идентификатор устройства, который используется для атрибуции и ретаргетинга рекламы.
Yandex Mobile Ads SDK использует IDFA, чтобы максимизировать доход площадок, за счёт отображения более релевантной рекламы.
Для получения IDFA разработчик приложения должен явно запросить разрешение у пользователя. Сделать это можно с помощью AppTrackingTransparency framework.
Принцип работы аналогичен запросам на отправку push-уведомлений.
Запрос разрешения на доступ к IDFA
При старте приложения проверьте статус разрешения с помощью trackingAuthorizationStatus. Дальнейшие рекомендации зависят от того, установлен у пользователя запрет доступа к IDFA или нет.
У пользователя не установлен запрет доступа к IDFA
У приложения есть только одна возможность показать пользователю запрос на доступ к IDFA, поэтому важно убедить пользователя разрешить доступ.
Стратегия работы с пользователем:
-
Перед показом системного диалогового окна отобразите диалоговое окно с объяснением:
- что именно запрашивается;
- как это будет использоваться;
- почему стоит разрешить доступ.
На экран можно добавить кнопки Разрешить и Не сейчас.
Примечание
Если пользователь согласился в поясняющем диалоговом окне приложения, с большой вероятностью он согласится в системном диалоговом окне. Если пользователь отказался в поясняющем диалоговом окне, будет возможность показать это диалоговое окно еще раз.
Пример диалогового окна с объяснением
-
Запросите доступ к IDFA через App Tracking Transparency.
У пользователя установлен запрет доступа к IDFA
Возможна ситуация, когда пользователь отказался от предоставления доступа к IDFA в системном диалоговом окне.
Стратегия работы с пользователем:
-
В приложении отобразите диалоговое окно с объяснением:
- что именно запрашивается;
- как это будет использоваться;
- почему стоит разрешить доступ.
На экран можно добавить кнопки Разрешить и Не сейчас.
Пример диалогового окна с объяснением
-
Перенаправьте пользователя в настройки с помощью UIApplication.openSettingsUrlString.
Пример настроек пользователя с установленным запретом доступа
Запрос доступа к IDFA через App Tracking Transparency
При работе с iOS 14 используйте новый фреймворк App Tracking Transparency. С его помощью отобразите системное диалоговое окно в своем приложении. В окне пользователь выберет разрешить или запретить доступ к IDFA.
Примечание
Системное диалоговое окно может отображаться только один раз при каждой установке приложения. Если пользователь выберет Ask App Not to Track, возможности показать это окно снова для этого приложения не будет.
-
Системное диалоговое окно нельзя менять, но в него можно добавить текст с пояснением. Для этого добавьте ключ
NSUserTrackingUsageDescription
в Info.plist. Например:<key>NSUserTrackingUsageDescription</key> <string>This identifier will be used to deliver personalized ads to you.</string>
Текст из Info.plist будет показан пользователю в системном диалоговом окне. В тексте объясните пользователю, почему приложение запрашивает разрешение на использование IDFA.
-
Чтобы отобразить диалоговое окно с запросом доступа к IDFA, вызовите метод requestTrackingAuthorization(completionHandler:).
Пример системного диалогового окна
-
Прежде чем загружать рекламу дождитесь получения callback. Тогда Yandex Mobile Ads SDK сможет использовать IDFA в запросах за рекламой.
import AppTrackingTransparency // ... func requestTrackingAuthorization() { ATTrackingManager.requestTrackingAuthorization { status in // Start ad loading } }
-
Чтобы проверить статус авторизации App Tracking Transparency, используйте свойство trackingAuthorizationStatus.
Больше информации по App Tracking Transparency доступно в документации Apple.