Поддержка iOS 14

В iOS 14.5 компания Apple требует, чтобы разработчики получали разрешение пользователя с помощью фреймворка App Tracking Transparency, чтобы отслеживать его действия или получать доступ к рекламному идентификатору устройства (IDFA). Подробные сведения вы найдете в документации Apple User Privacy and Data Use (Конфиденциальность пользователей и использование данных) и 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 Logic 1 Никак не влияет
App Check Никак не влияет
App Distribution Никак не влияет
Authentication Не влияет на Authentication и поставщиков собственных Authentication, например вход с аккаунтом Google и Phone Authentication.
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 Если использовать Remote Config вместе с Google Analytics, то автоматически созданные свойства пользователей нельзя будет использовать для таргетинга без доступа к 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

Если вы хотите, чтобы ваше приложение для iOS могло получать доступ к IDFA, добавьте в него фреймворк App Tracking Transparency от Apple и запросите разрешение на отслеживание или доступ к IDFA пользователей.

Многие приложения показывают экран с объяснением перед тем, как запросить разрешение. Это поможет вам объяснить, как именно IDFA используется в вашем приложении.

Если вы издатель приложений AdMob или Менеджера рекламы, рекомендуем использовать Детектор блокировки, который автоматически запрашивает согласие на показ персонализированной рекламы и отслеживание пользователей в соответствии с правилами Apple. Подробнее AdMobо согласии и сообщениях для пользователей …

В этом руководстве описано, как создать и показывать экран с объяснением перед запросом доступа к отслеживанию с помощью фреймворка App Tracking Transparency (ATT), используя Firebase In-App Messaging.

Как добавить 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.

  1. В консоли Firebase создайте новую кампанию In-App Messaging.
  2. Заполните сообщения в приложении нужным контентом и настройте показ сообщения при событии app_launch.
  3. В разделе Таргетинг убедитесь, что кампания настроена на показ только пользователям с последней версией приложения или более новой.

Вы можете настроить внешний вид экрана с объяснениями, следуя инструкциям в документации 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.