Начиная с iOS 14.5, разработчики должны получать разрешение пользователя на отслеживание его действий или доступ к рекламному идентификатору (IDFA) его устройства с помощью фреймворка App Tracking Transparency. Подробные сведения вы найдете в документации Apple User Privacy and Data Use (Конфиденциальность пользователей и использование данных) и App Tracking Transparency (Прозрачность отслеживания приложений).
Затронутые продукты Firebase
Firebase SDK не имеют доступа к IDFA, но некоторые из них интегрированы с Google Analytics, у которого такой доступ может быть.
В таблице ниже перечислены продукты Firebase, доступные на платформах Apple, и описано, как на функциональность каждого продукта влияет отсутствие доступа к IDFA.
| Товар | Что произойдет, если IDFA будет недоступен |
|---|---|
| A/B Testing | Некоторые данные таргетинга (например, демографические) в интеграции A/B Testing с Google Analytics получены из IDFA. В приложениях без доступа к IDFA этот таргетинг недоступен. |
| Firebase AI Logic 1 | Никак не влияет |
| App Check | Никак не влияет |
| App Distribution | Никак не влияет |
| Authentication | Изменения не затронут Authentication и собственных поставщиков Authentication, таких как Вход с аккаунтом Google и аутентификация по номеру телефона. |
| Cloud Firestore | Никак не влияет |
| Cloud Functions | Никак не влияет |
| Cloud Messaging | При использовании с Google Analytics Google Analytics будет автоматически регистрировать некоторые события-конверсии, связанные с FCM. Для атрибуции этих событий требуется доступ к IDFA. |
| Cloud Storage | Никак не влияет |
| Crashlytics | Нет, не влияет. Интеграция Crashlytics с Google Analytics, которая позволяет получать данные о сбоях и навигационные цепочки в реальном времени, не зависит от IDFA. |
| In-App Messaging | Никак не влияет |
| Firebase установок | Никак не влияет |
| Performance Monitoring | Никак не влияет |
| Realtime Database | Никак не влияет |
| Remote Config | При использовании с Google Analytics Remote Config не позволяет автоматически создавать свойства пользователей для таргетинга без доступа к IDFA. |
| УСТАРЕВШИЕ ИЛИ НЕПОДДЕРЖИВАЕМЫЕ БИБЛИОТЕКИ | |
| Dynamic Links | Это не повлияет на работу ссылок. Если вы используете Google Analytics, атрибуция для событий-конверсий по ссылке недоступна. |
| InstanceID | Никак не влияет |
| Firebase ML | Никак не влияет |
1 Firebase AI Logic ранее назывался Vertex AI in Firebase.
Затронутые интеграции с Firebase
В таблице ниже перечислены продукты, интегрированные с Firebase, на которые влияет отсутствие доступа к IDFA.
| Товар | Что произойдет, если IDFA будет недоступен |
|---|---|
| Google Analytics | Analytics Регистрация событий, отчеты о событиях и отслеживание конверсий не затронуты, но отсутствие доступа к IDFA влияет на атрибуцию. Чтобы узнать больше о том, как Google реагирует на изменения в iOS 14, прочитайте эту запись в блоге. |
Запрос разрешения на отслеживание в приложении на iOS 14
Если вы хотите, чтобы ваше приложение Apple могло получать доступ к IDFA, добавьте в него фреймворк App Tracking Transparency и запросите разрешение на отслеживание или доступ к IDFA пользователей.
Во многих приложениях перед запросом разрешения показывается экран с объяснением. Это поможет вам объяснить, как именно IDFA используется в вашем приложении, прежде чем запрашивать доступ.
Если вы издатель приложений AdMob или Менеджера рекламы, рекомендуем использовать Детектор блокировки. Он автоматически запрашивает согласие на показ персонализированной рекламы и отслеживание пользователей в соответствии с правилами Apple. Подробную информацию можно найти на странице AdMob Consent with User Messaging.
В этом руководстве рассказывается, как с помощью Firebase In-App Messaging создать и показать экран с объяснением перед тем, как запрашивать разрешение на отслеживание через App Tracking Transparency.
Добавьте In-App Messaging в свое приложение
Следуйте инструкциям по добавлению In-App Messaging в приложение Apple.
Как обрабатывать закрытие сообщений в приложении
Во-первых, не показывайте экран с пояснениями на устройствах, на которых нельзя показать диалоговое окно для получения согласия, например на устройствах с iOS 13. Убедитесь, что этот код выполняется сразу после FirebaseApp.configure().
Swift
if NSClassFromString("ATTrackingManager") == nil {
// Avoid showing the App Tracking Transparency explainer if the
// framework is not linked.
InAppMessaging.inAppMessaging().messageDisplaySuppressed = true
}
Реализуйте протокол InAppMessagingDisplayDelegate, чтобы обрабатывать события, когда пользователь закрывает экран с пояснениями. Если пользователь нажмет "ОК", покажите системный запрос с помощью фреймворка App Tracking Transparency.
Swift
// The InAppMessaging delegate must be assigned before events can be handled.
InAppMessaging.inAppMessaging().delegate = self
func messageClicked(_ inAppMessage: InAppMessagingDisplayMessage,
with action: InAppMessagingAction) {
switch action.actionText {
case "OK":
ATTrackingManager.requestTrackingAuthorization { status in
switch status {
case .authorized:
// Optionally, log an event when the user accepts.
Analytics.logEvent("tracking_authorized", parameters: nil)
case _:
// Optionally, log an event here with the rejected value.
}
}
case _:
// do nothing
}
}
Создать кампанию типа "In-App Messaging"
После того как вы добавите код в приложение, создайте сообщение в приложении в консоли Firebase.
- В консоли Firebase создайте новую кампанию In-App Messaging.
- Добавьте в сообщения нужный контент и настройте их показ при активации события
app_launch. - В разделе Таргетинг убедитесь, что кампания настроена только на последнюю версию приложения и более поздние.
Вы можете настроить внешний вид экрана с пояснениями, следуя инструкциям в документации In-App Messaging.
Необязательно: проведите A/B-тестирование разных экранов с пояснениями
В In-App Messaging встроена интеграция с Firebase A/B Testing, которую можно использовать для экспериментов с разными экранами-пояснениями.
Firebase A/B Testing автоматически создает экспериментальные группы и помогает визуализировать, как пользователи взаимодействуют с разными вариантами вашего приложения.
Запись разрешений на отслеживание в приложении
Если вы не регистрировали событие Google Analytics при обработке ответа на запрос разрешения на отслеживание в приложении, вам нужно будет сделать это, чтобы измерять изменения в доле ответов при проведении A/B-эксперимента.
Swift
ATTrackingManager.requestTrackingAuthorization { status in
switch status {
case .authorized:
// Optionally, log an event when the user accepts.
Analytics.logEvent("tracking_authorized", parameters: nil)
case _:
// Optionally, log an event here with the rejected value.
}
}
Как создать событие-конверсию
В разделе Analytics консоли Firebase перейдите в меню Конверсии и добавьте новое событие-конверсию с тем же названием, что и у события, зарегистрированного с помощью приведенного выше образца кода.
Создание нового эксперимента
В меню In-App Messaging консоли нажмите Новый эксперимент и следуйте инструкциям на экране.
- В разделе Таргетинг убедитесь, что кампания настроена только на последнюю версию приложения и более поздние.
- В разделе Цели выберите событие-конверсию, созданное с помощью приведенного выше образца кода, а также другие показатели, которые вы хотите отслеживать.
После публикации эксперимента потребуется некоторое время, чтобы собрать данные и получить значимые результаты.
Информацию о том, как отслеживать эксперимент и внедрять успешный вариант, можно найти в документации по Firebase A/B Testing.