Folgen Sie der Anleitung unten, um API-spezifische Berechtigungen zu deklarieren und SDK-Zugriff auf Ressourcen, die von der Ziel-API verwaltet werden.
AdServices API-spezifische Berechtigungen deklarieren
Für den Zugriff auf jede PPAPI ist eine normal
-Berechtigung für Ad Services erforderlich. In der
Manifest sind, legen Sie die entsprechenden Zugriffsberechtigungen fest, die den APIs entsprechen.
die in Ihrer App oder im SDK erforderlich sind.
Attribution Reporting API:
<uses-permission android:name="android.permission.ACCESS_ADSERVICES_ATTRIBUTION" />
Attribution Reporting API (mit Debugging-Berichten):
<uses-permission android:name="android.permission.ACCESS_ADSERVICES_ATTRIBUTION" />
<uses-permission android:name="android.permission.ACCESS_ADSERVICES_AD_ID" />
Protected Audience / Custom Audience API:
<uses-permission android:name="android.permission.ACCESS_ADSERVICES_CUSTOM_AUDIENCE" />
Topics API:
<uses-permission android:name="android.permission.ACCESS_ADSERVICES_TOPICS" />
Optional: Mit Attribution Reporting Berichte zur Fehlerbehebung erhalten API die Berechtigung „AD_ID“ hinzufügen:
<uses-permission android:name="android.permission.ACCESS_ADSERVICES_AD_ID" />
Wenn bei Ihrem Projekt Abhängigkeiten von Modulen oder SDKs bestehen, werden diese möglicherweise bereits deklariert. die erforderlichen Berechtigungen für Werbedienste in ihren Manifestdateien. Standardmäßig enthält der Parameter Gradle Build führt alle Manifestdateien in einer Manifestdatei zusammen, die in Ihrer App verpackt sind. Verwenden Sie die Ansicht Merged Manifest (Zusammengeführtes Manifest), um zu prüfen, ob das ob die richtigen Berechtigungen verwendet werden.
Wenn du verhindern möchtest, dass eine Berechtigung mit deiner App zusammengeführt wird
über Abhängigkeiten wie SDKs zu verwenden, fügen Sie die Knotenmarkierung remove
für
die jeweiligen Berechtigungen. Das folgende Beispiel zeigt, wie Sie
der Topics-Berechtigung zusammengeführt.
<uses-permission android:name="android.permission.ACCESS_ADSERVICES_TOPICS"
tools:node="remove" />
API-spezifische Ad Services konfigurieren
Ähnlich wie bei den PPAPI-Zugriffsberechtigungen hat jede API einen entsprechenden Eintrag in die Konfiguration der Werbedienste. Mit dieser Konfiguration erhalten Sie den Zugriff auf Ressourcen, die von den APIs in Ihrer App verwaltet werden, differenziert das eingebettete SDK.
Gib in deinem Manifest ein adservicesConfig
-Attribut an, wie hier gezeigt
im folgenden
Beispiel:
<application ...>
...
<property android:name="android.adservices.AD_SERVICES_CONFIG"
android:resource="@xml/ad_services_config" />
...
</application>
Geben Sie die XML-Ressource für die Anzeigendienste an, auf die im Manifest verwiesen wird, z. B.:
res/xml/ad_services_config.xml
Für jede datenschutzfreundliche API, die für
in Ihrer App (oder dem eingebetteten SDK) das Attribut allowAllToAccess
auf true
setzen,
Zugriff für alle Aufrufer gewähren.
Alternativ können Sie das Attribut allowAdPartnersToAccess
verwenden, um
Detaillierter API-Zugriff für jede Anzeigentechnologie. Sie müssen eine Liste mit
Konto-IDs für die Entwicklerregistrierung, die durch die Registrierung abgerufen wurden. Wenn die
Das Attribut „allowAllToAccess
“ ist auf true
gesetzt und dieses Attribut hat Vorrang
über alle Registrierungskonto-IDs, die in der allowAdPartnersToAccess
angegeben sind
.
AdTech-Plattformen sollten auch darauf achten, dass ihre App-Kunden die erforderlichen Zugriff auf die erforderlichen datenschutzfreundlichen APIs in der Konfiguration der Werbedienste
Das folgende Beispiel zeigt, wie Sie einen umfassenden Zugriff festlegen, um jede Registrierung zuzulassen Konto-ID-Zugriff auf alle datenschutzfreundlichen APIs:
<ad-services-config>
<!-- Attribution API -->
<attribution allowAllToAccess="true" />
<!-- Topics API -->
<topics allowAllToAccess="true" />
<!-- Protected Audience on Android API -->
<custom-audiences allowAllToAccess="true" />
</ad-services-config>
Das folgende Beispiel zeigt, wie Sie für jede Property einen detaillierten Zugriff datenschutzfreundliche API für bestimmte Registrierungskonto-IDs:
<ad-services-config>
<!-- Attribution API -->
<attribution allowAdPartnersToAccess="ENROLLMENT-ID" allowAllToAccess="false" />
<!-- Topics API -->
<includes-sdk-library name="ENROLLMENT-ID" />
<topics allowAdPartnersToAccess="ENROLLMENT-ID" allowAllToAccess="false" />
<!-- Protected Audience on Android API -->
<custom-audiences allowAdPartnersToAccess="ENROLLMENT-ID" allowAllToAccess="false" />
</ad-services-config>
Abhängigkeiten der Jetpack-Bibliothek deklarieren
Verwenden Sie für die Integration die ads-adservices-Jetpack-Bibliothek 1.0.0-beta01 oder höher. mit den datenschutzfreundlichen APIs der Privacy Sandbox. Mit dieser Bibliothek können Sie abstrahieren Sie Ihre App von Details auf Plattformebene und vereinfachen Sie die Integration mit datenschutzfreundliche APIs nutzen können.
- Fügen Sie Ihrem Projekt ein Maven-Repository hinzu.
- Die Abhängigkeiten der Jetpack-Bibliothek für ads-adservices müssen in der
build.gradle
für deine App oder dein Modul. - Verwenden Sie APIs aus den
androidx.privacysandbox.ads.adservices.*
-Paketen. - Die Jetpack-Bibliothek für ads-adservices bietet eine integrierte Kotlin-Koroutine Support. Unter Umständen müssen Sie die entsprechenden Lebenszyklus-bezogenen Abhängigkeiten für Ihr Projekt zur Verwaltung von Koroutinebereichen.
Verfügbarkeit der Version der Anzeigendienst-Erweiterungen prüfen
Wenn Sie die Jetpack-Bibliothek für Anzeigendienste für die Integration in
datenschutzfreundlichen APIs prüft die Bibliothek die Verfügbarkeit der
in der Funktion obtain()
angeforderte APIs. Die Funktion gibt null zurück,
Die angeforderte API ist auf dem Gerät nicht verfügbar. Im folgenden Beispiel sehen Sie,
TopicsManager
für die Topics API initialisieren Ähnlich funktioniert es bei
auf andere datenschutzfreundliche APIs zugreifen.
Kotlin
import androidx.privacysandbox.ads.adservices.topics.TopicsManager
// The initialization function will return null if the requested
// functionality is not available on the device.
val topicsManager = TopicsManager.obtain(context)
Java
import androidx.privacysandbox.ads.adservices.topics.TopicsManager;
// The initialization function will return null if the requested
// functionality is not available on the device.
TopicsManager topicsManager = TopicsManager.obtain(context);
Wenn Sie die AdServices APIs direkt im Extension SDK verwenden, überprüfen Sie die
AdServices Extensions-Version, die die AdServices APIs enthält, die Sie verwenden möchten.
In der API-Referenz können Sie die Version identifizieren, die eine bestimmte AdServices-
API wird eingeführt in. Zum Beispiel aus der API-Referenz für die Klasse TopicsManager
.
gibt an, dass sie unter „Ad Services Extensions 4“ hinzugefügt wurde. Verwenden Sie Folgendes:
bedingte Prüfungen zur Validierung von SDK-Erweiterungen, die AdServices APIs enthalten.
Kotlin
import android.os.ext.SdkExtensions
if (SDK_INT >= Build.VERSION_CODES.R && // The extensions API is available since R.
SdkExtensions.getExtensionVersion(SdkExtensions.AD_SERVICES) >= 4) {
// AdServices API is available.
...
}
Java
import android.os.ext.SdkExtensions;
if (SDK_INT >= Build.VERSION_CODES.R && // The extensions API is available since R.
SdkExtensions.getExtensionVersion(SdkExtensions.AD_SERVICES) >= 4) {
// AdServices API is available.
...
}
Zugriffsbeschränkung im Vordergrund
Der Zugriff auf die SDK Runtime und datenschutzfreundliche APIs ermöglicht Transparenz
ist auf Apps mit einer sichtbaren Aktivität oder mit einer
RunningAppProcessInfo
von IMPORTANCE_FOREGROUND