Configurer AdServices

Lorsque vous lisez la documentation concernant la Privacy Sandbox sur Android, cliquez sur le bouton Preview développeur ou Bêta pour sélectionner la version du programme que vous utilisez, car les instructions peuvent varier.


Suivez les instructions ci-dessous pour déclarer des autorisations spécifiques à l'API et configurer l'accès du SDK aux ressources gérées par l'API ciblée.

Déclarer des autorisations spécifiques à l'API AdServices

L'accès à chaque PPAPI nécessite une autorisation normal des services publicitaires. Dans le fichier manifeste, déclarez les autorisations d'accès appropriées qui correspondent aux API nécessaires à votre application ou à votre SDK.

API Attribution Reporting :

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

API Attribution Reporting (avec rapports de débogage) :

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

Si vous souhaitez recevoir des rapports de débogage avec l'API Attribution Reporting, incluez l'autorisation AD_ID :

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

Si votre projet dépend de modules ou de SDK, il est possible qu'ils déclarent déjà les autorisations requises des services publicitaires dans leurs fichiers manifestes. Par défaut, la compilation Gradle fusionne tous les fichiers manifestes en un seul fichier manifeste empaqueté dans votre application. Utilisez la vue Merged Manifest (Fichier manifeste fusionné) pour vérifier que les autorisations appropriées sont utilisées.

Si vous souhaitez empêcher la fusion d'autorisations dans votre application via des dépendances telles que les SDK, incluez le repère de nœud remove pour les autorisations concernées. L'exemple suivant montre comment empêcher la fusion de l'autorisation Topics.

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

Configurer des services publicitaires spécifiques aux API

Comme pour les autorisations d'accès PPAPI, chaque API possède une entrée correspondante dans la configuration des services publicitaires. Cette configuration vous permet de contrôler précisément l'accès aux ressources gérées par les API de votre application ou du SDK intégré. Dans le fichier manifeste, spécifiez une propriété adservicesConfig comme indiqué dans l'exemple suivant :

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

      ...
</application>

Spécifiez la ressource XML des services publicitaires référencée dans le fichier manifeste, telle que res/xml/ad_services_config.xml. Pour chaque API protégeant la confidentialité applicable à votre application (ou SDK intégré), définissez l'attribut allowAllToAccess sur true pour accorder l'accès à tous les appelants.

Vous pouvez également utiliser l'attribut allowAdPartnersToAccess pour accorder un accès précis aux API pour chaque technologie publicitaire. Vous devrez fournir la liste des ID de compte d'enregistrement des développeurs obtenus via l'enregistrement. Si l'attribut allowAllToAccess est défini sur true, il est prioritaire sur tous les ID de compte d'enregistrement spécifiés dans l'attribut allowAdPartnersToAccess.

Les plates-formes de technologie publicitaire doivent également s'assurer que les clients d'applications accordent correctement l'accès aux API de protection de la confidentialité requises dans la configuration des services publicitaires.

L'exemple suivant montre comment spécifier un accès étendu pour autoriser tout ID de compte d'enregistrement à accéder à toutes les API protégeant la confidentialité :

<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'exemple suivant montre comment accorder un accès précis pour chaque API protégeant la confidentialité à des ID de compte d'enregistrement spécifiques :

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