Obsługa iOS 14

W systemie iOS 14.5 firma Apple wymaga, aby deweloperzy uzyskiwali zgodę użytkownika na śledzenie lub dostęp do identyfikatora wyświetlania reklam (IDFA) na urządzeniu w ramach platformy App Tracking Transparency. Więcej informacji znajdziesz w dokumentacji Apple dotyczącej ochrony prywatności i wykorzystywania danych oraz dokumentacji Apple App Tracking Transparency.

Usługi Firebase, których to dotyczy

Pakiety SDK Firebase nie mają dostępu do identyfikatora IDFA, ale niektóre z nich są zintegrowane z Google Analytics, co może wymagać dostępu do IDFA.

Tabela poniżej zawiera listę usług Firebase, które są dostępne na platformach Apple, i opisujemy, jak wpływa to na ich funkcjonalność, gdy identyfikator IDFA jest niedostępny.

Usługa Wpływ braku dostępu do identyfikatora IDFA
A/B Testing Niektóre dane kierowania (np. dane demograficzne) w ramach integracji A/B TestingGoogle Analytics pochodzą z identyfikatora IDFA. W przypadku aplikacji bez dostępu do identyfikatora IDFA ta opcja kierowania jest niedostępna.
App Check Brak wpływu
App Distribution Brak wpływu
Authentication Nie ma to wpływu na Authentication i dostawców Authentication, takich jak logowanie w Google i uwierzytelnianie przez telefon.
Crashlytics Brak wpływu. Integracja CrashlyticsGoogle Analytics, która dostarcza danych o wypadkach i śladów w czasie rzeczywistym, nie zależy od identyfikatora IDFA.
Dynamic Links Nie ma wpływu na funkcję otwierania linków. W przypadku korzystania z funkcji Google Analytics atrybucja zdarzeń konwersji z linku jest niedostępna.
Cloud Firestore Brak wpływu
Cloud Functions Brak wpływu
In-App Messaging Brak wpływu
Firebase instalacji Brak wpływu
InstanceID Brak wpływu
Cloud Messaging Gdy używasz Google Analytics, Google Analytics automatycznie rejestruje niektóre zdarzenia konwersji związane z FCM. Atrybucja tych zdarzeń wymaga dostępu do IDFA.
Firebase ML Brak wpływu
Performance Monitoring Brak wpływu
Remote Config W przypadku użycia z Google Analytics funkcja Remote Config nie zezwala na automatyczne tworzenie właściwości użytkownika do kierowania bez dostępu do IDFA.
Realtime Database Brak wpływu
Cloud Storage Brak wpływu
Vertex AI in Firebase Brak wpływu

Integracje z Firebase, których to dotyczy

W tabeli poniżej znajdziesz usługi zintegrowane z Firebase, których dotyczy problem, gdy identyfikator IDFA jest niedostępny.

Usługa Wpływ braku dostępu do identyfikatora IDFA
Google Analytics Analytics rejestrowanie, raportowanie i pomiar konwersji nie są na to narażone, ale atrybucja może być zakłócona, jeśli identyfikator IDFA jest niedostępny. Więcej informacji o działaniach Google związanych z iOS 14 znajdziesz w poście na blogu.

Wyświetlanie prośby o zezwolenie na śledzenie w aplikacji na iOS 14

Jeśli chcesz, aby Twoja aplikacja Apple miała dostęp do IDFA, możesz dodać do niej ramy ATT firmy Apple i poprosić o uprawnienia do śledzenia IDFA użytkowników lub dostępu do tego identyfikatora.

Wiele aplikacji wyświetla ekran wstępny lub wyjaśniający, zanim poprosi o zgodę. Na ekranie z wyjaśnieniem możesz informować użytkowników o tym, jak Twoja aplikacja wykorzystuje identyfikator IDFA, zanim poprosisz o dostęp do niego.

Jeśli jesteś wydawcą aplikacji na platformie AdMob lub w usłudze Ad Manager, rozważ skorzystanie z usługi Funding Choices, która umożliwia uzyskiwanie zgody na wyświetlanie reklam spersonalizowanych oraz automatyczne śledzenie użytkowników zgodnie z wytycznymi Apple. Więcej informacji znajdziesz na stronie AdMobZgody na wiadomości dla użytkowników.

Ten przewodnik zawiera rozwiązanie, które umożliwia użycie Firebase In-App Messaging do utworzenia i wyświetlenia ekranu z wyjaśnieniem przed poproszeniem o dostęp do śledzenia w ramach App Tracking Transparency.

Dodaj In-App Messaging do swojej aplikacji

Postępuj zgodnie z instrukcjami, aby dodać In-App Messaging do aplikacji Apple.

Zarządzanie odrzucaniem wiadomości w aplikacji

Po pierwsze, nie wyświetlaj ekranu z informacjami na urządzeniach, które nie mogą wyświetlić okna dialogowego z prośbą o zgodę, np. na urządzeniach z iOS 13. Upewnij się, że kod jest wykonywany bezpośrednio po FirebaseApp.configure().

Swift

if NSClassFromString("ATTrackingManager") == nil {
  // Avoid showing the App Tracking Transparency explainer if the
  // framework is not linked.
  InAppMessaging.inAppMessaging().messageDisplaySuppressed = true
}

Wdrożyć protokół InAppMessagingDisplayDelegate, aby obsługiwać zdarzenia, gdy użytkownik zamknie ekran z tłumaczeniem. Gdy użytkownik kliknie OK, wyświetli się prompt systemowy w ramach platformy 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
  }
}

Tworzenie kampanii In-App Messaging

Gdy kod zostanie umieszczony w aplikacji, utwórz w konsoli Firebase wiadomość wyświetlaną w aplikacji.

  1. W konsoli Firebase utwórz nową kampanię In-App Messaging.
  2. Wstaw do wiadomości w aplikacji odpowiednie treści i ustaw zdarzenie app_launch jako wyzwalacz wiadomości.
  3. W sekcji Kierowanie sprawdź, czy kampania jest kierowana tylko na najnowszą wersję aplikacji i starsze.

Wygląd ekranu z informacjami możesz dostosować, wykonując instrukcje z dokumentacjiIn-App Messaging.

Opcjonalnie: przeprowadź testy A/B różnych ekranów z informacjami

In-App Messaging ma wbudowaną integrację z Firebase A/B Testing, dzięki której możesz eksperymentować z różnymi ekranami z informacjami.

Firebase A/B Testing automatycznie tworzy grupy eksperymentalne i pomaga wizualizować interakcje użytkowników z różnymi wariantami aplikacji.

Rejestrowanie uprawnień do śledzenia aplikacji

Jeśli podczas obsługi odpowiedzi na prośbę o przyznanie uprawnień do śledzenia aplikacji nie zdążysz zarejestrować zdarzenia Google Analytics, musisz to zrobić, aby mierzyć zmiany w częstotliwości odpowiedzi podczas eksperymentu 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.
  }
}

Utwórz nowe zdarzenie konwersji

W sekcji Analytics konsoli Firebase otwórz menu Konwersje i dodaj nowe zdarzenie konwersji o tej samej nazwie co zdarzenie zarejestrowane przez przykładowy kod powyżej.

Utwórz nowy eksperyment

W menu konsoli In-App Messaging kliknij Nowy eksperyment, a potem postępuj zgodnie z instrukcjami wyświetlanymi na kolejnych ekranach.

  • W sekcji Kierowanie sprawdź, czy kampania jest kierowana tylko na najnowszą wersję aplikacji i starsze.
  • W sekcji Cele wybierz zdarzenie konwersji utworzone za pomocą powyższego przykładowego kodu, a także wszelkie inne dane, które chcesz śledzić.

Po opublikowaniu eksperymentu musi on zebrać dane przez pewien czas, zanim będzie można uzyskać wiarygodne wyniki.

Więcej informacji o monitorowaniu eksperymentu i wdrażaniu skutecznej wersji znajdziesz w dokumentacji Firebase A/B Testing.