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 |
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 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.
- 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.
- 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.
- 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
.
- La oferta ganadora de la subasta contextual y los indicadores del comprador se agregan a la carga útil de la solicitud
- El servicio de SFE de la SSP llama al servicio de BFE de la DSP con la solicitud
GetBids
. - El BFE de la DSP llama al servicio de ofertas con la solicitud
GenerateBids
. - 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.
- 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
yDSP-B
solo participan en subastas integradas en el dispositivo.DSP-X
yDSP-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 dispositivoSSP-BA
ejecuta una subasta solo de B&ASSP-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 deSSP-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.
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:
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.
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:
- Subasta orquestada por el dispositivo en la que la llamada al servicio de anuncios de cada vendedor de componentes se origina en el navegador
- 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.
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.
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
- Para comprender mejor cómo funciona la B&A para Protected Audience, consulta los siguientes videos explicativos en GitHub:
- Para experimentar con Protected Audience con pruebas A/B, sigue el codelab de pruebas locales de extremo a extremo.
- Para la integración de vendedores, consulta Integración con B&A como vendedor.
¿Tienes alguna pregunta?
- Para hacer preguntas sobre los servicios de ofertas y subastas, abre un problema en el repositorio de los servicios de B&A.
- Para hacer preguntas sobre Privacy Sandbox en general, abre un problema en el repositorio de privacy-sandbox-dev-support.