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 al grupo de interés que definiste en el sitio del anunciante. Si participas en la subasta de Protected Audience, puedes llegar a tus clientes identificados en otros sitios de una manera que preserva la privacidad.
En una subasta de Protected Audience, tú proporcionas la lógica para generar la oferta, y el navegador la calcula con esa lógica. Esto contrasta con otras arquitecturas de subasta en las que se envía la oferta directamente en lugar de proporcionar la lógica.
Proporcionas la 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 la función generateBid()
para cada grupo de interés en un entorno aislado seguro que está limitado en su comunicación con el contexto externo. Cuando se ejecuta generateBid()
, el navegador pasa señales a la función como argumentos. Estos indicadores contienen información variada de distintas fuentes, como datos de origen del publicador, datos del vendedor, datos en tiempo real y mucho más. Puedes usar estos indicadores para calcular la oferta, y la llamada a generateBid()
devuelve el valor. Después de que se envíen las ofertas, el navegador ejecutará la lógica de puntuación del vendedor en cada oferta para calcular la puntuación de deseabilidad del vendedor.
generateBid()
A continuación, se describen los argumentos de la función generateBid()
y la estructura de la oferta que muestra 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 |
---|---|
|
Un objeto que el comprador del anuncio pasa. El grupo de interés se puede actualizar con dailyUpdateUrl . |
|
Una propiedad del argumento auction config que el vendedor pasa a navigator.runAdAuction() . 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 (primer precio o segundo precio) y otros metadatos. |
|
Una propiedad del argumento auction config que pasó el vendedor. Esto puede proporcionar indicadores contextuales sobre la página del servidor del comprador si el vendedor es una SSP que realiza una llamada de licitación 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 desee verificar una firma criptográfica de esos indicadores dentro de generateBid() como protección contra la manipulación. |
|
Un objeto cuyas claves son el trustedBiddingSignalsKeys del grupo de interés y cuyos valores se muestran en la solicitud trustedBiddingSignals . |
|
Un objeto construido 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 para el grupo de interés (como un registro de cuándo el grupo ganó una subasta anteriormente, para permitir la limitación de frecuencia en el dispositivo). |
|
Son indicadores que se garantiza que provengan 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 |
---|---|
|
El nombre de host donde 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 del componente. |
|
Es el vendedor de primer nivel en una subasta de componentes y solo está presente en una subasta de componentes. |
|
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 pasa a estar disponible para los ofertantes en generateBid() . Los ofertantes que participan en la subasta pueden elegir un tamaño de contenido diferente para el anuncio, y ese tamaño resultante se ajustará visualmente para adaptarse al 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 durante los últimos 30 días mientras el grupo de interés se almacenó de forma continua (es decir, no hay espacios de almacenamiento en el dispositivo por abandonar o por vencer la membresía). |
|
El campo recency indica la cantidad de tiempo (en minutos) que transcurre desde que este dispositivo se unió a este grupo de interés hasta ahora. |
|
Indica 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 desde sus victorias anteriores en milisegundos. Ten en cuenta que aquí el objeto de anuncio 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 la versión de los datos de las respuestas del servicio de par clave-valor del comprador. |
|
Cantidad máxima de componentes del anuncio que puede devolver generateBid() |
Cómo calcular una oferta
Para calcular el valor de una oferta, el código de 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,
// ...
}
}
Cómo devolver una oferta
generateBid()
muestra 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 usa esta información en su lógica de subasta y decisión. |
adCost |
Un valor numérico que se usa para pasar el costo de conversión o los clics 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 el redondeo se realiza de forma estocástica. |
adComponents |
Una lista opcional de hasta 20 componentes para anuncios compuestos por varias partes, tomada de la propiedad adComponents del argumento de 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 componentes. La configuración predeterminada es “false”. si no se especifica. |
bid |
Es una oferta numérica que ingresará en la subasta. El vendedor debe estar en posición de comparar ofertas de diferentes compradores; por lo tanto, las ofertas deben tener alguna unidad elegida por el vendedor (por ejemplo, "USD por cada 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 reglas del anunciante que indiquen dónde pueden aparecer o no sus anuncios. |
bidCurrency |
Indica la moneda de la oferta, que se utiliza para la currency-checking. |
render |
Es un diccionario que describe la creatividad que debe dibujarse si esta oferta gana la subasta. Esto incluye lo siguiente:
|
|
Un número entero de 0 a 4,095 (12 bits) que se pasa a reportWin() , con ruido, como se describe en el esquema de ruido y agrupamiento. Los valores no válidos, como los valores negativos, infinitos y NaN , se ignorarán 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 informe ganador del comprador a fin de habilitar el entrenamiento del modelo de AA. |