API de Protected Audience: Guía para desarrolladores

Guía para desarrolladores sobre subastas de anuncios integradas en el dispositivo para publicar anuncios de remarketing y públicos personalizados sin seguimiento de terceros entre sitios.

Si es la primera vez que usas la API de Protected Audience, lee la descripción general de la API de Protected Audience para obtener una explicación general de la API.

Esta publicación está escrita para desarrolladores como referencia técnica de la iteración más reciente de la API experimental de Protected Audience. Hay disponible una demo de una implementación básica de la API de Protected Audience, así como referencias de la API para compradores y vendedores de anuncios.

Estado de implementación

Para recibir notificaciones sobre cambios de estado en la API, únete a la lista de distribución para desarrolladores.

¿Qué es la API de Protected Audience?

La API de Protected Audience es una API de Privacy Sandbox diseñada para publicar casos de uso de remarketing y de públicos personalizados. Estos casos de uso se diseñaron de modo que los terceros no puedan realizar un seguimiento del comportamiento de navegación de los usuarios en diferentes sitios. La API habilita subastas integradas en el dispositivo por parte del navegador para elegir anuncios relevantes para los sitios web que el usuario visitó anteriormente.

La API de Protected Audience es el primer experimento que se implementará en Chromium dentro de la familia de propuestas de TURTLEDOVE.

Prueba la API de Protected Audience

Referencia de la 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:

También puedes consultar las prácticas recomendadas sobre la latencia de las subastas de anuncios de la API de Protected Audience.

Demo de la API de Protected Audience

En protected-audience-demo.web.app/, puedes encontrar una explicación paso a paso de una implementación básica de la API de Protected Audience en los sitios de anunciantes y publicadores.

Mira esta implementación de extremo a extremo para aprender a usar el código de demostración de la API de Protected Audience y a usar las Herramientas para desarrolladores de Chrome para la depuración.

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

Renderiza anuncios en iframes o marcos delimitados

Los anuncios se pueden renderizar en un <iframe> o un <fencedframe>, según las marcas que se establezcan.

Para usar <fencedframe> y renderizar anuncios, haz lo siguiente:

--enable-features=InterestGroupStorage,AdInterestGroupAPI,Fledge,FencedFrames

Para usar <iframe> y renderizar anuncios, haz lo siguiente:

--enable-features=InterestGroupStorage,AdInterestGroupAPI,Fledge,AllowURNsInIframes --disable-features=FencedFrames

Incluye la marca BiddingAndScoringDebugReportingAPI para habilitar los métodos de informes de pérdida o ganancia de depuración temporales.

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 intereses: El navegador los almacena con metadatos asociados para configurar la renderización y las ofertas de anuncios.
  • Ofertas integradas en el dispositivo por parte de los compradores (DSP o anunciante): Se basan en los grupos de intereses almacenados y los indicadores del vendedor.
  • Selección de anuncios integrados 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 temporalmente relajada de los fotogramas con restricciones: con acceso a la red y registro permitidos para la renderización de anuncios.

Obtén más información sobre la compatibilidad y las restricciones de las funciones en la explicación de la API de Protected Audience.

Permisos de los grupos de interés

El valor predeterminado 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 de dominios cruzados.

En el futuro, una vez que los propietarios de sitios tengan tiempo para actualizar sus políticas de permisos de iframes entre dominios, el plan es no permitir llamadas desde iframes entre dominios.

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 deseen calcular el presupuesto restante en una campaña publicitaria.
  • Es posible que los vendedores deban verificar que las creatividades de los anuncios cumplan con las políticas de los publicadores.

Ya está disponible el código de servicio de par clave-valor de la API de Protected Audience. Consulta la entrada de blog del anuncio para conocer el estado actualizado.

Para las pruebas iniciales, se presentó un modelo de “trae 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 ejecutan en entornos de ejecución confiables.

Consulta la entrada de blog sobre los servicios de la API de Protected Audience para obtener actualizaciones del cronograma. Les enviaremos un aviso sustancial a los desarrolladores para que comiencen a probar y adoptar la nueva versión antes de que se realice esta transición.

Cómo detectar la compatibilidad con funciones

Antes de usar la API, verifica si el navegador la admite 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 navega por el sitio web de un fabricante de bicicletas personalizadas y, luego, visita un sitio web de noticias, donde se le muestra un anuncio de una bicicleta nueva del fabricante.

Las funciones de la API de Protected Audience se agregarán con el tiempo a medida que avance el trabajo de implementación.

1. Un usuario visita el sitio de un anunciante

Una persona que visita el sitio de un fabricante de bicicletas personalizadas en un navegador de su laptop.

Imagina que un usuario visita el sitio web de un fabricante de bicicletas personalizadas (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 intereses de anuncios se ejecuta en el navegador.

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 intereses a la lista de grupos de los que es miembro.

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. El navegador almacena la membresía del grupo de intereses en el dispositivo del usuario y no la comparte con el proveedor del navegador ni con nadie más.

Especifica anuncios para un grupo de intereses

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 realizan ofertas los compradores?

Se llama a generateBid() para cada grupo de interés del que el navegador es miembro, 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.

Más tarde, el usuario visita un sitio que vende espacio publicitario, en este ejemplo, un sitio web de noticias. El sitio tiene un inventario de anuncios, que vende de forma programática con licitaciones 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 para elegir un anuncio para el espacio de anuncios disponible.

Es probable que el proveedor de la plataforma de proveedores (SSP) del publicador o el propio publicador ejecuten la subasta de anuncios. El objetivo 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 de los que es miembro el navegador, junto con los datos de los compradores de espacio publicitario y los vendedores de los servicios de par clave-valor.

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á ejecutando una subasta de anuncios con la API de Protected Audience, y un participante obtiene datos del servicio de par clave-valor.

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() a través de la propiedad trustedScoringSignalsUrl, junto con las claves de las propiedades renderUrl de todas las entradas de 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 con las propiedades trustedBiddingSignalsUrl y trustedBiddingSignalsKeys del argumento del grupo de intereses 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 de la siguiente manera:

https://kv-service.example/getvalues?hostname=publisher.example&keys=key1,key2
  • La URL base proviene de trustedBiddingSignalsUrl.
  • El navegador proporciona hostname.
  • El valor de keys se toma de trustedBiddingSignalsKeys.

La respuesta a esta solicitud es un objeto JSON que proporciona valores para cada una de las claves.

6. Se muestra el anuncio ganador

Una persona ve un sitio web de noticias en un navegador de su laptop. Un anuncio con un 20% de descuento en una bicicleta se muestra en un marco seguro.

La promesa que muestra runAdAuction() se resuelve en un objeto de configuración de marco cercado (FencedFrameConfig) cuando la marcaresolveToConfig se establece en true en la configuración de la subasta. Un marco cercado usa la configuración del marco para navegar al anuncio ganador, pero el incorporador de marcos no puede ver la URL del anuncio.

El objeto de configuración de fotogramas con cercado está disponible a partir de la M114. Para obtener más información sobre el objeto FencedFrameConfig, consulta el artículo del blog de Chrome.

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 con las APIs de Private Aggregation.

Como mecanismo de informes temporal a nivel del evento, el código que implementa reportResult() para el vendedor y reportWin() para la oferta ganadora puede llamar a la función sendReportTo(). Este método toma un solo argumento: una cadena que representa una URL que se recupera después de que se completa la subasta, que codifica la información a nivel del evento que se informará.

8. Se informa un clic en el anuncio

Una persona hace clic en un anuncio de una bicicleta, incorporado con un marco delimitado, en un sitio web de noticias. Los datos del informe se envían al vendedor y a los compradores.

Se informa un clic en un anuncio renderizado en un marco delimitado. Para obtener más información sobre cómo podría funcionar esto, consulta Informes de anuncios de marcos delimitados.


Descripción general de cada etapa de una subasta de anuncios de la API de Protected Audience
En este diagrama, se describe cada etapa de una subasta de la API de Protected Audience.

¿Cuál es la diferencia entre la API de Protected Audience y TURTLEDOVE?

La API de Protected Audience es el primer experimento que se implementará en Chromium dentro de la familia de propuestas de TURTLEDOVE.

La API de Protected Audience sigue los principios de alto nivel de TURTLEDOVE. Parte de la publicidad en línea se basó en mostrar un anuncio a una persona potencialmente interesada que interactuó con el anunciante o la red de publicidad anteriormente. Históricamente, esto funcionó porque el anunciante reconoció a una persona específica mientras navegaba por sitios web, una preocupación fundamental de privacidad en la Web actual.

El esfuerzo de TURTLEDOVE consiste en ofrecer una nueva API para abordar este caso de uso y, al mismo tiempo, ofrecer algunos avances clave en materia de privacidad:

  • El navegador, no el anunciante, contiene 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 para modificaciones que brindaran un mejor servicio a los desarrolladores que usarían la API:

  • En SPARROW, Criteo propuso agregar un modelo de servicio ("administrador de acceso") que se ejecute 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.
  • En las propuestas de TERN de NextRoll y PARRROT de Magnite, se describieron los diferentes roles que tenían los compradores y vendedores en la subasta integrada en el dispositivo. El flujo de puntuación o ofertas de anuncios de la API de Protected Audience se basa en este trabajo.
  • Las modificaciones de TURTLEDOVE basadas en el resultado 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. Estamos alineando las APIs de JavaScript para PARAKEET y la API de Protected Audience para respaldar el trabajo futuro que combine aún más las mejores funciones de ambas propuestas.

La API de Protected Audience aún no impide que la red publicitaria de un sitio web sepa qué anuncios ve una persona. Esperamos modificar la API para que sea más privada con el tiempo.

¿Se puede usar la API de Topics con la API de Protected Audience?

Sí. Un tema observado para el usuario actual, que proporciona la API de Topics, podría usarse como información contextual por parte de un vendedor o ofertante. Se puede incluir un tema en las siguientes propiedades:

  • auctionSignals, una propiedad del objeto de configuración de la subasta que se pasa a navigator.runAdAuction()
  • userBiddingSignals, una propiedad del objeto de configuración del grupo de intereses que se pasa a navigator.joinAdInterestGroup()

Configuración del navegador disponible

Los usuarios pueden ajustar su participación en las pruebas de Privacy Sandbox en Chrome habilitando o inhabilitando el parámetro de 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 Privacy Sandbox de alto nivel para inhabilitar la API de Protected Audience. Chrome planea permitir que los usuarios vean y administren la lista de grupos de interés a los que se agregaron en los sitios web que visitaron. Al igual que con las tecnologías de Privacy Sandbox, la configuración del usuario puede evolucionar con los comentarios de los usuarios, los reguladores y otras partes.

Seguiremos actualizando la configuración disponible 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 del grupo cuando los usuarios navegan en modo Incógnito, y la membresía se quita cuando los usuarios borran sus datos de sitios.

¿El navegador almacena en caché los worklets de Protected Audience?

El navegador almacena en caché los recursos que contienen las worklets de Protected Audience (las worklets de generación de ofertas y generación de informes del comprador, y las worklets de puntuación de anuncios y generación de informes del vendedor). Puedes usar el encabezado Cache-Control para controlar el comportamiento de almacenamiento en caché.

Interactúa y comparte comentarios

Obtenga asistencia

Para hacer preguntas y obtener asistencia con tu implementación, la demostración o la documentación, haz lo siguiente:

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 ubicaciones de la empresa para mejorar la publicidad web del 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 de un sitio o usuario individual.

Mantente al día