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 Zasady Apple dotyczące prywatności użytkownika i wykorzystywania danych oraz dokumentacji Apple dotyczącej przejrzystości ś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 Google Analytics, co może wymagać dostępu do IDFA.
Tabela poniżej zawiera listę usług Firebase dostępnych na platformach Apple oraz opisuje, jak funkcje poszczególnych usług są ograniczane, 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 |
Dotknięte integracje z Firebase
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 z wyjaśnieniem przed poproszeniem o uprawnienia. Na ekranie z wyjaśnieniem możesz informować użytkowników o tym, jak Twoja aplikacja wykorzystuje identyfikator IDFA przed poproszeniem o dostęp.
Jeśli jesteś wydawcą aplikacji AdMob lub Ad Managera, rozważ skorzystanie z Funding Choices, które automatycznie uzyskuje zgodę na wyświetlanie reklam spersonalizowanych i na śledzenie użytkownika 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.
Dodawanie In-App Messaging do 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. Jeśli użytkownik kliknie OK, wyświetl komunikat systemu za pomocą mechanizmu 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 rejestrujesz zdarzenia Google Analytics, musisz to zrobić, aby mierzyć zmiany współczynnika 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.
}
}
Tworzenie nowego zdarzenia 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 oraz wszystkie 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.