Поддержка iOS 14

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

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

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

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

Продукт Влияние, если IDFA недоступна
A/B-тестирование Некоторые данные таргетинга (например, демографические) в интеграции A/B-тестирования с Google Analytics получены из IDFA. В приложениях без доступа к IDFA этот таргетинг недоступен.
Проверка приложения Без влияния
Распространение приложений Без влияния
Аутентификация Не влияет на аутентификацию и сторонние поставщики аутентификации, такие как вход через Google и аутентификацию по телефону.
Crashlytics Без влияния. Интеграция Crashlytics с Google Analytics, которая предоставляет данные о сбоях и навигационные крошки в режиме реального времени, не зависит от IDFA.
Динамические ссылки Не влияет на функциональность открытия ссылок. При использовании с Google Analytics атрибуция событий конверсии ссылок недоступна.
Облако Firestore Без влияния
Облачные функции Без влияния
Обмен сообщениями в приложении Без влияния
Установки Firebase Без влияния
ID экземпляра Без влияния
Облачный обмен сообщениями При использовании с Google Analytics Google Analytics автоматически регистрирует некоторые события конверсии, связанные с FCM. Для атрибуции этих событий требуется доступ к IDFA.
Firebase ML Без влияния
Мониторинг производительности Без влияния
Удаленная конфигурация При использовании с Google Analytics Remote Config не позволяет автоматически создавать пользовательские свойства для таргетинга без доступа к IDFA.
База данных реального времени Без влияния
Облачное хранилище Без влияния

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

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

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

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

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

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

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

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

Добавьте обмен сообщениями в приложение в свое приложение

Следуйте инструкциям, чтобы добавить 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
  }
}

Создайте кампанию обмена сообщениями в приложении

Как только код появится в вашем приложении, создайте сообщение в приложении в консоли Firebase.

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

Вы можете настроить внешний вид экрана объяснения, следуя инструкциям в документации по обмену сообщениями в приложении .

Необязательно: 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.
  }
}

Создать новое событие-конверсию

В разделе «Аналитика» консоли Firebase перейдите в меню «Конверсии» , затем добавьте новое событие-конверсию с тем же именем, что и событие, зарегистрированное с помощью приведенного выше примера кода.

Создать новый эксперимент

В меню консоли «Сообщения в приложении» нажмите «Новый эксперимент» и следуйте инструкциям на появившихся экранах.

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

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

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