Guía para desarrolladores sobre subastas de anuncios en el dispositivo destinadas a públicos personalizados y de remarketing, sin seguimiento entre sitios de terceros.
Si eres nuevo en la API de Protected Audience, lee la descripción general de la API de Protected Audience para obtener una explicación de alto nivel de la API.
Esta publicación se redactó para los desarrolladores como referencia técnica de la iteración más reciente de la API experimental de Protected Audience. Hay una demostración disponible de una implementación básica de la API de Protected Audience, al igual que las referencias de la API para compradores y vendedores de anuncios.
Estado de implementación
- The Protected Audience API proposal is now moving to general availability. Raise questions and follow discussion.
- Protected Audience API status of pending capabilities details changes and enhancements to the Protected Audience API API and features.
- Blink status
- Protected Audience API Chrome platform status: Specific to the Protected Audience API on Chrome.
- Ads API Chrome platform status: A collection of APIs to facilitate advertising: Protected Audience API, Topics, Fenced Frames and Attribution Reporting.
To be notified of status changes in the API, join the mailing list for developers.
¿Qué es la API de Protected Audience?
La API de Protected Audience es una API de Privacy Sandbox que se diseñó para publicar casos de uso de remarketing y de público personalizado, de modo que terceros no puedan usarla para hacer un seguimiento del comportamiento de navegación de los usuarios en diferentes sitios. La API permite que el navegador elija las subastas integradas en el dispositivo para elegir anuncios relevantes para los sitios web que el usuario visitó anteriormente.
La API de Protected Audience es el primer experimento que se implementa en Chromium dentro de la familia de propuestas TURTLEDOVE.
Prueba la API de Protected Audience
Referencia de API disponible
Este documento sirve como descripción general de la API de Protected Audience. Si buscas métodos y parámetros de API específicos, haz lo siguiente:
- Guía para compradores de
joinAdInterestGroup()
ygenerateBid()
. - Guía del vendedor de la API de Protected Audience
runAdAuction()
- Guía para compradores de
reportWin()
y guía para vendedores dereportResult()
- Soluciona problemas de la API de Protected Audience
También puedes leer las prácticas recomendadas sobre la latencia de la subasta de anuncios de la API de Protected Audience.
Demostración de la API de Protected Audience
En Protected-audience-demo.web.app/, puedes consultar una explicación de la implementación básica de la API de Protected Audience en los sitios de anunciantes y publicadores.
Probar esta API
Puedes probar la API de Protected Audience para un solo usuario en Chrome Beta 101.0.4951.26 y versiones posteriores en computadoras de escritorio:
- Habilita todas las APIs de privacidad en los anuncios de
chrome://settings/adPrivacy
. - Configura marcas desde la línea de comandos. La lista completa de las marcas de la API de Protected Audience disponibles se encuentra en la Búsqueda de código de Chromium.
Renderiza anuncios en iframes o marcos vallados
Los anuncios se pueden renderizar en un objeto <iframe>
o <fencedframe>
, según las marcas que se establezcan.
Si quieres usar <fencedframe>
para renderizar anuncios, haz lo siguiente:
--enable-features=InterestGroupStorage,AdInterestGroupAPI,Fledge,FencedFrames
Si quieres usar <iframe>
para renderizar anuncios, haz lo siguiente:
--enable-features=InterestGroupStorage,AdInterestGroupAPI,Fledge,AllowURNsInIframes --disable-features=FencedFrames
Incluye la marca BiddingAndScoringDebugReportingAPI
para habilitar los métodos temporales de generación de informes de pérdida/adquisición de la depuración.
Funciones admitidas
La API de Protected Audience detrás de las marcas de función en Chromium es un primer experimento para probar las siguientes funciones de la API de Protected Audience:
- Grupos de interés: Almacenados por el navegador, con los metadatos asociados para configurar las ofertas de anuncios y la renderización
- Ofertas integradas en el dispositivo por parte de compradores (DSP o anunciante): Se basan en los indicadores y grupos de interés almacenados del vendedor.
- Selección de anuncios en el dispositivo por parte del vendedor (SSP o publicador): Se basa en las ofertas de subasta y los metadatos de los compradores.
- Renderización de anuncios en una versión de marcos vallados temporalmente relajada: Se permite el acceso a la red y el registro para la renderización de anuncios.
Obtén más información sobre la compatibilidad de funciones y las restricciones en la explicación de la API de Protected Audience.
Permisos del grupo de interés
La configuración predeterminada de la implementación actual de la API de Protected Audience es permitir llamar a joinAdInterestGroup()
desde cualquier lugar de una página, incluso desde iframes multidominio.
En el futuro, una vez que los propietarios de los sitios hayan tenido tiempo de actualizar sus políticas de permisos de iframe multidominio, el plan es inhabilitar las llamadas desde iframes multidominio.
Servicio de par clave-valor
Para admitir la subasta de anuncios de la API de Protected Audience, el navegador puede acceder a un servicio de par clave-valor para recuperar información en tiempo real que admita la subasta de anuncios de la API de Protected Audience. Esta información se puede usar de varias maneras:
- Es posible que los compradores quieran calcular el presupuesto restante de una campaña publicitaria.
- Es posible que los vendedores deban verificar que las creatividades de anuncios cumplan con las políticas para publicadores.
El código de servicio del par clave-valor de la API de Protected Audience ahora está disponible. Consulta la entrada de blog del anuncio para ver la actualización del estado.
Para las pruebas iniciales, se presentó un modelo “Usa tu propio servidor”. A largo plazo, las tecnologías publicitarias deberán usar los servicios de par clave-valor de la API de Protected Audience de código abierto que se ejecuten en entornos de ejecución confiables.
Consulta la entrada de blog de los servicios de la API de Protected Audience para ver las actualizaciones del cronograma. Enviaremos una notificación importante a los desarrolladores para que comiencen a realizar pruebas y adopción antes de que se lleve a cabo esta transición.
Cómo detectar la compatibilidad con funciones
Antes de usar la API, verifica si es compatible con el navegador y si está disponible en el documento:
'joinAdInterestGroup' in navigator &&
document.featurePolicy.allowsFeature('join-ad-interest-group') &&
document.featurePolicy.allowsFeature('run-ad-auction') ?
console.log('navigator.joinAdInterestGroup() is supported on this page') :
console.log('navigator.joinAdInterestGroup() is not supported on this page');
¿Cómo funciona la API de Protected Audience?
En este ejemplo, un usuario explora el sitio web de un fabricante de bicicletas personalizada y, luego, visita un sitio web de noticias y se le muestra un anuncio de una bicicleta nueva del fabricante.
Se agregarán funciones de la API de Protected Audience a medida que avance el trabajo de implementación.
1. Un usuario visita el sitio de un anunciante.
![Una persona visita el sitio de un fabricante de bicicletas personalizadas en un navegador de su laptop.](https://developers.google.cn/static/privacy-sandbox/assets/images/a-person-visiting-custom-2ca7094e57259.png?authuser=5&hl=es)
Imagina que un usuario visita el sitio web de un fabricante de bicicletas personalizada (el anunciante) en este ejemplo y pasa un tiempo en la página del producto de una bicicleta de acero hecha a mano. Esto le brinda al fabricante de bicicletas una oportunidad de remarketing.
2. Se le solicita al navegador del usuario que agregue un grupo de interés
![Un usuario abre un navegador en su laptop y visita un sitio. El código JavaScript para unirse a grupos de interés de anuncios se ejecuta en el navegador.](https://developers.google.cn/static/privacy-sandbox/assets/images/a-user-opens-browser-th-6c2a4e6d97af7.png?authuser=5&hl=es)
La plataforma orientada a la demanda (DSP) del anunciante (o el propio anunciante) llama a navigator.joinAdInterestGroup()
para pedirle al navegador que agregue un grupo de interés a la lista de grupos a los que pertenece el navegador.
En este ejemplo, el grupo se llama custom-bikes
y el propietario es dsp.example
. El propietario del grupo de interés (en este caso, la DSP) será un comprador en la subasta de anuncios de la API de Protected Audience. La pertenencia a un grupo de interés se almacena en el navegador y en el dispositivo del usuario, y no se comparte con el proveedor del navegador ni ninguna otra persona.
- Lee la explicación de la API de Protected Audience: Los navegadores registran grupos de interés.
- Lee la guía de API: Compradores y DSP, obtén información para
joinAdInterestGroup()
y generar ofertas.
Cómo especificar anuncios para un grupo de interés
Los objetos ads
y adComponents
incluyen una URL para una creatividad de anuncio y, de manera opcional, metadatos arbitrarios que se pueden usar en el momento de la oferta. Por ejemplo:
{
renderUrl: 'https://cdn.example/.../bikeAd1.html',
metadata: bikeAd1metadata // optional
}
¿Cómo ofertan los compradores?
Se llama a generateBid()
para cada grupo de interés al que pertenece el navegador (si se invita al propietario del grupo de interés a ofertar).
Lee la documentación para desarrolladores de generatedBid()
.
3. El usuario visita un sitio que vende espacio publicitario.
![Una persona visita un sitio web de noticias en un navegador de su laptop. El sitio
tiene un espacio publicitario vacío.](https://developers.google.cn/static/privacy-sandbox/assets/images/a-person-visits-news-web-3209fc4021a42.png?authuser=5&hl=es)
Más tarde, el usuario visita un sitio que vende espacio publicitario; en este ejemplo, un sitio web de noticias. El sitio tiene inventario de anuncios que se vende de manera programática con ofertas en tiempo real.
4. Se ejecuta una subasta de anuncios en el navegador.
![Una persona ve un sitio web de noticias en un navegador de su laptop. Se ejecuta una subasta de anuncios de la API de Protected Audience a fin de elegir un anuncio para el espacio publicitario disponible.](https://developers.google.cn/static/privacy-sandbox/assets/images/a-person-views-news-webs-32cbfd93dc442.png?authuser=5&hl=es)
Es probable que la subasta de anuncios la ejecute el proveedor del proveedor (SSP) del publicador o el mismo publicador. El propósito de la subasta es seleccionar el anuncio más adecuado para un solo espacio publicitario disponible en la página actual. La subasta tiene en cuenta los grupos de intereses a los que pertenece el navegador, junto con los datos de los compradores de espacios publicitarios y los vendedores de los servicios de par clave-valor.
- Lee la explicación de la API de Protected Audience: Los vendedores ejecutan subastas integradas en el dispositivo
- Lee la guía de API: los vendedores pueden obtener más información sobre
runAdAuction()
y las prácticas recomendadas sobre la latencia de la subasta de anuncios.
5. El vendedor y los compradores participantes solicitan datos en tiempo real del servicio de par clave-valor.
![El usuario ve un sitio web de noticias en un navegador de su laptop. Se está llevando a cabo una subasta de anuncios con la API de Protected Audience, y un participante obtiene datos del servicio de par clave-valor.](https://developers.google.cn/static/privacy-sandbox/assets/images/the-user-views-news-webs-6969c01094b4.png?authuser=5&hl=es)
Durante una subasta de anuncios, el vendedor puede solicitar datos en tiempo real sobre creatividades de anuncios específicas mediante una solicitud a su servicio de par clave-valor.
El vendedor puede solicitar esta información durante runAdAuction()
por la propiedad trustedScoringSignalsUrl
, junto con las claves de las propiedades renderUrl
de todas las entradas en los campos ads
y adComponents
de todos los grupos de intereses en la subasta.
Un comprador puede solicitar datos en tiempo real de su servicio de par clave-valor mediante las propiedades trustedBiddingSignalsUrl
y trustedBiddingSignalsKeys
del argumento del grupo de interés que se pasa a navigator.joinAdInterestGroup()
.
Cuando se llama a runAdAuction()
, el navegador realiza una solicitud al servidor de confianza de cada comprador de anuncios. La URL de la solicitud podría verse así:
https://kv-service.example/getvalues?hostname=publisher.example&keys=key1,key2
- La URL base proviene de
trustedBiddingSignalsUrl
. - El navegador proporciona el
hostname
. - El valor
keys
se obtiene detrustedBiddingSignalsKeys
.
La respuesta a esta solicitud es un objeto JSON que proporciona valores para cada una de las claves.
- Lee la explicación de la API de Protected Audience: Recupera datos en tiempo real del servicio de par clave-valor de la API de Protected Audience.
- Consulta Código abierto del servicio de par clave-valor de la API de Protected Audience.
6. Se muestra el anuncio ganador
![Una persona ve un sitio web de noticias en un navegador de su laptop. Se muestra un anuncio de un 20% de descuento en bicicletas en un marco vallado seguro.](https://developers.google.cn/static/privacy-sandbox/assets/images/a-person-views-news-webs-2dc1236041c17.png?authuser=5&hl=es)
La promesa que muestra runAdAuction() se resuelve en un objeto de configuración de marco vallado (FencedFrameConfig
) cuando la marca resolveToConfig
se establece en true
en la configuración de la subasta. Un marco vallado utiliza la configuración del marco para navegar por el marco hasta el anuncio ganador, pero la URL del anuncio no es visible para la incorporación de marcos.
El objeto de configuración de marco vallado está disponible a partir de M114. Para obtener más información sobre el objeto FencedFrameConfig
, consulta este artículo del blog de Chrome.
- Lee la explicación de la API de Protected Audience: Los navegadores renderizan el anuncio ganador
7. Se informa el resultado de la subasta
El plan a largo plazo es permitir que el navegador informe los resultados de la subasta para el vendedor y los compradores mediante las APIs de Private Aggregation.
Como mecanismo temporal de informes a nivel del evento, el código que implementa reportResult()
para el vendedor y reportWin()
para el ofertante ganador puede llamar a la función sendReportTo()
. Se requiere un solo argumento: una cadena que representa una URL que se recupera después de que se completa la subasta y que codifica la información a nivel del evento que se informará.
- Lee la guía de API: Obtén información sobre los informes de vendedores y compradores.
8. Se registra un clic en el anuncio
![Una persona hace clic en el anuncio de una bicicleta incrustado con un marco cercado en un sitio web de noticias. Los datos del informe se envían al vendedor y a los compradores.](https://developers.google.cn/static/privacy-sandbox/assets/images/a-person-clicks-an-ad-a-be2111724646f.png?authuser=5&hl=es)
Se registra un clic en un anuncio renderizado en un marco vallado. Para obtener más información sobre cómo podría funcionar esto, consulta Informes de anuncios de marcos vallados.
![Una descripción general de cada etapa de una subasta de anuncios de la API de Protected Audience](https://developers.google.cn/static/privacy-sandbox/assets/images/an-overview-each-stage-c8bac3c2c070f.png?authuser=5&hl=es)
¿Cuál es la diferencia entre la API de Protected Audience y TURTLEDOVE?
La API de Protected Audience es el primer experimento que se implementa en Chromium dentro de la familia de propuestas TURTLEDOVE.
La API de Protected Audience sigue los principios de alto nivel de TURTLEDOVE. Parte de la publicidad en línea se basa en mostrar un anuncio a una persona potencialmente interesada que ya interactuó con el anunciante o la red de publicidad. Históricamente, el anunciante reconoce a una persona específica mientras navega por los sitios web, una preocupación de privacidad principal en la Web actual.
El objetivo de TURTLEDOVE consiste en ofrecer una nueva API para abordar este caso de uso y, al mismo tiempo, ofrecer algunos avances clave de privacidad:
- El navegador, no el anunciante, conserva la información sobre lo que el anunciante cree que le interesa a una persona.
- Los anunciantes pueden publicar anuncios en función de un interés, pero no pueden combinar ese interés con otra información sobre una persona, en particular, quién es o qué página visita.
La API de Protected Audience surgió de TURTLEDOVE y una colección de propuestas relacionadas de modificaciones para brindar un mejor servicio a los desarrolladores que usarían la API:
- En SPARROW, Criteo propuso agregar un modelo de servicio (“Gatekeeper”) que se ejecuta en un entorno de ejecución confiable (TEE). La API de Protected Audience incluye un uso más limitado de los TEE para la búsqueda de datos en tiempo real y los informes agregados.
- Las propuestas TERN y PARRROT de NextRoll describieron los diferentes roles que tenían los compradores y vendedores en la subasta integrada en el dispositivo. El flujo de puntuación/ofertas de anuncios de la API de Protected Audience se basa en este trabajo.
- Las modificaciones TURTLEDOVE basadas en resultados y a nivel del producto de RTB House mejoraron el modelo de anonimato y las capacidades de personalización de la subasta integrada en el dispositivo
- PARAKEET es la propuesta de Microsoft para un servicio de anuncios similar a TURTLEDOVE que se basa en un servidor proxy que se ejecuta en un TEE entre el navegador y los proveedores de tecnología publicitaria para anonimizar las solicitudes de anuncios y aplicar propiedades de privacidad. La API de Protected Audience no adoptó este modelo de proxy. Alineamos las APIs de JavaScript para PARAKEET y la API de Protected Audience, en apoyo del trabajo futuro para combinar aún más las mejores funciones de ambas propuestas.
La API de Protected Audience aún no impide que la red de publicidad de un sitio web sepa qué anuncios ve una persona. Esperamos modificar la API para que sea más privada con el paso del tiempo.
¿Se puede usar la API de Topics con la API de Protected Audience?
Sí. Un ofertante o un ofertante podría usar un tema observado para el usuario actual que proporciona la API de Topics como información contextual. Se podría incluir un tema en las siguientes propiedades:
auctionSignals
, una propiedad del objeto de configuración de la subasta que se pasa anavigator.runAdAuction()
userBiddingSignals
, una propiedad del objeto de configuración del grupo de interés que se pasa anavigator.joinAdInterestGroup()
Configuración del navegador disponible
Para ajustar su participación en las pruebas de Privacy Sandbox en Chrome, los usuarios pueden habilitar o inhabilitar la configuración de nivel superior en chrome://settings/adPrivacy
.
Durante las pruebas iniciales, las personas podrán usar este parámetro de configuración de alto nivel de Privacy Sandbox para inhabilitar la API de Protected Audience. Chrome planea permitir a los usuarios ver y administrar la lista de grupos de intereses a los que se agregaron en los sitios web que visitaron. Al igual que con las tecnologías de Privacy Sandbox, la configuración de los usuarios puede evolucionar con los comentarios de los usuarios, los reguladores y otros usuarios.
Seguiremos actualizando los parámetros de configuración disponibles en Chrome según las pruebas y los comentarios. En el futuro, planeamos ofrecer una configuración más detallada para administrar la API de Protected Audience y los datos asociados.
Los llamadores de la API no pueden acceder a la membresía de grupo cuando los usuarios exploran en modo Incógnito, y la membresía se quita cuando los usuarios borran los datos de su sitio.
¿El navegador almacena en caché los notebooks de Protected Audience?
El navegador almacena en caché los recursos que contienen los worklets de Protected Audience (los notebooks de generación de ofertas y de informes del comprador, y los notebooks de informes y puntuación de anuncios del vendedor). Puedes usar el encabezado Cache-Control
para controlar el comportamiento de almacenamiento en caché.
Interactúa y comparte tus comentarios
Obtenga asistencia
Para hacer preguntas y obtener asistencia con la implementación, la demostración o la documentación, haz lo siguiente:
- GitHub: Lee la explicación, plantea las preguntas y sigue el debate.
- Demostración: plantea un problema en el repositorio del código de demostración.
- Asistencia para desarrolladores: Haz preguntas y únete a debates en el repositorio de asistencia para desarrolladores de Privacy Sandbox. Selecciona la plantilla de problemas de la API de Protected Audience.
- Implementación de Chrome: En caso de errores o problemas con la implementación de Chrome de la API de Protected Audience, puedes ver los problemas existentes o informar uno nuevo.
Si tienes preguntas más generales sobre cómo satisfacer tus necesidades con la API de Protected Audience, informa un problema en el repositorio de la API. También puedes analizar casos de uso del sector en el grupo de negocios para mejorar la publicidad web de W3C.
Usa el formulario de comentarios de Privacy Sandbox para compartir comentarios de forma privada con el equipo de Chrome fuera de los foros públicos.
Inhabilitación
¿Quieres inhabilitar la API de Protected Audience? Obtén información para bloquear el acceso a la API de Protected Audience como propietario del sitio o usuario individual.
Mantente al día
- Para recibir notificaciones sobre cambios en el estado de la API, únete a la lista de distribución para desarrolladores.
- Para seguir de cerca todas las conversaciones en curso sobre la API, haz clic en el botón Mirar de la página de la API en GitHub. Para ello, debes tener o crear una cuenta de GitHub.
- Para obtener actualizaciones generales sobre Privacy Sandbox, suscríbete al feed RSS [Progreso en Privacy Sandbox].
- Únete a las llamadas programadas para la API de Protected Audience (cada dos semanas). Todos son bienvenidos. Para participar, primero asegúrate de unirse al WICG. Puedes participar de forma activa o simplemente escuchar.