Поддержка iOS 14

Начиная с 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.

  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.