Obsługa iOS 14

W systemie iOS 14.5 firma Apple wymaga, aby deweloperzy otrzymali zgodę użytkownika za pomocą platformy App Tracking Transparency na śledzenie go lub uzyskanie dostępu do identyfikatora wyświetlania reklam urządzenia (IDFA). Więcej informacji znajdziesz w dokumentacji Apple dotyczącej prywatności użytkowników i wykorzystywania danych oraz App Tracking Transparency.

Usługi Firebase, których dotyczy problem

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

W tabeli poniżej znajdziesz listę usług Firebase dostępnych na platformach Apple oraz opis wpływu braku dostępu do IDFA na działanie każdej z nich.

Usługa Wpływ braku dostępu do IDFA
A/B Testing Niektóre dane kierowania (np. dane demograficzne) w integracji A/B Testing z Google Analytics są uzyskiwane z IDFA. W aplikacjach bez dostępu do IDFA to kierowanie jest niedostępne.
Firebase AI Logic 1 Brak wpływu
App Check Brak wpływu
App Distribution Brak wpływu
Authentication Brak wpływu na Authentication i dostawców Authentication własnych, takich jak Logowanie przez Google i uwierzytelnianie za pomocą numeru telefonu.
Cloud Firestore Brak wpływu
Cloud Functions Brak wpływu
Cloud Messaging W przypadku korzystania z Google Analytics, Google Analytics automatycznie rejestruje niektóre zdarzenia konwersji związane z FCM. Atrybucja tych zdarzeń wymaga dostępu do IDFA.
Cloud Storage Brak wpływu
Crashlytics Brak wpływu. Integracja Crashlytics z Google Analytics która zapewnia dane o awariach i ścieżkach w czasie rzeczywistym, nie jest zależna od IDFA.
Dynamic Links Brak wpływu na funkcję otwierania linków. W przypadku korzystania z Google Analytics, atrybucja zdarzeń konwersji linków jest niedostępna.
In-App Messaging Brak wpływu
Firebase instalacje Brak wpływu
InstanceID Brak wpływu
Firebase ML Brak wpływu
Performance Monitoring Brak wpływu
Realtime Database Brak wpływu
Remote Config W przypadku korzystania z Google Analytics usługa Remote Config nie pozwala na automatyczne tworzenie właściwości użytkownika na potrzeby kierowania bez dostępu do IDFA.

1 Firebase AI Logic nazywała się wcześniej "Vertex AI in Firebase".

Integracje Firebase, których dotyczy problem

W tabeli poniżej znajdziesz listę usług zintegrowanych z Firebase, na które wpływa brak dostępu do IDFA.

Usługa Wpływ braku dostępu do IDFA
Google Analytics Analytics Rejestrowanie zdarzeń, raportowanie zdarzeń i pomiar konwersji nie są naruszone, ale atrybucja jest naruszona, jeśli IDFA jest niedostępny. Więcej informacji o reakcji Google na system iOS 14 znajdziesz w tym poście na blogu.

Prośba o zgodę na śledzenie w aplikacji w systemie iOS 14

Jeśli chcesz, aby Twoja aplikacja na Apple miała dostęp do IDFA, możesz dodać do niej platformę App Tracking Transparency firmy Apple i poprosić o zgodę na śledzenie lub dostęp do IDFA użytkowników.

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

Jeśli jesteś wydawcą aplikacji AdMob lub Ad Managera, rozważ użycie Funding Choices, które automatycznie obsługuje uzyskiwanie zgody na wyświetlanie reklam spersonalizowanych oraz zgody na śledzenie użytkownika zgodnie z wytycznymi Apple. Więcej informacji znajdziesz na stronie AdMob Zgoda z wykorzystaniem wiadomości dla użytkowników.

Poniższy przewodnik zawiera rozwiązanie wykorzystujące Firebase In-App Messaging do tworzenia i wyświetlania ekranu z wyjaśnieniem przed poproszeniem o zgodę na śledzenie za pomocą App Tracking Transparency.

Dodawanie In-App Messaging do aplikacji

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

Obsługa odrzucenia wiadomości w aplikacji

Najpierw unikaj wyświetlania ekranu z wyjaśnieniem na urządzeniach, które nie mogą wyświetlać okna z prośbą o zgodę na przetwarzanie danych osobowych, np. na urządzeniach z systemem iOS 13. Upewnij się, że ten kod jest wykonywany natychmiast 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
}

Zaimplementuj protokół InAppMessagingDisplayDelegate, aby obsługiwać zdarzenia, gdy użytkownik odrzuci ekran z wyjaśnieniem. Jeśli użytkownik kliknie OK, wyświetl komunikat systemowy za pomocą 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 znajdzie się w Twojej aplikacji, utwórz wiadomość w aplikacji w Firebase konsoli.

  1. W konsoli Firebase, utwórz nową kampanię In-App Messaging.
  2. Wypełnij wiadomości w aplikacji odpowiednią treścią i ustaw, aby były wywoływane przez zdarzenie app_launch.
  3. W sekcji Kierowanie upewnij się, że kampania jest kierowana tylko na najnowszą wersję aplikacji i nowsze.

Wygląd ekranu z wyjaśnieniem możesz dostosować, postępując zgodnie z instrukcjami w In-App Messaging dokumentacji.

Opcjonalnie: testy A/B różnych ekranów z wyjaśnieniem

In-App Messaging ma wbudowaną integrację z Firebase A/B Testing, której możesz używać do eksperymentowania z różnymi ekranami z wyjaśnieniem.

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

Rejestrowanie uprawnień do śledzenia w aplikacji

Jeśli podczas obsługi odpowiedzi na prośbę o zgodę na śledzenie w aplikacji nie zarejestrowano zdarzenia Google Analytics, musisz to zrobić, aby mierzyć zmiany odsetka odpowiedzi podczas przeprowadzania 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 konsoli, otwórz menu Konwersje, a następnie dodaj nowe zdarzenie konwersji o takiej samej nazwie jak zdarzenie zarejestrowane za pomocą przykładowego kodu powyżej.AnalyticsFirebase

Tworzenie nowego eksperymentu

W menu konsoli In-App Messaging kliknij Nowy eksperyment, a następnie postępuj zgodnie z instrukcjami na wyświetlonych ekranach.

  • W sekcji Kierowanie upewnij się, że kampania jest kierowana tylko na najnowszą wersję aplikacji i nowsze.
  • W sekcji Cele wybierz zdarzenie konwersji utworzone za pomocą powyższego przykładowego kodu oraz inne dane, które chcesz śledzić.

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

Więcej informacji o tym, jak monitorować eksperyment i wdrażać skuteczny wariant, znajdziesz w Firebase A/B Testingdokumentacji.