Поддержка iOS 14

В iOS 14.5 Apple требует, чтобы разработчики получали разрешение пользователя через систему прозрачности отслеживания приложений, чтобы отслеживать его или получать доступ к рекламному идентификатору его устройства (IDFA). Дополнительную информацию см. в документации Apple «Конфиденциальность пользователей и использование данных» и «Прозрачность отслеживания приложений Apple» .

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

SDK Firebase не имеют доступа к IDFA, хотя некоторые из них имеют интеграцию с Google Analytics , которая может включать доступ к IDFA.

В таблице ниже перечислены продукты Firebase, доступные на платформах Apple, и описано, как на функциональность каждого продукта повлияет отсутствие доступа к IDFA.

Продукт Что произойдет, если IDFA недоступен
A/B Testing Некоторые данные таргетинга (например, демографические данные) при интеграции A/B Testing с Google Analytics извлекаются из IDFA. В приложениях без доступа к IDFA этот таргетинг недоступен.
App Check Никакого влияния
App Distribution Никакого влияния
Authentication Никакого влияния на Authentication и сторонних поставщиков Authentication , таких как вход в Google и аутентификация по телефону.
Crashlytics Никакого воздействия. Интеграция Crashlytics с Google Analytics , которая предоставляет данные о сбоях и хлебные крошки в реальном времени, не зависит от IDFA.
Dynamic Links Никакого влияния на функциональность открытия ссылок. При использовании с Google Analytics атрибуция событий-конверсий ссылок недоступна.
Cloud Firestore Никакого влияния
Cloud Functions Никакого влияния
In-App Messaging Никакого влияния
Установки Firebase Никакого влияния
Идентификатор экземпляра Никакого влияния
Cloud Messaging При использовании с Google Analytics Google Analytics автоматически регистрирует некоторые события конверсий, связанные с FCM . Для атрибуции этих событий требуется доступ к IDFA.
Firebase ML Никакого влияния
Performance Monitoring Никакого влияния
Remote Config При использовании с Google Analytics Remote Config не позволяет автоматически создавать свойства пользователя для таргетинга без доступа к IDFA.
Realtime Database Никакого влияния
Cloud Storage Никакого влияния
Vertex AI in Firebase Никакого влияния

Затронутые интеграции Firebase

В таблице ниже перечислены продукты, интегрированные с Firebase, на которые повлияет отсутствие доступа к IDFA.

Продукт Что произойдет, если IDFA недоступен
Google Analytics Регистрация событий Analytics , отчеты о событиях и измерение конверсий остаются без изменений, но если IDFA недоступен, это повлияет на атрибуцию. Подробнее о реакции Google на iOS 14 можно узнать в нашем блоге .

Запрос разрешения на отслеживание приложений на iOS 14

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

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

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

В следующем руководстве представлено решение с использованием Firebase In-App Messaging для создания и отображения экрана пояснения перед запросом доступа к отслеживанию через прозрачность отслеживания приложений.

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

Быстрый

// 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 , чтобы узнать, как отслеживать эксперимент и развертывать успешный вариант.