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 dostęp 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 platformy App Tracking Transparency.

Usługi Firebase, których dotyczy problem

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

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

Usługa Wpływ braku dostępu do identyfikatora IDFA
A/B Testing Niektóre dane kierowania (np. dane demograficzne) w integracji A/B Testing z Google Analytics są uzyskiwane na podstawie identyfikatora IDFA. W aplikacjach bez dostępu do identyfikatora 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 identyfikatora 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 identyfikatora 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 identyfikatora 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 identyfikatora IDFA.

Usługa Wpływ braku dostępu do identyfikatora IDFA
Google Analytics Analytics Rejestrowanie zdarzeń, raportowanie zdarzeń i pomiar konwersji nie są naruszone, ale atrybucja jest. 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 platformę Apple miała dostęp do identyfikatora IDFA, możesz dodać do niej platformę App Tracking Transparency firmy Apple i poprosić o zgodę na śledzenie użytkowników lub dostęp do ich identyfikatora IDFA.

Wiele aplikacji przed poproszeniem o zgodę wyświetla ekran wprowadzający lub wyjaśniający. Na ekranie wyjaśniającym 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 AdMob lub Ad Managera, rozważ użycie Funding Choices, które automatycznie obsługuje uzyskiwanie zgody na wyświetlanie reklam spersonalizowanych oraz na śledzenie użytkownika zgodnie z wytycznymi Apple. Więcej informacji znajdziesz na stronie AdMob Zgoda i wiadomości dla użytkowników.

W tym przewodniku znajdziesz rozwiązanie, które wykorzystuje Firebase In-App Messaging do tworzenia i wyświetlania ekranu wyjaśniającego przed poproszeniem o zgodę na śledzenie za pomocą platformy App Tracking Transparency.

Dodawanie In-App Messaging do aplikacji

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

Obsługa odrzucania wiadomości w aplikacji

Najpierw unikaj wyświetlania ekranu wyjaśniającego na urządzeniach, które nie mogą wyświetlać okna dialogowego zgody, 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 wyjaśniający. 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 wyjaśniającego możesz dostosować, postępując zgodnie z instrukcjami w In-App Messaging dokumentacji.

Opcjonalnie: testowanie A/B różnych ekranów wyjaśniających

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

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ć wynik jednoznaczny.

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