С iOS 14.5 Apple требует от разработчиков получать разрешение пользователя через фреймворк App Tracking Transparency, чтобы отслеживать его или получать доступ к рекламному идентификатору его устройства (IDFA). Более подробную информацию см. в документации Apple о конфиденциальности и использовании данных пользователей и Apple App Tracking Transparency .
Затронутые продукты Firebase
Firebase SDK не имеют доступа к IDFA, хотя некоторые из них имеют интеграцию с Google Analytics , которая может включать доступ к IDFA.
В таблице ниже перечислены продукты Firebase, доступные на платформах Apple, и описано, как на функциональность каждого продукта влияет отсутствие доступа к IDFA.
Продукт | Влияние, если IDFA недоступен |
---|---|
A/B Testing | Некоторые данные таргетинга (например, демографические) в интеграции A/B Testing с Google Analytics извлекаются из IDFA. В приложениях без доступа к IDFA этот таргетинг недоступен. |
Firebase AI Логика 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. |
Dynamic Links | Не влияет на функциональность открытия ссылок. При использовании с Google Analytics атрибуция для событий конверсии ссылок недоступна. |
In-App Messaging | Никакого воздействия |
Установки Firebase | Никакого воздействия |
InstanceID | Никакого воздействия |
Firebase ML | Никакого воздействия |
Performance Monitoring | Никакого воздействия |
Realtime Database | Никакого воздействия |
Remote Config | При использовании с Google Analytics Remote Config не позволяет автоматически создавать свойства пользователя для таргетинга без доступа IDFA. |
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 от Apple и запросить разрешение на отслеживание или доступ к IDFA ваших пользователей.
Многие приложения предпочитают показывать экран разминки или объяснения перед запросом разрешения. Экран объяснения позволяет вам предоставить пользователям больше контекста о том, как ваше приложение использует IDFA, перед запросом доступа.
Если вы являетесь издателем приложений AdMob или Ad Manager, рассмотрите возможность использования Funding Choices , который обрабатывает получение согласия на обслуживание персонализированной рекламы, а также согласие на отслеживание пользователя автоматически в соответствии с рекомендациями Apple. Более подробную информацию см. на странице AdMob Consent with User Messaging.
В следующем руководстве представлено решение с использованием Firebase In-App Messaging для создания и отображения экрана объяснения перед запросом доступа к отслеживанию через App Tracking Transparency.
Добавьте In-App Messaging в свое приложение
Следуйте инструкциям по добавлению In-App Messaging в ваше приложение Apple .
Обработка отклонения сообщений в приложении
Во-первых, избегайте отображения экрана объяснения на устройствах, которые не могут отобразить диалоговое окно согласия, например, на устройствах под управлением iOS 13. Убедитесь, что этот код выполняется сразу после FirebaseApp.configure()
.
Быстрый
if NSClassFromString("ATTrackingManager") == nil {
// Avoid showing the App Tracking Transparency explainer if the
// framework is not linked.
InAppMessaging.inAppMessaging().messageDisplaySuppressed = true
}
Реализуйте протокол InAppMessagingDisplayDelegate
для обработки событий, когда пользователь закрывает экран объяснения. Если пользователь нажимает OK, отобразите системную подсказку через фреймворк App Tracking Transparency.
Быстрый
// 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.
Быстрый
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 консоли нажмите New Experiment (Новый эксперимент) , затем следуйте инструкциям на появляющихся экранах.
- В разделе «Таргетинг» убедитесь, что кампания нацелена только на самую последнюю версию вашего приложения и выше.
- В разделе «Цели» выберите событие конверсии, созданное вами с помощью примера кода выше, а также любые другие показатели, которые вы хотели бы отслеживать.
После публикации эксперимента потребуется некоторое время для сбора данных, прежде чем можно будет получить окончательные результаты.
Ознакомьтесь с документацией Firebase A/B Testing чтобы узнать, как контролировать эксперимент и развертывать успешный вариант.