Como comprador de anuncios (DSP y anunciantes), es posible que te interese participar en una subasta de anuncios de Protected Audience en el sitio del publicador para segmentar un anuncio para el grupo de interés que definiste en el sitio del anunciante. Si participas en la subasta de Protected Audience, podrás llegar a tus clientes identificados en otros sitios de una manera que preserva la privacidad.
En una subasta de Protected Audience, proporcionas la lógica para generar la oferta, y el navegador la calcula con esa lógica. Esto contrasta con otras arquitecturas de subastas en las que envías la oferta directamente en lugar de proporcionar la lógica.
Proporcionas tu lógica de generación de ofertas en la función generateBid()
de JavaScript, y el archivo se aloja en tu servidor. Cuando agregas un usuario a un grupo de interés, la ubicación de este archivo se pasa a la configuración del grupo de interés como un biddingLogicUrl
.
Durante la subasta, el navegador recupera la lógica de ofertas que especificaste en el campo biddingLogicUrl
y ejecuta tu función generateBid()
para cada grupo de interés en un entorno aislado seguro que tiene una comunicación limitada con el contexto externo. Cuando se ejecuta generateBid()
, el navegador pasa indicadores a la función como argumentos. Estos indicadores contienen diversa información de diferentes fuentes, como los datos de origen del publicador, los datos del vendedor, los datos en tiempo real y mucho más. Puedes usar estos indicadores para calcular la oferta, y el valor se devuelve desde la llamada a generateBid()
. Después de que se envían las ofertas, el navegador ejecutará la lógica de puntuación del vendedor en cada oferta para calcular la puntuación de conveniencia del vendedor.
generateBid()
A continuación, se describen los argumentos de la función generateBid()
y la estructura de la oferta que devuelve la función:
generateBid(interestGroup, auctionSignals, perBuyerSignals,
trustedBiddingSignals, browserSignals, directFromSellerSignals) {
return {
ad: adObject,
adCost: optionalAdCost,
bid: bidValue,
bidCurrency: 'USD',
render: {
url: renderURL,
width: renderWidth,
height: renderHeight
},
adComponents: [
{url: adComponent1, width: componentWidth1, height: componentHeight1},
{url: adComponent2, width: componentWidth2, height: componentHeight2},
// ...
],
allowComponentAuction: false,
modelingSignals: 123 // 0-4095 integer (12-bits)
};
}
Argumentos
generateBid()
toma los siguientes argumentos:
Argumento | Rol |
---|---|
|
Es un objeto que pasa el comprador de anuncios. El grupo de interés se puede actualizar con dailyUpdateUrl . |
|
Es una propiedad del argumento de configuración de la subasta que el vendedor pasa a navigator.runAdAuction() . Esto proporciona información sobre el contexto de la página (como el tamaño del anuncio y el ID del publicador), el tipo de subasta (de primer precio o de segundo precio) y otros metadatos. |
|
Es una propiedad del argumento de configuración de la subasta que pasa el vendedor. Esto puede proporcionar indicadores contextuales del servidor del comprador sobre la página, si el vendedor es un SSP que realiza una llamada de ofertas en tiempo real a los servidores del comprador y canaliza la respuesta, o si la página del publicador se comunica directamente con el servidor del comprador. Si es así, es posible que el comprador quiera verificar una firma criptográfica de esos indicadores dentro de generateBid() como protección contra manipulaciones. |
|
Es un objeto cuyas claves son el trustedBiddingSignalsKeys del grupo de interés y cuyos valores se devuelven en la solicitud de trustedBiddingSignals . |
|
Es un objeto creado por el navegador que puede incluir información sobre el contexto de la página (como el hostname de la página actual, que el vendedor podría falsificar) y datos del propio grupo de interés (como un registro de cuándo el grupo ganó una subasta anteriormente, para permitir el límite de frecuencia en el dispositivo). |
|
Son indicadores que provienen de un vendedor específico, a diferencia de auctionSignals y sellerSignals , que pueden provenir de cualquier participante presente en el contexto en el que se ejecuta runAdAuction . |
Indicadores del navegador
El objeto browserSignals
tiene las siguientes propiedades:
{
topWindowHostname: 'publisher.example',
seller: 'https://ssp.example',
topLevelSeller: 'https://www.top-level-ssp.com',
requestedSize: {width: 100, height: 200}, /* if specified in auction config */
joinCount: 3,
recency: 3600000,
bidCount: 17,
prevWinsMs: [[timeDeltaMs1,ad1],[timeDeltaMs2,ad2],...],
wasmHelper: ...
dataVersion: 1,
adComponentsLimit: 40
}
Propiedad | Descripción |
---|---|
|
Es el nombre de host desde el que se realizó la llamada a runAdAuction() . |
|
Es el vendedor al que se envía la oferta. En una subasta de componentes, este valor es el vendedor de componentes. |
|
Es el vendedor de nivel superior en una subasta de componentes y solo está presente en este tipo de subastas. |
|
La propiedad requestedSize recomienda un tamaño de fotograma para la subasta. El vendedor establece el tamaño solicitado en la configuración de la subasta, y el valor queda disponible para los ofertantes en generateBid() . Los ofertantes dentro de la subasta pueden elegir un tamaño de contenido diferente para el anuncio, y ese tamaño resultante se ajustará visualmente para que quepa dentro del tamaño del contenedor del elemento. |
|
El campo joinCount indica la cantidad de veces que este dispositivo se unió a este grupo de interés en los últimos 30 días mientras el grupo de interés se almacenó de forma continua (es decir, no hay brechas en el almacenamiento del grupo de interés en el dispositivo debido a que se abandonó o venció la membresía). |
|
El campo recency es la duración (en minutos) desde que este dispositivo se unió a este grupo de interés hasta ahora. |
|
Es la cantidad de veces que ese grupo de interés envió una oferta. |
|
El campo prevWinMs contiene los anuncios ganadores del grupo de interés y el tiempo transcurrido desde sus victorias anteriores en milisegundos. Ten en cuenta que el objeto del anuncio aquí solo contiene los campos renderURL y de metadatos. |
|
Un objeto WebAssembly.Module basado en el biddingWasmHelperURL del grupo de interés. |
|
Es el valor de Data-Version de las respuestas del servicio de clave/valor del comprador. |
|
Cantidad máxima de componentes de anuncios que generateBid() puede devolver |
Cómo calcular una oferta
Para calcular un valor de oferta, el código en generateBid()
puede usar las propiedades de los parámetros de la función.
Por ejemplo:
function generateBid(interestGroup, auctionSignals, perBuyerSignals,
trustedBiddingSignals, browserSignals) {
return {
// ...
bid: auctionSignals.is_above_the_fold ? perBuyerSignals.atf_value : perBuyerSignals.btf_value,
// ...
}
}
Devuelve una oferta
generateBid()
devuelve un objeto con las siguientes propiedades:
Propiedad | Rol |
---|---|
ad |
Son metadatos arbitrarios sobre el anuncio, como la información que el vendedor espera obtener sobre esta oferta o creatividad del anuncio. El vendedor utiliza esta información en su subasta y en su lógica de decisión. |
adCost |
Es un valor numérico que se usa para pasar el costo de la conversión o el clic del anunciante del informe de generateBid a reportWin. La precisión de este número se limita a una mantisa de 8 bits y un exponente de 8 bits, y cualquier redondeo se realiza de forma estocástica. |
adComponents |
Es una lista opcional de hasta 20 componentes para los anuncios compuestos por varias partes, que se toman de la propiedad adComponents del argumento del grupo de interés que se pasa a navigator.joinAdInterestGroup() . |
allowComponentAuction |
Es un valor booleano que indica si esta oferta se puede usar en una subasta de componente. Si no se especifica, el valor predeterminado es "false". |
bid |
Es una oferta numérica que participará en la subasta. El vendedor debe poder comparar las ofertas de diferentes compradores, por lo que las ofertas deben estar en alguna unidad elegida por el vendedor (como"USD por mil"). Si la oferta es cero o negativa, este grupo de interés no participará en la subasta del vendedor. Con este mecanismo, el comprador puede implementar cualquier regla del anunciante sobre dónde pueden o no aparecer sus anuncios. |
bidCurrency |
Es la moneda de la oferta, que se usa para la verificación de moneda. |
render |
Es un diccionario que describe la creatividad que se debe renderizar si esta oferta gana la subasta. Esto incluye lo siguiente:
|
|
Es un número entero de 0 a 4095 (12 bits) que se pasa a reportWin() , con ruido, como se describe en el esquema de discretización y ruido. Se ignorarán los valores no válidos, como los valores negativos, infinitos y NaN , y no se pasarán. Solo se pasarán los 12 bits más bajos. El comprador puede usar los indicadores disponibles dentro de la función generateBid() , incluidos los datos de origen del comprador capturados en el momento de la creación del grupo de interés en userBiddingSignals , para derivar algún valor que se pase a la función de informes de victorias del comprador y, así, habilitar el entrenamiento del modelo de AA. |