Arquitectura

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

Descripción general

Los servicios de ofertas 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 diversas configuraciones de subasta que B&A puede usar en una subasta de PA.

Definiciones

Término Descripción
Subasta de Protected Audience Una subasta de anuncios que incluye datos de varios sitios
Subasta contextual Una subasta de anuncios que no incluye datos entre sitios. Esta subasta sigue la ruta de subasta de ofertas en tiempo real (RTB) existente.
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 de la subasta de Protected Audience y la subasta contextual.
Servicio de anuncios del vendedor (SAS) Es el servicio responsable de controlar la solicitud de subasta unificada desde el navegador. Puede ser el servidor de anuncios de RTB existente de un vendedor. El SAS es responsable de organizar las subastas contextuales y de Protected Audience.
Servicio de anuncios del comprador 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, el servicio de ofertas y el servicio de frontend del comprador (BFE) están disponibles para su uso.
  • Para los vendedores, el servicio de subastas y el servicio de frontend del vendedor (SFE) están disponibles para su uso.
Participante Servicio Descripción
Comprador Servicio de frontend del comprador (BFE) El servicio controla la solicitud de GetBids del SFE de un vendedor. Es responsable de desencriptar la carga útil, recuperar los indicadores 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 frontend del vendedor (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 K/V, llamar a la operación ScoreAd de Auction Service y, luego, mostrar 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, el servicio 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 deseabilidad 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 B&A con un solo vendedor y un solo comprador. Los cuadros con contorno rojo grueso representan 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 a SFE, y SFE envía una solicitud a 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 mediante una llamada a navigator.getInterestGroupAdAuctionData().
    • Esta carga útil encriptada contiene los 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 simple 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 de la DSP para solicitar la oferta de subasta contextual y cualquier indicador del comprador que se pasará a la subasta de PA posterior.
    • Este puede ser un paso en el que un comprador indica su intención de participar en la subasta de PA.
  4. Después de que se completa la subasta contextual, SAS envía la solicitud SelectAd al servicio de SFE.
    • La oferta ganadora de la subasta contextual y los indicadores del comprador se agregan a la carga útil de la solicitud SelectAd.
  5. El servicio de SFE de la SSP llama al servicio de BFE de la 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 ScoreAd al servicio de subasta.
    • La oferta con la puntuación de deseabilidad más alta se muestra a SAS y, luego, se reenvía al código JavaScript de la página.
  8. Para finalizar la subasta en el navegador, se pasa el resultado encriptado de la subasta de B&A a la llamada navigator.runAdAuction().

Parámetros de configuración 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 de 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 subasta, en esta guía se usan los siguientes participantes:

Participante Descripción
DSP-A Comprador integrado en el dispositivo
DSP-B Comprador integrado 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 integradas 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 de modo mixto.
  • SSP-TOP ejecuta una subasta de varios vendedores:
    • SSP-OD/BA/MIX participan como vendedores 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 del comprador 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.

Una arquitectura de un solo vendedor en la que un 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 DSP-X y DSP-Y participan con la pila del comprador de los servicios de B&A. El servicio de anuncios del vendedor ejecuta primero 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 al BFE de DSP-X y DSP-Y, que llamará a su servicio de ofertas para generar una oferta.

El resultado de la subasta de B&A encriptado se muestra al cliente y se pasa a la llamada runAdAuction(). La configuración de una 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 requestId proviene de la llamada getInterestGroupAdAuctionData() en el cliente, y los datos serverResponse provienen de la subasta de B&A del servidor.

Subasta de 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 integrada en el dispositivo y las flechas rojas representan la ruta de la subasta de B&A:

Una arquitectura de vendedor de modo mixto en la que los compradores pueden enviar sus ofertas desde el dispositivo o 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 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 subasta de un solo vendedor.

La subasta contextual se ejecuta primero para todos los compradores para 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 SelectAd a SFE. El resultado encriptado de la subasta de B&A que se muestra desde SFE se reenvía al navegador. Después de la subasta de B&A, su resultado se envía a la subasta integrada en el dispositivo en la que participan los compradores integrados en el dispositivo.

Una configuración de subasta de un solo vendedor en modo mixto para la parte integrada en el dispositivo de la subasta se ve de la siguiente manera:

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 subastas en el dispositivo y de B&A

Sin paralelización, las subastas se ejecutan de forma secuencial, en la que se ejecuta la subasta contextual, luego la subasta de B&A y, por último, la subasta integrada en el dispositivo. Con la implementación de la paralelización, la subasta contextual se vuelve a ejecutar primero, pero su resultado y sus indicadores se vuelven a transmitir al cliente para iniciar la subasta integrada 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 vuelven a transmitir al código JavaScript del navegador

(Diagrama de tamaño completo)

El código 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 SAS recibe una respuesta del servidor de RTB de un comprador, los indicadores del comprador para la subasta integrada en el dispositivo se pueden volver a transmitir al navegador, junto con el ganador de la subasta contextual una vez que se reciben todas las ofertas. Los indicadores del comprador transmitidos se utilizan para generar una oferta en el dispositivo, y el ganador de la subasta contextual se usa como oferta mínima cuando se califican las ofertas.

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

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

Subasta de varios vendedores

Existen dos maneras 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 orquestada por el dispositivo

En una subasta de varios vendedores orquestada por el dispositivo, cada vendedor de componentes puede 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.

Un diagrama que describe cómo varios vendedores que ejecutan diferentes configuraciones de subastas 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 en modo mixto, ejecuta primero 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 subasta de componentes de cada vendedor y crea una configuración de subasta similar a la siguiente:

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 del componente 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 integrada 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 a SFE para ejecutar la operación GetComponentAuctionCipherTexts. Luego, los textos cifrados que se devuelven 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.

El navegador 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. SFE desencriptará la carga útil, la separará por cada vendedor de componentes y devolverá las cargas útiles reencriptadas 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 subasta de componentes. La oferta con la puntuación de deseabilidad más alta se muestra a la 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?