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 Apple dotyczącej ochrony prywatności i wykorzystywania danych oraz dokumentacji Apple App Tracking Transparency.
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, które są dostępne na platformach Apple, i opisujemy, jak wpływa to na ich funkcjonalność, 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 Testing z Google 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 Crashlytics z Google 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 |
Integracje z Firebase, których to dotyczy
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 lub wyjaśniający, zanim poprosi o zgodę. Na ekranie z wyjaśnieniem 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 na platformie AdMob lub w usłudze Ad Manager, rozważ skorzystanie z usługi Funding Choices, która umożliwia uzyskiwanie zgody na wyświetlanie reklam spersonalizowanych oraz automatyczne śledzenie użytkowników 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.
Dodaj In-App Messaging do swojej 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. Gdy użytkownik kliknie OK, wyświetli się prompt systemowy w ramach 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 zostanie umieszczony w aplikacji, utwórz w konsoli Firebase wiadomość wyświetlaną w aplikacji.
- W konsoli Firebase utwórz nową kampanię In-App Messaging.
- Wstaw do wiadomości w aplikacji odpowiednie treści i ustaw zdarzenie
app_launch
jako wyzwalacz wiadomości. - 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 zdążysz zarejestrować zdarzenia Google Analytics, musisz to zrobić, aby mierzyć zmiany w częstotliwości 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.
}
}
Utwórz nowe zdarzenie 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, a także wszelkie 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.