W systemie iOS 14.5 firma Apple wymaga, aby deweloperzy uzyskiwali zgodę użytkownika za pomocą platformy App Tracking Transparency na śledzenie go lub uzyskiwanie dostępu do identyfikatora wyświetlania reklam na urządzeniu (IDFA). Więcej informacji znajdziesz w dokumentacji Prywatność użytkowników i wykorzystywanie danych przez Apple oraz Przejrzystość ś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 usługami,Google Analytics które mogą wymagać dostępu 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 poszczególnych usług.
Usługa | Wpływ niedostępności 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 | Nie ma wpływu na dostawców Authentication i własnych Authentication, takich jak logowanie przez Google i uwierzytelnianie telefoniczne. |
Cloud Firestore | Brak wpływu |
Cloud Functions | Brak wpływu |
Cloud Messaging | W połączeniu z Google Analytics usługa Google Analytics będzie automatycznie rejestrować 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 dostarcza dane o awariach w czasie rzeczywistym i ślady nawigacyjne, nie zależy od identyfikatora IDFA. |
Dynamic Links | Nie ma to wpływu na funkcję otwierania linków. W przypadku używania z Google Analytics atrybucja zdarzeń konwersji z kliknięcia linku jest niedostępna. |
In-App Messaging | Brak wpływu |
Firebase instalacji | 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 połączeniu z parametrem Google Analytics parametr Remote Config nie zezwala na automatyczne tworzenie właściwości użytkownika na potrzeby kierowania bez dostępu do identyfikatora IDFA. |
1 Firebase AI Logic wcześniej nosiło nazwę „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łynie brak dostępu do identyfikatora IDFA.
Usługa | Wpływ niedostępności identyfikatora IDFA |
---|---|
Google Analytics | Analytics rejestrowanie zdarzeń, raportowanie zdarzeń i pomiar konwersji nie ulegną zmianie, ale atrybucja będzie miała wpływ na dostępność identyfikatora IDFA. Więcej informacji o odpowiedzi Google na zmiany w iOS 14 znajdziesz w naszym poście na blogu. |
Wyświetlanie prośby o zezwolenie na śledzenie w aplikacji na iOS 14
Jeśli chcesz, aby Twoja aplikacja na urządzenia Apple miała dostęp do IDFA, możesz dodać do niej platformę App Tracking Transparency firmy Apple i poprosić użytkowników o zezwolenie na śledzenie lub dostęp do ich identyfikatorów IDFA.
Wiele aplikacji wyświetla ekran wstępny z wyjaśnieniem przed wyświetleniem prośby o przyznanie uprawnień. Na ekranie z wyjaśnieniem możesz informować użytkowników o tym, jak Twoja aplikacja wykorzystuje identyfikator IDFA, zanim poprosisz ich 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, a także zgody na śledzenie użytkownika zgodnie z wytycznymi Apple. Więcej informacji znajdziesz na AdMobstronie Zgoda użytkowników na wykorzystanie danych i wyświetlanie wiadomości.
W tym przewodniku znajdziesz rozwiązanie, które wykorzystuje Firebase In-App Messaging do tworzenia i wyświetlania ekranu z wyjaśnieniem przed wyświetleniem prośby o dostęp do śledzenia w ramach technologii App Tracking Transparency.
stanowi akceptowalny ekran wyjaśniający.Dodawanie In-App Messaging do aplikacji
Postępuj zgodnie z instrukcjami, aby dodać In-App Messaging do aplikacji na urządzenia Apple.
Obsługa zamykania 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ę, np. na urządzeniach z iOS 13. Sprawdź, czy ten kod jest wykonywany bezpośrednio po tagu 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
do obsługi zdarzeń, gdy użytkownik zamknie ekran z wyjaśnieniem. Jeśli użytkownik kliknie OK, wyświetl monit 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
Gdy kod zostanie umieszczony w aplikacji, utwórz wiadomość w aplikacji w Firebasekonsoli.
- W Firebasekonsoli utwórz nową In-App Messagingkampanię.
- Wypełnij wiadomości w aplikacji wybranymi treściami i ustaw, aby wiadomość była wywoływana przez zdarzenie
app_launch
. - 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: przeprowadź test A/B różnych ekranów z wyjaśnieniami
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śnieniami.
Firebase A/B Testing automatycznie tworzy grupy eksperymentalne i pomaga wizualizować, jak użytkownicy wchodzą w interakcję z różnymi wersjami aplikacji.
Rejestrowanie uprawnień do śledzenia aplikacji
Jeśli podczas obsługi odpowiedzi na prośbę o uprawnienia do śledzenia aktywności 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 Firebase konsoli otwórz menu Konwersje, a potem dodaj nowe zdarzenie konwersji o tej samej nazwie co zdarzenie zarejestrowane za pomocą powyższego przykładowego kodu.
Utwórz nowy eksperyment
W menu In-App Messaging konsoli kliknij Nowy eksperyment, a potem postępuj zgodnie z instrukcjami wyświetlanymi na kolejnych 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 pewien czas zbierać dane, zanim będzie można uzyskać jednoznaczne wyniki.
Więcej informacji o tym, jak monitorować eksperyment i wdrażać skuteczną wersję, znajdziesz w Firebase A/B Testingdokumentacji.