Configura AdServices per Android

Segui le istruzioni riportate di seguito per dichiarare le autorizzazioni specifiche dell'API e configurare Accesso dell'SDK alle risorse gestite dall'API di destinazione.

Dichiara le autorizzazioni specifiche dell'API AdServices

L'accesso a ogni PPAPI richiede un'autorizzazione normal per i servizi pubblicitari. Nel tuo manifest, dichiarare le autorizzazioni di accesso appropriate che corrispondono alle API necessari nella tua app o nel tuo SDK.

API Attribution Reporting:

<uses-permission android:name="android.permission.ACCESS_ADSERVICES_ATTRIBUTION" />

API Attribution Reporting (con report di debug):

<uses-permission android:name="android.permission.ACCESS_ADSERVICES_ATTRIBUTION" />
<uses-permission android:name="android.permission.ACCESS_ADSERVICES_AD_ID" />

API Protected Audience / custom Audience:

<uses-permission android:name="android.permission.ACCESS_ADSERVICES_CUSTOM_AUDIENCE" />

API Topics:

<uses-permission android:name="android.permission.ACCESS_ADSERVICES_TOPICS" />

(Facoltativo) Per ricevere report di debug con Attribution Reporting API, includi l'autorizzazione AD_ID:

<uses-permission android:name="android.permission.ACCESS_ADSERVICES_AD_ID" />

Se il tuo progetto ha dipendenze in moduli o SDK, questi potrebbero già dichiarare le autorizzazioni necessarie per i servizi pubblicitari nei rispettivi file manifest. Per impostazione predefinita, La build Gradle unisce tutti i file manifest in un unico file manifest, pacchettizzati nella tua app. Utilizza la vista File manifest unit per verificare che gli elementi vengano usate le autorizzazioni corrette.

Se devi impedire che alcune autorizzazioni vengano unite nella tua app tramite dipendenze come gli SDK, includi l'indicatore del nodo remove per le autorizzazioni specifiche. L'esempio seguente mostra come prevenire l'unione dell'autorizzazione Topics.

<uses-permission android:name="android.permission.ACCESS_ADSERVICES_TOPICS"
    tools:node="remove" />

Configurare servizi pubblicitari specifici per API

Analogamente alle autorizzazioni di accesso PPAPI, ogni API ha una voce corrispondente in la configurazione dei servizi pubblicitari. Questa configurazione ti offre un controllo granulare dell'accesso alle risorse gestite dalle API nella tua app oppure l'SDK incorporato.

Nel file manifest, specifica una proprietà adservicesConfig come mostrato nel seguente esempio:

<application ...>
      ...
    <property android:name="android.adservices.AD_SERVICES_CONFIG"
        android:resource="@xml/ad_services_config" />

      ...
</application>

Specifica la risorsa XML dei servizi pubblicitari a cui viene fatto riferimento nel file manifest, ad esempio res/xml/ad_services_config.xml. Per ogni API incentrata sulla tutela della privacy applicabile a nella tua app (o SDK incorporato), imposta l'attributo allowAllToAccess su true su concedere l'accesso a tutti i chiamanti.

In alternativa, puoi utilizzare l'attributo allowAdPartnersToAccess per concedere accesso all'API granulare per ogni tecnologia pubblicitaria. Dovrai fornire un elenco ID dell'account di registrazione sviluppatore ottenuti tramite la registrazione. Se L'attributo allowAllToAccess è impostato su true, questo attributo ha la precedenza su qualsiasi ID account di registrazione specificato in allowAdPartnersToAccess .

Le piattaforme di ad tech devono anche assicurarsi che i clienti dell'app concedano correttamente accesso alle API richieste che tutelano la privacy nella configurazione dei servizi pubblicitari.

L'esempio seguente mostra come specificare l'accesso ampio per consentire qualsiasi registrazione Accesso con ID account a tutte le API incentrate sulla tutela della privacy:

<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>

L'esempio seguente mostra come specificare un accesso granulare a API che tutela la privacy per ID account di registrazione specifici:

<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>

Dichiara le dipendenze della libreria Jetpack

Utilizza la libreria Jetpack ads-adservices 1.0.0-beta01 o successiva per l'integrazione con le API di Privacy Sandbox incentrate sulla tutela della privacy. Puoi utilizzare questa libreria per astrae la tua app dai dettagli a livello di piattaforma e semplifica l'integrazione con che tutelano la privacy.

  1. Aggiungi un repository Maven al progetto.
  2. Dichiara le dipendenze della libreria ads-adservices Jetpack nel build.gradle file per l'app o il modulo.
  3. Utilizza le API dei pacchetti androidx.privacysandbox.ads.adservices.*.
  4. La libreria Jetpack ads-adservices offre la coroutine Kotlin integrata assistenza in tempo reale. Potrebbe essere necessario incorporare il ciclo di vita delle dipendenze adatte al tuo progetto per gestire gli ambiti delle coroutine.

Verifica la disponibilità della versione delle estensioni dei servizi pubblicitari

Se utilizzi la libreria Jetpack di servizi pubblicitari per l'integrazione con che tutelano la privacy, la libreria verifica la disponibilità API richieste nella funzione obtain(). La funzione restituisce null se la funzione l'API richiesta non è disponibile sul dispositivo. L'esempio seguente illustra come inizializzare TopicsManager per l'API Topics. Funziona in modo simile per che accede ad altre API incentrate sulla tutela della privacy.

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);

Se utilizzi le API AdServices direttamente in Extension SDK, controlla la Versione di AdServices Extensions che include le API AdServices che vuoi utilizzare. Nel riferimento API, puoi identificare la versione di un particolare AdServices in cui viene introdotta l'API. Ad esempio, il riferimento API per la classe TopicsManager indica che è "Aggiunto in Ad Services Extensions 4". Utilizza quanto segue controlli condizionali per convalidare le estensioni SDK che contengono API AdServices.

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.
...
}

Limitazione dell'accesso in primo piano

Per garantire trasparenza, accedi a SDK Runtime e alle API che tutelano la privacy è limitato alle app con un'Attività visibile o con un RunningAppProcessInfo di IMPORTANCE_FOREGROUND.