Más información sobre cómo funcionan los IDs de informes en una subasta de Protected Audience
Descripción general
Los IDs de informes son identificadores asociados con un anuncio que están disponibles para generar una oferta, calificarla y generar informes. El comprador proporciona los IDs de informes en la configuración del grupo de interés, y están disponibles en generateBid()
, scoreAd()
, reportResult()
y reportWin()
en diversas condiciones que se analizan en esta guía.
Los IDs de informes te permiten denunciar un identificador para un anuncio y, además, habilitar casos de uso como acuerdos.
Existen tres IDs de informes de dos tipos:
- IDs de informes no seleccionables
buyerReportingId
(una cadena)buyerAndSellerReportingId
(una cadena)
- IDs de informes seleccionables
selectableBuyerAndSellerReportingIds
(un array de cadenas)
Los IDs de informes se comportan de manera diferente según si se usan o no los IDs de informes seleccionables. Cuando solo se usan IDs de informes que no se pueden seleccionar, esos IDs solo están disponibles dentro de las funciones de informes. Cuando se usan IDs de informes seleccionables, junto con IDs de informes no seleccionables, si es necesario, todos los IDs definidos también estarán disponibles en generateBid()
y scoreAd()
.
IDs de informes no seleccionables
buyerReportingId
y buyerAndSellerReportingId
son IDs de informes que no se pueden seleccionar y que se definen en la configuración del grupo de interés y que están disponibles en las funciones de informes de compradores y vendedores. Las funciones de informes del comprador y el vendedor solo se ejecutarán para el anuncio ganador, y las funciones recibirán los IDs de informes definidos para ese anuncio ganador.
Cuando se usa sin IDs de informes seleccionables, la función de informes del comprador recibe buyerReportingId
o buyerAndSellerReportingId
, según el comportamiento de reemplazo, y la función de informes del vendedor recibe buyerAndSellerReportingId
. Si no se definen buyerReportingId
ni buyerAndSellerReportingId
en la configuración del grupo de interés, la función reportWin()
recibe el nombre del grupo de interés (interestGroupName
) de la oferta ganadora.
Los IDs que no se pueden seleccionar no están disponibles dentro de generateBid()
ni scoreAd()
si no se usan en conjunto con IDs de informes seleccionables.
IDs de informes en grupos de interés
El comprador define los IDs de informe para cada anuncio en un grupo de interés:
navigator.joinAdInterestGroup({
owner: 'https://buyer.example',
name: 'example-interest-group',
ads: [{
renderUrl: `https://buyer.example/ad.html`,
// buyerAndSellerReportingId goes to the buyer and seller reporting functions
buyerAndSellerReportingId: 'bsrid123',
// buyerReportingId is defined here as an example, but
// is not used due to the overwrite rules described later
buyerReportingId: 'brid123',
}]
});
Informes de vendedores
Durante la fase de informe del vendedor, el valor de buyerAndSellerReportingId
pasa a estar disponible para reportResult()
:
function reportResult(..., browserSignals, ...) {
const {
buyerAndSellerReportingId // 'bsrid123'
} = browserSignals;
sendReportTo(`https://seller.example/report?bsrid=${buyerAndSellerReportingId}`);
}
Antes de que el ID esté disponible en reportResult()
, se verifica el anonimato k con el propietario del grupo de intereses, la URL de la secuencia de comandos de ofertas, la URL de renderización y el tamaño del anuncio (el tamaño del anuncio se excluye de esta verificación hasta, al menos, el 1ᵉʳ trimestre de 2025). Si no es k-anónimo, se ejecutará la función reportResult()
de todas formas, pero el valor del ID de informe no estará disponible dentro de la función.
Informes de compradores
Durante la fase de informe del comprador de la subasta, hay un ID de informe disponible para reportWin()
. Si se define más de un ID de informe en el grupo de interés, se aplicará una regla de reemplazo en la que buyerAndSellerReportingId
reemplace buyerReportingId
:
- Si se definen
buyerAndSellerReportingId
ybuyerReportingId
,buyerAndSellerReportingId
reemplazará abuyerReportingId
, ybuyerAndSellerReportingId
estará disponible dentro dereportWin()
. - Si solo se define
buyerReportingId
,buyerReportingId
estará disponible. - Si no se definen
buyerAndSellerReportingId
nibuyerReportingId
,interestGroupName
estará disponible.
function reportWin(..., browserSignals, ...) {
const {
buyerAndSellerReportingId // 'bsrid123'
} = browserSignals;
sendReportTo(`https://seller.example/report?bsrid=${buyerAndSellerReportingId}`);
}
Se verifica el k-anonimato del ID de informe que está disponible en reportWin()
con el propietario del grupo de interés, la URL de la secuencia de comandos de ofertas, la URL de renderización y el tamaño del anuncio (el tamaño del anuncio se excluye de esta verificación hasta, al menos, el primer trimestre de 2025). Si no pasa la verificación de k-anonimato, se ejecutará reportWin()
de todas formas, pero el valor del ID de informe no estará disponible dentro de la función.
Solo se definió buyerReportingId
Si solo se define buyerReportingId
en la configuración del grupo de intereses, ocurre lo siguiente:
navigator.joinAdInterestGroup({
owner: 'https://buyer.example',
name: 'example-interest-group',
ads: [{
renderUrl: `https://buyer.example/ad.html`,
buyerReportingId: 'brid123',
}]
});
Luego, buyerReportingId
estará disponible dentro de reportWin()
:
function reportWin(..., browserSignals, ...) {
const {
buyerReportingId, // 'brid123'
} = browserSignals;
}
Antes de que esté disponible para reportWin()
, se verifica el k-anonimato de buyerReportingId
con el propietario del grupo de interés, la URL de la secuencia de comandos de ofertas, la URL de renderización y el tamaño del anuncio (el tamaño del anuncio se excluye de esta verificación al menos hasta el primer trimestre de 2025).
Solo se definen los campos purchaseAndSellerReportingId
Si solo se define buyerAndSellerReportingId
en la configuración del grupo de intereses, ocurre lo siguiente:
navigator.joinAdInterestGroup({
owner: 'https://buyer.example',
name: 'example-interest-group',
ads: [{
renderUrl: `https://buyer.example/ad.html`,
buyerAndSellerReportingId: 'bsrid123',
}]
});
Luego, buyerAndSellerReportingId
estará disponible dentro de reportWin()
:
function reportWin(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'bsrid123'
} = browserSignals;
}
Antes de que esté disponible para reportWin()
, se verifica el k-anonimato de buyerAndSellerReportingId
con el propietario del grupo de interés, la URL de la secuencia de comandos de ofertas, la URL de renderización y el tamaño del anuncio (el tamaño del anuncio se excluye de esta verificación al menos hasta el primer trimestre de 2025).
buyerAndSellerReportingId
y buyerReportingId
se definen
Si buyerAndSellerReportingId
y buyerReportingId
se definen en la configuración del grupo de interés, haz lo siguiente:
navigator.joinAdInterestGroup({
owner: 'https://buyer.example',
name: 'example-interest-group',
ads: [{
renderUrl: `https://buyer.example/ad.html`,
buyerReportingId: 'brid123',
buyerAndSellerReportingId: 'bsrid123',
}]
});
Entonces, solo buyerAndSellerReportingId
está disponible dentro de reportWin()
debido al comportamiento de reemplazo:
function reportWin(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'bsrid123'
} = browserSignals;
}
Antes de que esté disponible para reportWin()
, se verifica el k-anonimato de buyerAndSellerReportingId
con el propietario del grupo de interés, la URL de la secuencia de comandos de ofertas, la URL de renderización y el tamaño del anuncio (el tamaño del anuncio se excluye de esta verificación al menos hasta el primer trimestre de 2025).
No se definieron buyerAndSellerReportingId
ni buyerReportingId
Si no se define ninguno de los IDs de informes en la configuración del grupo de interés, haz lo siguiente:
navigator.joinAdInterestGroup({
owner: 'https://buyer.example',
name: 'example-interest-group',
ads: [{
renderUrl: `https://buyer.example/ad.html`,
}]
});
Entonces, el grupo de interés name
estará disponible dentro de reportWin()
:
function reportWin(..., browserSignals, ...) {
const {
interestGroupName, // 'example-interest-group'
} = browserSignals;
}
Antes de que esté disponible para reportWin()
, se verifica el k-anonimato del nombre del grupo de interés (interestGroupName
) con el propietario del grupo de interés, la URL de la secuencia de comandos de licitación, la URL de renderización y el tamaño del anuncio (el tamaño del anuncio se excluye de esta verificación hasta, al menos, el 1er trim. de 2025).
IDs de informes seleccionables
Los IDs de informes seleccionables permiten que un comprador seleccione un ID durante la generación de la oferta, y el navegador pone el valor seleccionado a disposición de scoreAd()
y de las funciones de informes. El valor selectableBuyerAndSellerReportingIds
, que es un array de cadenas, se proporciona a generateBid()
, y el comprador puede mostrar un ID seleccionado como selectedBuyerAndSellerReportingId
.
Las funciones generateBid()
y scoreAd()
se ejecutarán para cada anuncio definido en la configuración del grupo de interés y recibirán los IDs de informes de cada anuncio. Las funciones de informes del comprador y el vendedor solo se ejecutarán para el anuncio ganador, y las funciones recibirán los IDs de informes definidos para ese anuncio ganador.
Cuando los IDs de informes no seleccionables se usan junto con los IDs de informes seleccionables, su comportamiento cambia con respecto al flujo de trabajo descrito en la sección anterior. A diferencia del comportamiento inicial de los IDs de informes no seleccionables que solo están disponibles dentro de las funciones de informes, los IDs de informes seleccionables permiten que los IDs de informes no seleccionables también estén disponibles dentro de generateBid()
y scoreAd()
.
Grupo de interés
El campo de IDs de informes seleccionables (selectableBuyerAndSellerReportingIds
) es un array de cadenas que define el comprador en el grupo de interés de un anuncio. Los IDs de informes no seleccionables también se pueden definir junto con los IDs de informes seleccionables:
navigator.joinAdInterestGroup({
owner: 'https://buyer.example',
name: 'example-interest-group',
ads: [{
renderUrl: `https://buyer.example/ad.html`,
buyerReportingId: 'brid123',
buyerAndSellerReportingId: 'bsrid123',
selectableBuyerAndSellerReportingIds: ['sbsrid1', 'sbsrid2', 'sbsrid3']
}]
});
Generación de ofertas del comprador
Si se definió selectableBuyerAndSellerReportingIds
en la configuración del grupo de interés, estará disponible dentro de generateBid()
junto con otros IDs de informes que se definieron.
function generateBid(..., browserSignals, ...) {
const {
buyerReportingId, // 'brid123'
buyerAndSellerReportingId, // 'bsrid123'
selectableBuyerAndSellerReportingIds // ['sbsrid1', 'sbsrid2', 'sbsrid3']
} = browserSignals;
return {
bid: 1,
render: 'https://buyer.example/ad.html',
selectedBuyerAndSellerReportingId: 'sbsrid2' // Buyer returns the selected ID
};
}
El comprador puede elegir uno de los IDs del array selectableBuyerAndSellerReportingIds
en generateBid()
y mostrar el ID seleccionado como selectedBuyerAndSellerReportingId
. Se rechaza la oferta si el valor seleccionado no está en el array selectableBuyerAndSellerReportingIds
. Si se define selectableBuyerAndSellerReportingIds
en la configuración del grupo de intereses y el comprador no muestra selectedBuyerAndSellerReportingId
desde generateBid()
, los IDs de informe volverán al comportamiento descrito para los IDs de informe no seleccionables.
Una oferta con un valor mostrado para selectedbuyerAndSellerReportingId
solo puede ganar la subasta si el valor de selectedbuyerAndSellerReportingId
es en conjunto k-anónimo junto con buyerAndSellerReportingId
(si está presente), buyerReportingId
(si está presente), el propietario del grupo de interés, la URL de la secuencia de comandos de licitación, la URL de renderización y el tamaño del anuncio (el tamaño del anuncio se excluye de esta verificación al menos hasta el 1er trim. de 2025).
Calificación de anuncios del vendedor
Para el vendedor, el selectedBuyerAndSellerReportingId
que devolvió el comprador de generateBid()
estará disponible en scoreAd()
, junto con buyerAndSellerReportingId
si se definió en la configuración del grupo de interés.
function scoreAd(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'bsrid123'
selectedBuyerAndSellerReportingId, // 'sbsrid2'
} = browserSignals;
// ...
}
Informes de vendedores
En el caso de los informes del vendedor, el selectedBuyerAndSellerReportingId
que devolvió el comprador de generateBid()
estará disponible en reportResult()
, junto con buyerAndSellerReportingId
, si se definió en el grupo de interés.
function reportResult(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'bsrid123'
selectedBuyerAndSellerReportingId // 'sbsrid2'
} = browserSignals;
// ...
}
Si se definió selectableBuyerAndSellerReportingIds
en la configuración del grupo de interés y se devolvió selectedBuyerAndSellerReportingId
desde generateBid()
, no podrá ganar la subasta, a menos que selectedBuyerAndSellerReportingId
y buyerAndSellerReportingId
(si están presentes) sean k-anónimos con el propietario del grupo de interés, la URL de la secuencia de comandos de ofertas, la URL de renderización y el tamaño del anuncio (el tamaño del anuncio se excluye de esta verificación hasta, al menos, el primer trimestre de 2025), y reportResult()
no se ejecutará para esa oferta. Por lo tanto, si se llama a reportResult()
con un valor para selectedBuyerAndSellerReportingId
, significa que los IDs de informes aprobaron la verificación de k-anonimato y todos los IDs de informes definidos estarán disponibles dentro de reportResult()
.
Informes de compradores
Si se definió selectableBuyerAndSellerReportingIds
en la configuración del grupo de intereses y se devolvió selectedBuyerAndSellerReportingId
desde generateBid()
, todos los IDs de informes que se definieron en la configuración del grupo de intereses estarán disponibles. Ten en cuenta que, al igual que con los informes del vendedor, si los IDs de informes no son k-anónimos, no pueden ganar la subasta y reportWin()
no se ejecutará para esa oferta.
function reportWin(..., browserSignals, ...) {
const {
buyerReportingId, // 'brid123'
buyerAndSellerReportingId, // 'bsrid123'
selectedBuyerAndSellerReportingId // 'sbsrid2'
} = browserSignals;
// ...
}
Reglas de anulación
A continuación, resumimos las reglas de reemplazo para los IDs de informes seleccionables y los que no se pueden seleccionar. El navegador determina cuál de selectableBuyerAndSellerReportingIds
, buyerAndSellerReportingId
, buyerReportingId
y el nombre del grupo de intereses se pasa a reportWin()
con la siguiente lógica:
- Si una oferta devuelve
selectedBuyerAndSellerReportingId
,buyerAndSellerReportingId
(si está definido en el grupo de interés) ybuyerReportingId
(si se define en el grupo de interés) están disponibles para los informes.selectedBuyerAndSellerReportingId
- De lo contrario, si se define
buyerAndSellerReportingId
en el grupo de interés, solobuyerAndSellerReportingId
estará disponible para los informes. - De lo contrario, si se define
buyerReportingId
en el grupo de interés, solobuyerReportingId
estará disponible para los informes. - De lo contrario, solo el grupo de interés
name
estará disponible para generar informes.
En la siguiente tabla, se describe el comportamiento de reemplazo:
¿Los IDs de informes están definidos en la configuración del grupo de interés? | IDs de informes disponibles | |||
selectableBuyerAnd
|
buyerAndSeller
|
buyerReportingId
|
reportWin()
|
reportResult()
|
Sí, y se seleccionó en generateBid()
|
Opcional | Opcional |
1) selectableBuyerAnd 2) buyerAndSeller (si está definida)3) buyerReportingId (si está definida)
|
1) selectableBuyerAnd 2) buyerAndSeller (si se definió) |
No, o no seleccionado en generateBid() |
Sí | Ignorada | buyerAndSeller |
buyerAndSeller |
No, o no se seleccionó en generateBid() |
No | Sí | buyerReportingId |
Ninguno |
No, o no se seleccionó en generateBid() |
No | No | interestGroupName |
Ninguno |
Interactúa y comparte comentarios
- Para obtener más información sobre los IDs de informe, consulta la sección ID de informe de la explicación de Protected Audience.
- GitHub: Formula preguntas y sigue el debate sobre los problemas en el repositorio de la API.
- W3C: Conversar sobre casos de uso del sector en la llamada de WICG
- Avisos: Únete a la lista de distribución o ábrela.
- Asistencia para desarrolladores de Privacy Sandbox: Haga preguntas y participe en debates en el repositorio de Asistencia para desarrolladores de Privacy Sandbox.
- Chromium: Informa un error en Chromium y haz preguntas sobre la implementación disponible para probar en Chrome.