Поддержка iOS 14

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

Затронутые продукты 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 и аутентификация по телефону.
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 или Менеджера рекламы, рассмотрите возможность использования сервиса 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 консоли нажмите New Experiment , затем следуйте инструкциям на появляющихся экранах.

  • В разделе «Таргетинг» убедитесь, что кампания нацелена только на самую последнюю версию вашего приложения и выше.
  • В разделе «Цели» выберите событие конверсии, созданное вами с помощью примера кода выше, а также любые другие показатели, которые вы хотите отслеживать.

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

Ознакомьтесь с документацией Firebase A/B Testing чтобы узнать, как контролировать эксперимент и внедрять успешный вариант.