Поддержка iOS 14

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

Затронутые продукты Firebase

SDK Firebase не используют 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 Sign-In и Phone Authentication.
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 Никакого воздействия
Идентификатор экземпляра Никакого воздействия
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, вы можете добавить в него фреймворк Apple App Tracking Transparency и запросить разрешение на отслеживание или доступ к IDFA ваших пользователей.

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

Если вы являетесь издателем приложений, использующих AdMob или Ad Manager, рассмотрите возможность использования Funding Choices , который автоматически обрабатывает получение согласия на показ персонализированной рекламы, а также согласия на отслеживание пользователя в соответствии с рекомендациями Apple. Более подробную информацию см. на странице «Согласие AdMob с помощью сообщений пользователю» .

В данном руководстве представлено решение с использованием 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 для обработки событий, возникающих при закрытии пользователем экрана с пояснениями. Если пользователь нажимает «ОК», отобразите системное сообщение с помощью фреймворка 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 .

  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-эксперимента.

Быстрый

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 .