Obsługa iOS 14

W systemie iOS 14.5 firma Apple wymaga od deweloperów uzyskania zgody użytkownika na śledzenie go lub dostęp do identyfikatora wyświetlania reklam (IDFA) na jego urządzeniu za pomocą platformy App Tracking Transparency. Więcej informacji znajdziesz w dokumentacji Apple dotyczącej prywatności użytkowników i wykorzystania danych oraz zasad 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 usługą Google Analytics, która może mieć dostęp do tego identyfikatora.

W tabeli poniżej znajdziesz usługi Firebase dostępne 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 pochodzą z 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 Nie ma to wpływu na dostawców Authentication i własnych dostawców Authentication, takich jak Logowanie przez Google i uwierzytelnianie przez telefon.
Cloud Firestore Brak wpływu
Cloud Functions Brak wpływu
Cloud Messaging W przypadku używania z Google Analytics Google Analytics będzie automatycznie rejestrować niektóre zdarzenia konwersji związane z FCM. Atrybucja tych zdarzeń wymaga dostępu do IDFA.
Cloud Storage Brak wpływu
Crashlytics Nie ma to wpływu na te rozwiązania. Integracja Crashlytics z Google Analytics, która zapewnia dane o awariach i okruszki w czasie rzeczywistym, nie zależy od identyfikatora IDFA.
In-App Messaging Brak wpływu
Instalacje: Firebase Brak wpływu
Performance Monitoring Brak wpływu
Realtime Database Brak wpływu
Remote Config W przypadku używania z Google Analytics Remote Config nie zezwala na automatycznie tworzone właściwości użytkownika na potrzeby kierowania bez dostępu do identyfikatora IDFA.
WYCOFANE LUB NIEOBSŁUGIWANE BIBLIOTEKI
Dynamic Links Nie ma to wpływu na funkcję otwierania linków. W przypadku używania z Google Analytics atrybucja zdarzeń konwersji polegających na kliknięciu linku jest niedostępna.
InstanceID Brak wpływu
Firebase ML Brak wpływu

1 Firebase AI Logic wcześniej nosił nazwę „Vertex AI in Firebase”.

Integracje z Firebase, których dotyczy problem

W tabeli poniżej znajdziesz usługi zintegrowane z Firebase, na które brak dostępu do IDFA ma wpływ.

Usługa Wpływ braku dostępu do identyfikatora IDFA
Google Analytics Analytics Nie ma to wpływu na rejestrowanie zdarzeń, raportowanie zdarzeń i pomiar konwersji, ale jeśli identyfikator IDFA jest niedostępny, wpływa to na atrybucję. Więcej informacji o reakcji Google na iOS 14 znajdziesz w poście na blogu.

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

Jeśli chcesz, aby Twoja aplikacja na urządzenia 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 lub dostęp do identyfikatora IDFA użytkowników.

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

Jeśli jesteś wydawcą aplikacji korzystającym z 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 Consent with User Messaging.

W tym przewodniku znajdziesz rozwiązanie, które wykorzystuje Firebase In-App Messaging do tworzenia i wyświetlania ekranu z wyjaśnieniem przed prośbą o zgodę na śledzenie w ramach zasad App Tracking Transparency.

Dodawanie In-App Messaging do aplikacji

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

Obsługa zamykania wiadomości w aplikacji

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

Zaimplementuj protokół InAppMessagingDisplayDelegate, aby obsługiwać zdarzenia, gdy użytkownik zamknie 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
  }
}

Utwórz kampanię In-App Messaging

Po umieszczeniu kodu w aplikacji utwórz wiadomość w aplikacji w konsoli Firebase.

  1. W konsoli Firebase utwórz nową kampanię In-App Messaging.
  2. Wypełnij wiadomości w aplikacji odpowiednią treścią i ustaw je tak, 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.

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

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

In-App Messaging ma wbudowaną integrację z Firebase A/B Testing, dzięki której możesz eksperymentować 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 aplikacji

Jeśli podczas obsługi odpowiedzi na prośbę o zezwolenie na śledzenie w aplikacji nie zarejestrowano zdarzenia Google Analytics, musisz to zrobić, aby mierzyć zmiany współczynnika 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 Analytics konsoli Firebase 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.

Utwórz nowy eksperyment

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

  • 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ą przykładowego kodu powyżej oraz inne dane, które chcesz śledzić.

Po opublikowaniu eksperymentu musisz poczekać, aż zbierze on wystarczającą ilość danych, aby można było uzyskać jednoznaczne wyniki.

Informacje o tym, jak monitorować eksperyment i wdrażać skuteczne warianty, znajdziesz w dokumentacji Firebase A/B Testing.