Seit iOS 14.5 verlangt Apple von Entwicklern, dass sie die Erlaubnis des Nutzers über das App Tracking Transparency-Framework einholen, um ihn zu tracken oder auf die Werbe-ID (IDFA) seines Geräts zuzugreifen. Weitere Informationen finden Sie in der Apple-Dokumentation zu Datenschutz und Datennutzung und zur App-Tracking-Transparenz.
Betroffene Firebase-Produkte
Firebase SDKs greifen nicht auf die IDFA zu, einige haben jedoch Integrationen mit Google Analytics, die möglicherweise einen IDFA-Zugriff beinhalten.
In der folgenden Tabelle sind die Firebase-Produkte aufgeführt, die auf Apple-Plattformen verfügbar sind. Außerdem wird beschrieben, wie sich die Funktionalität der einzelnen Produkte auswirkt, wenn auf die IDFA nicht zugegriffen werden kann.
| Produkt | Auswirkungen, wenn die IDFA nicht verfügbar ist |
|---|---|
| A/B Testing | Einige Targeting-Daten (z. B. demografische Daten) in der A/B Testing-Integration mit Google Analytics werden aus der IDFA abgeleitet. In Apps ohne Zugriff auf die IDFA ist dieses Targeting nicht verfügbar. |
| Firebase AI Logic 1 | Keine Auswirkungen |
| App Check | Keine Auswirkungen |
| App Distribution | Keine Auswirkungen |
| Authentication | Keine Auswirkungen auf Authentication- und Erstanbieter-Authentication-Anbieter wie Google Log-in und Telefonauthentifizierung. |
| Cloud Firestore | Keine Auswirkungen |
| Cloud Functions | Keine Auswirkungen |
| Cloud Messaging | Wenn Google Analytics mit Google Analytics verwendet wird, werden in automatisch einige Conversion-Ereignisse im Zusammenhang mit FCM protokolliert. Für die Attribution dieser Ereignisse ist der IDFA-Zugriff erforderlich. |
| Cloud Storage | Keine Auswirkungen |
| Crashlytics | Keine Auswirkung. Die Einbindung von Crashlytics in Google Analytics, die Echtzeit-Absturzdaten und Navigationspfade bereitstellt, ist nicht von der IDFA abhängig. |
| In-App Messaging | Keine Auswirkungen |
| Firebase Installationen | Keine Auswirkungen |
| Performance Monitoring | Keine Auswirkungen |
| Realtime Database | Keine Auswirkungen |
| Remote Config | In Kombination mit Google Analytics lässt Remote Config keine automatisch erstellten Nutzereigenschaften für das Targeting ohne IDFA-Zugriff zu. |
| VERWORFENE ODER NICHT UNTERSTÜTZTE BIBLIOTHEKEN | |
| Dynamic Links | Keine Auswirkungen auf die Funktion zum Öffnen von Links. Bei Verwendung mit Google Analytics ist die Attribution für Link-Conversion-Ereignisse nicht verfügbar. |
| InstanceID | Keine Auswirkungen |
| Firebase ML | Keine Auswirkungen |
1 Firebase AI Logic hieß früher „Vertex AI in Firebase“.
Betroffene Firebase-Integrationen
In der folgenden Tabelle sind in Firebase integrierte Produkte aufgeführt, die betroffen sind, wenn auf die IDFA nicht zugegriffen werden kann.
| Produkt | Auswirkungen, wenn die IDFA nicht verfügbar ist |
|---|---|
| Google Analytics | Analytics-Ereignisprotokollierung, Ereignisberichte und Conversion-Analyse sind nicht betroffen, aber die Attribution ist betroffen, wenn auf die IDFA nicht zugegriffen werden kann. Weitere Informationen zur Reaktion von Google auf iOS 14 finden Sie in unserem Blogpost. |
Anfordern der Berechtigung zum App-Tracking unter iOS 14
Wenn Sie möchten, dass Ihre Apple-Anwendung auf die IDFA zugreifen kann, können Sie das App Tracking Transparency-Framework von Apple in Ihre App einbinden und die Berechtigung zum Tracking oder Zugriff auf die IDFA Ihrer Nutzer anfordern.
In vielen Anwendungen wird ein Infofeld eingeblendet, bevor die Berechtigung angefordert wird. So können Sie Nutzern mehr Informationen dazu bieten, wie in Ihrer App die IDFA verwendet wird, bevor Sie Zugriff anfordern.
Wenn Sie ein AdMob- oder Ad Manager-App-Publisher sind, sollten Sie Funding Choices verwenden. Damit wird die Einwilligung für die Auslieferung personalisierter Anzeigen sowie die Einwilligung für das Tracking des Nutzers gemäß den Apple-Richtlinien automatisch eingeholt. Weitere Informationen finden Sie auf der Seite AdMob-Einwilligung mit User Messaging.
In der folgenden Anleitung wird eine Lösung mit Firebase In-App Messaging beschrieben, mit der Sie einen Erklärungsbildschirm erstellen und anzeigen können, bevor Sie über die App-Tracking-Transparenz den Zugriff auf das Tracking anfordern.
In-App Messaging zur App hinzufügen
Folgen Sie der Anleitung, um In-App Messaging zu Ihrer Apple-Anwendung hinzuzufügen.
Schließen von In-App-Nachrichten verarbeiten
Vermeiden Sie es, den Erklärungsbildschirm auf Geräten anzuzeigen, auf denen der Dialog zur Einholung von Einwilligungen nicht angezeigt werden kann, z. B. auf Geräten mit iOS 13. Dieser Code muss unmittelbar nach FirebaseApp.configure() ausgeführt werden.
Swift
if NSClassFromString("ATTrackingManager") == nil {
// Avoid showing the App Tracking Transparency explainer if the
// framework is not linked.
InAppMessaging.inAppMessaging().messageDisplaySuppressed = true
}
Implementieren Sie das Protokoll InAppMessagingDisplayDelegate, um Ereignisse zu verarbeiten, wenn der Nutzer den Erklärungsbildschirm schließt. Wenn der Nutzer auf „OK“ tippt, wird die Systemaufforderung über das App Tracking Transparency-Framework angezeigt.
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
}
}
In-App Messaging-Kampagne erstellen
Sobald der Code in Ihrer Anwendung vorhanden ist, erstellen Sie in der Firebase-Konsole eine In-App-Nachricht.
- Erstellen Sie in der Firebase-Konsole eine neue In-App Messaging-Kampagne.
- Füllen Sie die In-App-Nachrichten mit den gewünschten Inhalten und legen Sie fest, dass die Nachricht beim Ereignis
app_launchausgelöst wird. - Achten Sie im Bereich Ausrichtung darauf, dass die Kampagne nur auf die neueste Version Ihrer App und höher ausgerichtet ist.
Sie können das Erscheinungsbild des Erklärungsbildschirms anpassen. Folgen Sie dazu der Anleitung in der In-App Messaging-Dokumentation.
Optional: A/B-Test verschiedener Erklärungsbildschirme
In-App Messaging ist in Firebase A/B Testing integriert. Damit können Sie mit verschiedenen Erklärbildschirmen experimentieren.
Firebase A/B Testing erstellt automatisch Testgruppen und hilft Ihnen, die Interaktion von Nutzern mit verschiedenen Varianten Ihrer Anwendung zu visualisieren.
App-Tracking-Berechtigungen aufzeichnen
Wenn Sie bei der Verarbeitung der Antwort auf die App-Tracking-Berechtigungen kein Google Analytics-Ereignis protokolliert haben, müssen Sie dies tun, um Änderungen der Antwortrate bei einem A/B-Test zu messen.
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.
}
}
Neues Conversion-Ereignis erstellen
Rufen Sie in der Firebase-Konsole im Abschnitt Analytics das Menü Conversions auf und fügen Sie ein neues Conversion-Ereignis mit demselben Namen wie das Ereignis hinzu, das mit dem obigen Beispielcode protokolliert wurde.
Neuen Test erstellen
Klicken Sie im In-App Messaging-Menü der Console auf Neuer Test und folgen Sie der Anleitung auf den folgenden Bildschirmen.
- Achten Sie im Bereich Ausrichtung darauf, dass die Kampagne nur auf die neueste Version Ihrer App und höher ausgerichtet ist.
- Wählen Sie im Bereich Zielvorhaben das Conversion-Ereignis aus, das Sie mit dem Beispielcode oben erstellt haben, sowie alle anderen Messwerte, die Sie erfassen möchten.
Nachdem Sie Ihren Test veröffentlicht haben, müssen Sie einige Zeit Daten erfassen, bevor Sie aussagekräftige Ergebnisse erhalten.
In der Firebase A/B Testing-Dokumentation finden Sie Informationen dazu, wie Sie einen Test beobachten und eine erfolgreiche Variante einführen.