Fordern Sie eine vom Nutzer zurücksetzbare Werbe-ID an, die Teil von Android Jetpack ist.
Aus Datenschutzgründen hat es sich bei allen Android-Apps bewährt, vom Nutzer zurücksetzbare Kennungen zu verwenden. Eine solche Kennung ist eine Werbe-ID, mit der ein bestimmter Nutzer für Anwendungsfälle wie personalisierte Werbung eindeutig identifiziert werden kann.
Sie können die Werbe-ID-Bibliothek verwenden, um eine standardisierte Lösung für das Anzeigen-Tracking auf allen Geräten zu unterstützen, auf denen Ihre App ausgeführt wird. Diese Bibliothek ist auf Geräten mit Android 4.0 (API-Level 14) und höher verfügbar und definiert eine Schnittstelle für die Interaktion mit Anzeigenanbietern auf Systemebene. Über diese Oberfläche kann Ihre App konsistente Werbe-ID-Werte erhalten.
Der in der Werbe-ID-Bibliothek enthaltene Anzeigenanbieter definiert auch einen Standard-Intent zum Öffnen eines Einstellungsbildschirms, den der Anzeigenanbieter implementiert. Auf diesem Einstellungsbildschirm können Nutzer ihre Werbe-ID zurücksetzen und personalisierte Werbung deaktivieren.
In diesem Leitfaden wird erläutert, wie Sie mithilfe des Clientmoduls der Werbe-ID-Bibliothek eine konsistente Werbe-ID für jeden Nutzer des Geräts abrufen. Anschließend bietet dieser Leitfaden einen Überblick über die Architektur der Bibliothek.
Clientanwendung konfigurieren
Durch die Interaktion mit dem Clientmodul der Werbe-ID-Bibliothek kann Ihre App eine konsistente Werbe-ID abrufen, die den Nutzer repräsentiert, der mit der App interagiert.
Die Werbe-ID wird mit Version 3 des UUID-Formats (Universally Unique Identifier) oder einem entsprechenden 128-Bit-Format dargestellt:
38400000-8cf0-11bd-b23e-10b96e40000d
Die Werbe-ID-Bibliothek normalisiert den Rückgabewert nach Bedarf, um IDs in diesem Format bereitzustellen.
So rufen Sie die vom Nutzer zurücksetzbare Werbe-ID für Ihre App ab:
Prüfen Sie, ob ein Anzeigenanbieter verfügbar ist, indem Sie
AdvertisingIdClient.isAdvertisingIdProviderAvailable()
aufrufen. Wenn diese Methodefalse
zurückgibt, sollte Ihre App andere Methoden zum Ausführen aller erforderlichen Anwendungsfälle für das Anzeigen-Tracking verwenden.Die Details zur Anzeigen-ID einschließlich der Werbe-ID können Sie durch Aufrufen von
AdvertisingIdClient.getAdvertisingIdInfo()
abrufen. Die Werbe-ID-Bibliothek führt diese Methode in einem Worker-Thread aus und verwendet ein Verbindungszeitlimit von 10 Sekunden.
Im folgenden Code-Snippet sehen Sie, wie die Werbe-ID zusammen mit anderen Informationen vom Anzeigenanbieter abgerufen wird:
Groovig
dependencies { implementation 'androidx.ads:ads-identifier:1.0.0-alpha01' // Used for the calls to addCallback() in the snippets on this page. implementation 'com.google.guava:guava:28.0-android' }
Kotlin
dependencies { implementation("androidx.ads:ads-identifier:1.0.0-alpha01") // Used for the calls to addCallback() in the snippets on this page. implementation("com.google.guava:guava:28.0-android") }
Kotlin
// Used for the call to addCallback() within this snippet. import com.google.common.util.concurrent.Futures.addCallback private fun determineAdvertisingInfo() { if (AdvertisingIdClient.isAdvertisingIdProviderAvailable()) { val advertisingIdInfoListenableFuture = AdvertisingIdClient.getAdvertisingIdInfo(applicationContext) addCallback(advertisingIdInfoListenableFuture, object : FutureCallback<AdvertisingIdInfo> { override fun onSuccess(adInfo: AdvertisingIdInfo?) { val id: String = adInfo?.id val providerPackageName: String = adInfo?.providerPackageName val isLimitTrackingEnabled: Boolean = adInfo?.isLimitTrackingEnabled } // Any exceptions thrown by getAdvertisingIdInfo() // cause this method to be called. override fun onFailure(t: Throwable) { Log.e("MY_APP_TAG", "Failed to connect to Advertising ID provider.") // Try to connect to the Advertising ID provider again or fall // back to an ad solution that doesn't require using the // Advertising ID library. } }, Executors.newSingleThreadExecutor()) } else { // The Advertising ID client library is unavailable. Use a different // library to perform any required ad use cases. } }
Java
// Used for the call to addCallback() within this snippet. import com.google.common.util.concurrent.Futures; private void determineAdvertisingInfo() { if (AdvertisingIdClient.isAdvertisingIdProviderAvailable()) { ListenableFuture<AdvertisingIdInfo> advertisingIdInfoListenableFuture = AdvertisingIdClient.getAdvertisingIdInfo(getApplicationContext()); Futures.addCallback(advertisingIdInfoListenableFuture, new FutureCallback<AdvertisingIdInfo>() { @Override public void onSuccess(AdvertisingIdInfo adInfo) { String id = adInfo.getId(); String providerPackageName = adInfo.getProviderPackageName(); boolean isLimitTrackingEnabled = adInfo.isLimitTrackingEnabled(); // Any exceptions thrown by getAdvertisingIdInfo() // cause this method to be called. @Override public void onFailure(Throwable throwable) { Log.e("MY_APP_TAG", "Failed to connect to Advertising ID provider."); // Try to connect to the Advertising ID provider again // or fall back to an ad solution that doesn't require // using the Advertising ID library. } }); } else { // The Advertising ID client library is unavailable. Use a different // library to perform any required ad use cases. } }
Architektur der Werbe-ID-Bibliothek
In Abbildung 1 ist die Struktur der Werbe-ID-Bibliothek dargestellt. Die Bibliothek besteht aus den folgenden Modulen:
- Ein Clientmodul ist eine schlanke Schicht in Apps.
- Ein Anbietermodul, das vom Gerätehersteller bereitgestellt wird. Für die Implementierungen dieses Moduls muss eine Einstellungs-UI definiert werden, über die Nutzer ihre Werbe-ID zurücksetzen und die Einstellungen für das Anzeigen-Tracking ändern können.
Das Clientmodul kommuniziert mit dem Anbietermodul, um Werbe-IDs und Nutzereinstellungen in Bezug auf das Anzeigen-Tracking abzurufen.
Umgang der Bibliothek mit mehreren Anbietern
Ein Gerät kann mehrere Anzeigenanbieter auf Systemebene gleichzeitig unterstützen. Wenn die Werbe-ID-Bibliothek eine solche Situation erkennt, wird dafür gesorgt, dass Ihre App Informationen immer vom selben Anbieter abruft, vorausgesetzt, der Anbieter bleibt verfügbar. Dadurch bleibt die Werbe-ID einheitlich.
Wenn sich die verfügbaren Anzeigenanbieter im Laufe der Zeit ändern und Ihre App mit einem anderen Anbieter von Anzeigen-IDs interagiert, wird dieser neue Anbieter ebenfalls für alle anderen Client-Apps verwendet. Ihre App zeigt dasselbe Verhalten wie wenn der Nutzer das Zurücksetzen seiner Werbe-ID angefordert hätte.
Die Bibliothek der Werbe-ID-Anbieter verwendet die folgende deterministische Reihenfolge, um die Anbieter in eine bestimmte Reihenfolge zu bringen:
- Anbieter, die die Berechtigung
androidx.ads.identifier.provider.HIGH_PRIORITY
angefordert haben. - Anbieter, die auf dem Gerät am längsten installiert sind.
- Anbieter, die in alphabetischer Reihenfolge zuerst aufgeführt werden.