Arquitectura

Conoce la arquitectura de subastas de los servicios de ofertas y subastas

Descripción general

Los servicios de licitación y subastas (B&A) proporcionan un conjunto de servicios para compradores y vendedores de anuncios que se ejecutan en un entorno de ejecución confiable (TEE) para facilitar una subasta de Protected Audience (PA). En esta página, se describen las distintas configuraciones de subasta en las que se puede usar B&A en una subasta de PA.

Definiciones

Término Descripción
Subasta de Protected Audience Una subasta de anuncios que involucra datos de varios sitios
Subasta contextual Es una subasta de anuncios que no involucra datos entre sitios. Esta subasta sigue la ruta de acceso existente de la subasta de ofertas en tiempo real (RTB).
Solicitud de subasta unificada Es una solicitud que envía el código JavaScript del vendedor desde el navegador y que incluye la carga útil tanto para la subasta de Protected Audience como para la subasta contextual.
Servicio de anuncios del vendedor (SAS) Es el servicio responsable de controlar la solicitud de subasta unificada del navegador. Puede ser el servidor de anuncios RTB existente de un vendedor. SAS es responsable de coordinar las subastas contextuales y de Protected Audience.
Servicio de anuncios para compradores Es el servicio responsable de enviar una oferta de subasta contextual. Este puede ser el servidor de anuncios de ORTB existente de un comprador.

Servicios para compradores y vendedores

Los servicios de B&A se componen de cuatro servicios para compradores y vendedores:

  • Para los compradores, están disponibles el Servicio de ofertas y el Servicio de frontend del comprador (BFE).
  • Para los vendedores, están disponibles el Servicio de subastas y el Servicio de frontend del vendedor (SFE).
Participante Servicio Descripción
Comprador Servicio de Buyer Front-End (BFE) El servicio controla la solicitud GetBids de un SFE del vendedor. Es responsable de desencriptar la carga útil, recuperar los indicadores de K/V y llamar a GenerateBids del Servicio de ofertas.
Servicio de licitación El servicio controla la solicitud GenerateBids de BFE. Es responsable de ejecutar la lógica de ofertas del comprador y generar una oferta.
Vendedor Servicio de Seller Front-End (SFE) El servicio controla la solicitud de SelectAd del servicio de anuncios del vendedor. Es responsable de desencriptar la carga útil, llamar a la operación GetBids de BFE, recuperar los indicadores de K/V, llamar a la operación ScoreAd del Servicio de subastas y, luego, devolver el resultado de la subasta de B&A encriptado a SAS.

Cuando el servicio forma parte de la pila del vendedor de nivel superior en una subasta de varios vendedores orquestada por el servidor, también controla la solicitud GetComponentAuctionCiphertexts de SAS.

Servicio de subastas El servicio controla la solicitud ScoreAd de SFE. Es responsable de ejecutar la lógica de puntuación del vendedor y proporcionar la puntuación de conveniencia de una oferta.

Arquitectura de una subasta de B&A de PA para la Web

En el siguiente diagrama, se describe la subasta básica de Protected Audience con servicios de ofertas y subastas, con un solo vendedor y un solo comprador. Los cuadros con un contorno rojo grueso representan los servicios que se ejecutan en un TEE:

El código JavaScript del cliente envía la solicitud de subasta unificada a la SSP. El SAS envía una solicitud al SFE, y el SFE envía una solicitud al BFE para obtener una oferta.
(Diagrama de tamaño completo)
  1. El código JavaScript de la SSP en la página del publicador genera los datos encriptados de la subasta de anuncios de B&A llamando a navigator.getInterestGroupAdAuctionData().
    • Esta carga útil encriptada contiene datos del comprador y solo se puede desencriptar dentro de un SFE en un TEE.
  2. El código JavaScript de la SSP envía una solicitud de subasta unificada al servicio de anuncios del vendedor.
    • Una solicitud de subasta unificada contiene la carga útil de la subasta contextual de ORTB en texto sin formato y la carga útil de la subasta de B&A encriptada.
    • El servicio de anuncios del vendedor es tu servidor de anuncios existente y no se ejecuta en un TEE.
  3. El servicio de anuncios del vendedor llama al servicio de RTB del DSP para solicitar la oferta de la subasta contextual y cualquier indicador del comprador que se pasará a la subasta de PA posterior.
    • Este puede ser un paso en el que el comprador indica su intención de participar en la subasta de PA.
  4. Una vez que se completa la subasta contextual, el SAS envía la solicitud SelectAd al servicio de SFE.
    • Se agregan a la carga útil de la solicitud SelectAd los indicadores contextuales de la oferta ganadora de la subasta y del comprador.
  5. El servicio de SFE de la SSP llama al servicio de BFE del DSP con la solicitud GetBids.
  6. El BFE de la DSP llama al servicio de ofertas con la solicitud GenerateBids.
  7. Una vez que SFE recibe la oferta, se realiza la llamada a ScoreAd al servicio de subastas.
    • La oferta con la puntuación de conveniencia más alta se devuelve a SAS y, luego, se reenvía al código JavaScript de la página.
  8. La subasta finaliza en el navegador pasando el resultado encriptado de la subasta de B&A a la llamada navigator.runAdAuction().

Configuraciones de subasta

Una subasta de Protected Audience con servicios de B&A se puede configurar de las siguientes maneras:

  • Subasta de un solo vendedor con compradores de B&A
  • Subasta en modo mixto con compradores integrados en el dispositivo y compradores de B&A
  • Subasta de varios vendedores que se puede organizar en el dispositivo o en el servidor

Participantes

Para describir cada configuración de la subasta, en esta guía se usan los siguientes participantes:

Participante Descripción
DSP-A Comprador en el dispositivo
DSP-B Comprador en el dispositivo
DSP-X Comprador de B&A
DSP-Y Comprador de B&A
SSP-TOP Vendedor de nivel superior
SSP-OD Vendedor solo en el dispositivo
SSP-BA Vendedor solo de B&A
SSP-MIX Vendedor de varios medios de transporte

Existen cuatro DSP:

  • DSP-A y DSP-B solo participan en subastas en el dispositivo
  • DSP-X y DSP-Y participan en subastas integradas en el dispositivo y en subastas de B&A.

Hay cuatro SSP y cada vendedor ejecuta una configuración de subasta diferente:

  • SSP-OD ejecuta una subasta solo en el dispositivo
  • SSP-BA ejecuta una subasta solo de B&A
  • SSP-MIX ejecuta una subasta en modo mixto
  • SSP-TOP ejecuta una subasta de varios vendedores:
    • SSP-OD/BA/MIX participa como vendedor de componentes de la subasta de varios vendedores de SSP-TOP

Subasta de B&A de un solo vendedor

En una configuración de un solo vendedor, un vendedor ejecuta una subasta en la que participan varios compradores. Si el vendedor ejecuta una subasta de B&A, los compradores deben ejecutar la pila de compradores de los Servicios de B&A para enviar una oferta a la subasta. Los compradores y vendedores no necesitan usar el mismo proveedor de servicios en la nube.

Es una arquitectura de un solo vendedor en la que un solo SFE se comunica con varios BFE para recibir ofertas.
(Diagrama de tamaño completo)

En la configuración anterior, SSP-BA ejecuta una subasta de B&A en la que participan DSP-X y DSP-Y con la pila de compradores de los servicios de B&A. El servicio de anuncios del vendedor primero ejecuta una subasta contextual para DSP-X y DSP-Y, y luego ejecuta una subasta de Protected Audience enviando la solicitud SelectAd al servicio de SFE del vendedor. La oferta ganadora de la subasta contextual y los indicadores de cada comprador se pasan a la llamada SelectAd. Luego, el servicio de SFE envía solicitudes de GetBids a los BFE de DSP-X y DSP-Y, que llamarán a su servicio de ofertas para generar una oferta.

El resultado de la subasta de B&A encriptado se devuelve al cliente y se pasa a la llamada runAdAuction(). Una configuración de subasta de un solo vendedor se ve de la siguiente manera:

await navigator.runAdAuction({
  seller: 'https://ssp-ba.example',
  requestId: 'g8312cb2-da2d-4e9b-80e6-e13dec2a581c',
  serverResponse: Uint8Array(560) [193, 120, 4, ] // Encrypted B&A auction result
})

El valor de requestId proviene de la llamada getInterestGroupAdAuctionData() en el cliente, y los datos de serverResponse provienen de la subasta de B&A del servidor.

Subasta en modo mixto

En la configuración de modo mixto, los compradores pueden participar en la subasta del vendedor desde el dispositivo o desde B&A. Las flechas azules representan la ruta de la subasta en el dispositivo, y las flechas rojas representan la ruta de la subasta de B&A:

Es una arquitectura de vendedor de modo mixto en la que los compradores pueden enviar sus ofertas desde el dispositivo o desde B&A.
(Diagrama de tamaño completo)

En esta configuración, DSP-A y DSP-B son compradores que envían sus ofertas en el dispositivo, y DSP-X y DSP-Y son compradores que envían sus ofertas con B&A. Los compradores integrados en el dispositivo participan en una subasta de PA integrada en el dispositivo en el navegador, y los compradores de B&A participan en la configuración de la subasta de B&A que se describe en la sección de subasta de un solo vendedor.

Primero se ejecuta la subasta contextual para todos los compradores con el objetivo de recopilar la oferta ganadora de la subasta contextual y los indicadores del comprador. Luego, se ejecuta la subasta de B&A y los indicadores del comprador de la subasta contextual se pasan a la solicitud de SelectAd al SFE. El resultado encriptado de la subasta de B&A que se devolvió desde SFE se reenvía al navegador. Después de la subasta de B&A, su resultado se ingresa en la subasta en el dispositivo en la que participan los compradores en el dispositivo.

Una configuración de subasta de un solo vendedor en modo mixto para la parte de la subasta que se realiza en el dispositivo es similar a la siguiente:

await navigator.runAdAuction({
  seller: 'https://ssp-mix.example',
  decisionLogicURL: 'https://ssp-ba.example/score-ad.js',
  componentAuctions: [
    // B&A auction
    {
      seller: 'https://ssp-mix.example',
      requestId: 'f5135cb2-da2d-4e9b-80e6-e13dec2a581c',
      serverResponse: Uint8Array(560) [133, 20, 14, ]
    },
    // On-device auction
    {
      seller: 'https://ssp-mix.example',
      interestGroupBuyers: ['https://dsp-a.example', 'https://dsp-b.example'],
      decisionLogicURL: 'https://ssp-mix.example/on-device-score-ad.js',
    }
  ]
})

Paralelización de las subastas en el dispositivo y de B&A

Sin paralelización, las subastas se ejecutan de forma secuencial: primero, la subasta contextual, luego, la subasta de B&A y, por último, la subasta en el dispositivo. Con la paralelización implementada, la subasta contextual se vuelve a ejecutar primero, pero su resultado y sus indicadores se transmiten al cliente para iniciar la subasta en el dispositivo en paralelo antes de que finalice la subasta de B&A.

Un diagrama que describe cómo la oferta y los indicadores de la subasta contextual, y el resultado de SelectAd se transmiten al código JavaScript del navegador
(Diagrama de tamaño completo)

El código de JavaScript del cliente envía la solicitud de subasta unificada a SAS, y SAS inicia la subasta contextual y la subasta de B&A de PA. Cuando el SAS recibe una respuesta del servidor de RTB de un comprador, los indicadores de la subasta en el dispositivo del comprador se pueden transmitir de vuelta al navegador, junto con el ganador de la subasta contextual una vez que se reciben todas las ofertas. Los indicadores del comprador transmitidos se usan para generar una oferta en el dispositivo, y el ganador de la subasta contextual se usa como un precio mínimo de la oferta cuando se califican las ofertas.

En SAS, el vendedor genera un UUID nonce que se establece en el encabezado de respuesta Ad-Auction-Result-Nonce cuando se transmiten los datos de la subasta contextual al navegador. El mismo nonce se usa en la llamada SelectAd a SFE para la subasta de B&A, y ese nonce se incluye en la respuesta SelectAd que devuelve SFE. Durante la fase de subasta del cliente, el navegador verifica que el nonce del encabezado de respuesta Ad-Auction-Result-Nonce coincida con el nonce de la carga útil del resultado de la subasta encriptada.

Consulta la explicación para obtener más información sobre la paralelización en modo mixto.

Subasta de varios vendedores

Existen dos formas de ejecutar una subasta de varios vendedores de PA con B&A:

  1. Subasta orquestada por el dispositivo en la que la llamada al servicio de anuncios de cada vendedor de componentes se origina en el navegador
  2. Subasta orquestada por el servidor en la que la llamada al servicio de anuncios de cada vendedor de componentes se origina en el servicio de anuncios del vendedor de nivel superior

Subasta de varios vendedores organizada por el dispositivo

En una subasta de varios vendedores coordinada por el dispositivo, cada vendedor de componentes es libre de ejecutar su subasta en la configuración que elija. Los vendedores integrados en el dispositivo, los vendedores de B&A y los vendedores de modo mixto pueden participar en la subasta de nivel superior.

Diagrama que describe cómo varios vendedores que ejecutan diferentes configuraciones de subasta pueden enviar el resultado de la subasta al vendedor de nivel superior.
(Diagrama de tamaño completo)
En esta configuración, "SSP-TOP", que es el vendedor de nivel superior, ejecuta una subasta de varios vendedores en la que participan "SSP-OD", "SSP-BA" y "SSP-MIX": * "SSP-OD", que ejecuta una subasta de PA solo en el dispositivo, envía su configuración de subasta de componentes en el dispositivo al vendedor de nivel superior. * `SSP-BA`, que ejecuta una subasta de B&A, envía una solicitud de subasta unificada a su servicio de anuncios del vendedor y ejecuta sus propias subastas contextuales y de B&A. Los resultados se envían al vendedor de nivel superior. * `SSP-MIX`, que ejecuta una subasta de modo mixto, primero ejecuta la subasta de B&A en el servidor y, luego, envía el resultado de la subasta de B&A y la configuración de la subasta en el dispositivo. El vendedor de nivel superior recopila las configuraciones de la subasta de componentes de cada vendedor y crea una configuración de la subasta que se parece a la siguiente: ```js await navigator.runAdAuction({ seller: 'https://ssp-top.example', decisionLogicURL: 'https://ssp-top.example/score-ad.js', componentAuctions: [ // SSP-BA's B&A-only auction { seller: 'https://ssp-ba.example', requestId: 'g8312cb2-da2d-4e9b-80e6-e13dec2a581c', serverResponse: Uint8Array(560) [193, 120, 4, …] // Encrypted B&A auction result }, // SSP-MIX's B&A auction of mixed-mode { seller: 'https://ssp-mix.example', requestId: 'f5135cb2-da2d-4e9b-80e6-e13dec2a581c', serverResponse: Uint8Array(560) [133, 20, 4, …] // Encrypted B&A auction result }. // SSP-MIX's on-device auction of mixed-mode { seller: 'https://ssp-mix.example', interestGroupBuyers: ['https://dsp-a.example', 'https://dsp-b.example'], decisionLogicURL: 'https://ssp-mix.example/score-ad.js', } // SSP-OD's on-device auction { seller: 'https://ssp-od.example', interestGroupBuyers: ['https://dsp-a.example', 'https://dsp-b.example'], decisionLogicURL: 'https://ssp-od.example/score-ad.js', } ] }) ``` ### Subasta de varios vendedores orquestada por el servidor En una subasta de varios vendedores orquestada por el servidor, las llamadas a los servicios de anuncios del vendedor de componentes se realizan desde el servicio de anuncios del vendedor de nivel superior. En esta configuración, los vendedores de componentes no pueden ejecutar una subasta en el dispositivo ni una subasta en modo mixto; todos los vendedores deben usar B&A, y todos los compradores deben enviar sus ofertas con B&A.
La SSP de nivel superior envía una solicitud de subasta unificada a su servicio de anuncios del vendedor. El servicio de anuncios del vendedor llama al SFE para ejecutar la operación GetComponentAuctionCipherTexts. Luego, los textos cifrados devueltos se envían al servicio de anuncios de cada vendedor de componentes, que realiza sus propias subastas de B&A.
(Diagrama de tamaño completo)

En este diagrama, SSP-TOP ejecuta una subasta de varios vendedores orquestada por el servidor en la que participan SSP-BA-X y SSP-BA-Y.

Desde el navegador, se envía una sola solicitud de subasta unificada que contiene la carga útil de las subastas contextuales y de PA para todos los participantes al servicio de anuncios del vendedor de nivel superior. Luego, SAS realiza una llamada GetComponentAuctionCiphertexts a SFE con la carga útil. El SFE descifrará la carga útil, la separará por cada vendedor de componentes y devolverá las cargas útiles recifradas al SAS del vendedor de nivel superior.

Las definiciones de proto para la solicitud y la respuesta de GetComponentAuctionCiphertexts son las siguientes:

// Request sent from the top-level seller's ad service to SFE
message GetComponentAuctionCiphertextsRequest {
  bytes protected_auction_ciphertext = 1; // Generated in the browser
  repeated string component_sellers = 2; // The list of all component sellers
}

// Response returned from SFE to the top-level seller's ad service
message GetComponentAuctionCiphertextsResponse {
  // A map of component sellers and their re-encrypted payloads
  map<string, bytes> seller_component_ciphertexts = 1;
}

Con la carga útil de cada vendedor de componentes, el SAS del vendedor de nivel superior llama al SAS de los vendedores de componentes, y cada SAS de componentes ejecuta su subasta de B&A de componentes. Luego, los resultados de las subastas de componentes se devuelven al SFE del vendedor de nivel superior, y el Servicio de subastas del vendedor de nivel superior califica las ofertas de las subastas de componentes. La oferta con la puntuación de conveniencia más alta se devuelve a SFE, y esa carga útil encriptada se envía a SAS para que se devuelva al cliente. En el navegador, el vendedor de nivel superior finaliza la subasta llamando a navigator.runAdAuction() y proporcionando la carga útil encriptada del resultado de la subasta del servidor.

Próximos pasos

Después de leer esta guía, puedes seguir estos pasos:

Más información

¿Tienes alguna pregunta?