A medida que leas la documentación de Privacy Sandbox en Android, usa el botón Versión preliminar para desarrolladores o Beta para seleccionar la versión del programa con la que estás trabajando, ya que las instrucciones pueden variar.
Sigue las instrucciones que se indican a continuación para declarar permisos específicos de APIs y configurar el acceso de SDKs a los recursos que administra la API objetivo.
Declara permisos específicos de la API de AdServices
El acceso a cada PPAPI requiere un permiso normal
de servicios de anuncios. En tu manifiesto, declara los permisos de acceso adecuados que correspondan a las APIs necesarias en tu app o SDK.
API de Attribution Reporting:
<uses-permission android:name="android.permission.ACCESS_ADSERVICES_ATTRIBUTION" />
API de Attribution Reporting (con informes de depuración):
<uses-permission android:name="android.permission.ACCESS_ADSERVICES_ATTRIBUTION" />
<uses-permission android:name="android.permission.ACCESS_ADSERVICES_AD_ID" />
API de Protected Audience/Custom Audience:
<uses-permission android:name="android.permission.ACCESS_ADSERVICES_CUSTOM_AUDIENCE" />
API de Topics:
<uses-permission android:name="android.permission.ACCESS_ADSERVICES_TOPICS" />
(Opcional) Si quieres recibir informes de depuración con la API de Attribution Reporting, incluye el permiso AD_ID. Para ello, agrega lo siguiente:
<uses-permission android:name="android.permission.ACCESS_ADSERVICES_AD_ID" />
Si tu proyecto tiene dependencias en módulos o SDKs, es posible que ya declaren los permisos necesarios de los servicios de anuncios en sus archivos de manifiesto. De forma predeterminada, la compilación de Gradle combina todos los archivos de manifiesto en uno solo que se empaqueta en la app. Usa la vista Manifiesto combinado para verificar que se usen los permisos correctos.
Si necesitas evitar que los permisos se combinen con tu app a través de dependencias, como los SDKs, incluye el marcador de nodos remove
para los permisos en particular. En el siguiente ejemplo, se muestra cómo evitar que se combine el permiso de Topics.
<uses-permission android:name="android.permission.ACCESS_ADSERVICES_TOPICS"
tools:node="remove" />
Configura servicios de anuncios específicos de la API
Al igual que los permisos de acceso a la PPAPI, cada API tiene una entrada correspondiente en la configuración de servicios de anuncios. Esta configuración te brinda un control detallado de los recursos que administran las APIs de tu app o SDK incorporado. En tu manifiesto, especifica una propiedad adservicesConfig
, como se muestra en el siguiente ejemplo:
<application ...>
...
<property android:name="android.adservices.AD_SERVICES_CONFIG"
android:resource="@xml/ad_services_config" />
...
</application>
Especifica el recurso XML de servicios de anuncios al que se hace referencia en el manifiesto, como res/xml/ad_services_config.xml
. Para cada API que preserva la privacidad aplicable a tu app (o SDK incorporado), establece el atributo allowAllToAccess
en true
para otorgar acceso a cualquier llamador.
Como alternativa, puedes usar el atributo allowAdPartnersToAccess
para otorgar acceso detallado a la API para cada tecnología publicitaria. Deberás proporcionar una lista de los IDs de las cuentas de inscripción de desarrollador obtenidos con la inscripción. Si el atributo allowAllToAccess
está configurado en true
, este tiene prioridad sobre cualquier ID de las cuentas de inscripción especificado en el atributo allowAdPartnersToAccess
.
Las plataformas de tecnología publicitaria también deben asegurarse de que sus clientes de apps otorguen acceso a las APIs que preservan la privacidad necesarias en la configuración de los servicios de anuncios.
En el siguiente ejemplo, se muestra cómo especificar un acceso amplio para permitir el acceso de cualquier ID de las cuentas de inscripción a todas las APIs que preservan la privacidad:
<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>
En el siguiente ejemplo, se muestra cómo especificar un acceso detallado a cada API que preserva la privacidad para IDs de cuentas de inscripción específicas:
<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>