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 Zasady Apple dotyczące prywatności użytkownika i wykorzystywania danych oraz dokumentacji Apple dotyczącej przejrzystości śledzenia w aplikacjach.

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 dostępnych na platformach Apple oraz opisuje, jak funkcje poszczególnych usług są ograniczane, 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

Dotknięte integracje z Firebase

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 z wyjaśnieniem przed poproszeniem o uprawnienia. Na ekranie z wyjaśnieniem możesz informować użytkowników o tym, jak Twoja aplikacja wykorzystuje identyfikator IDFA przed poproszeniem o dostęp.

Jeśli jesteś wydawcą aplikacji AdMob lub Ad Managera, rozważ skorzystanie z Funding Choices, które automatycznie uzyskuje zgodę na wyświetlanie reklam spersonalizowanych i na śledzenie użytkownika 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.

Dodawanie In-App Messaging do 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. Jeśli użytkownik kliknie OK, wyświetl komunikat systemu za pomocą mechanizmu 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 rejestrujesz zdarzenia Google Analytics, musisz to zrobić, aby mierzyć zmiany współczynnika 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.
  }
}

Tworzenie nowego zdarzenia 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 oraz wszystkie 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.