AdServices für Android konfigurieren

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.

  1. Fügen Sie Ihrem Projekt ein Maven-Repository hinzu.
  2. Die Abhängigkeiten der Jetpack-Bibliothek für ads-adservices müssen in der build.gradle für deine App oder dein Modul.
  3. Verwenden Sie APIs aus den androidx.privacysandbox.ads.adservices.*-Paketen.
  4. 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