Descubre 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 intereses, y estos estarán disponibles en generateBid()
, scoreAd()
, reportResult()
y reportWin()
en varias condiciones que se analizan en esta guía.
Los IDs de informes te permiten informar un identificador de un anuncio y también habilitar casos de uso como las ofertas.

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 IDs de informes seleccionables. Cuando solo se usan IDs de informes que no se pueden seleccionar, esos IDs solo estará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 que no se pueden seleccionar

buyerReportingId
y buyerAndSellerReportingId
son IDs de informes no seleccionables definidos en la configuración del grupo de intereses que están disponibles en las funciones de informes del comprador y del vendedor. Las funciones de informes del comprador y del 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 intereses, la función reportWin()
recibe el nombre del grupo de intereses (interestGroupName
) de la oferta ganadora.
Los IDs no seleccionables no están disponibles en generateBid()
y scoreAd()
si no se usan junto con IDs de informes seleccionables.
IDs de informes en los grupos de interés
El comprador define los IDs de informes para cada anuncio de 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 del vendedor
Durante la fase de informes del vendedor, el valor buyerAndSellerReportingId
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 k-anonimato 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ónima, la función reportResult()
se ejecutará de todos modos, pero el valor del ID de informe no estará disponible dentro de la función.
Informes de compradores
Durante la fase de informes del comprador de la subasta, un ID de informe estará disponible para reportWin()
. Si se define más de un ID de informe en el grupo de intereses, se aplica una regla de reemplazo en la que buyerAndSellerReportingId
reemplaza a 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}`);
}
El ID de informe que se vuelve disponible dentro de reportWin()
se verifica para el k-anonimato 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 pasa la verificación de k-anonimato, reportWin()
se ejecutará de todos modos, pero el valor del ID de informe no estará disponible dentro de la función.
Solo se define buyerReportingId
Si solo se define buyerReportingId
en la configuración del grupo de intereses, haz lo siguiente:
navigator.joinAdInterestGroup({
owner: 'https://buyer.example',
name: 'example-interest-group',
ads: [{
renderUrl: `https://buyer.example/ad.html`,
buyerReportingId: 'brid123',
}]
});
Luego, buyerReportingId
está disponible dentro de reportWin()
:
function reportWin(..., browserSignals, ...) {
const {
buyerReportingId, // 'brid123'
} = browserSignals;
}
Antes de estar disponible para reportWin()
, se verifica que buyerReportingId
tenga k-anonimato 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).
Solo se define buyerAndSellerReportingId
Si solo se define buyerAndSellerReportingId
en la configuración del grupo de intereses, haz lo siguiente:
navigator.joinAdInterestGroup({
owner: 'https://buyer.example',
name: 'example-interest-group',
ads: [{
renderUrl: `https://buyer.example/ad.html`,
buyerAndSellerReportingId: 'bsrid123',
}]
});
Luego, buyerAndSellerReportingId
está disponible dentro de reportWin()
:
function reportWin(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'bsrid123'
} = browserSignals;
}
Antes de estar disponible para reportWin()
, se verifica que buyerAndSellerReportingId
tenga k-anonimato 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).
Se definen buyerAndSellerReportingId
y buyerReportingId
Si se definen buyerAndSellerReportingId
y buyerReportingId
en la configuración del grupo de intereses, 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 estar disponible para reportWin()
, se verifica que buyerAndSellerReportingId
tenga k-anonimato 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).
No se definen buyerAndSellerReportingId
ni buyerReportingId
.
Si no se definen ninguno de los IDs de informes en la configuración del grupo de intereses, ocurrirá lo siguiente:
navigator.joinAdInterestGroup({
owner: 'https://buyer.example',
name: 'example-interest-group',
ads: [{
renderUrl: `https://buyer.example/ad.html`,
}]
});
Luego, el grupo de intereses name
estará disponible dentro de reportWin()
:
function reportWin(..., browserSignals, ...) {
const {
interestGroupName, // 'example-interest-group'
} = browserSignals;
}
Antes de estar disponible para reportWin()
, se verifica el nombre del grupo de intereses (interestGroupName
) para comprobar si cumple con el principio de k-anonimato 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).
IDs de informes seleccionables

Los IDs de informe seleccionables permiten que un comprador seleccione un ID durante la generación de ofertas, y el navegador pone el valor seleccionado a disposición de scoreAd()
y 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 intereses y recibirán los IDs de informes de cada anuncio. Las funciones de informes del comprador y del 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 del 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 en 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 intereses 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 intereses, estará disponible en generateBid()
junto con otros IDs de informes que se hayan definido.
function generateBid(interestGroup, ...) {
const [{
buyerReportingId, // 'brid123'
buyerAndSellerReportingId, // 'bsrid123'
selectableBuyerAndSellerReportingIds // ['sbsrid1', 'sbsrid2', 'sbsrid3']
}] = interestGroup.ads;
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
. La oferta se rechaza si el valor seleccionado no está en el array selectableBuyerAndSellerReportingIds
. Si selectableBuyerAndSellerReportingIds
se define 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 que se muestra para selectedbuyerAndSellerReportingId
solo puede ganar la subasta si el valor de selectedbuyerAndSellerReportingId
es conjuntamente k-anónima junto con buyerAndSellerReportingId
(si está presente), buyerReportingId
(si está presente), 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).
Calificación de los anuncios del vendedor
Para el vendedor, el selectedBuyerAndSellerReportingId
que devolvió el comprador desde generateBid()
estará disponible en scoreAd()
, junto con buyerAndSellerReportingId
si se definió en la configuración del grupo de intereses.
function scoreAd(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'bsrid123'
selectedBuyerAndSellerReportingId, // 'sbsrid2'
} = browserSignals;
// ...
}
Informes del vendedor
En el caso de los informes del vendedor, el selectedBuyerAndSellerReportingId
que devolvió el comprador desde generateBid()
estará disponible en reportResult()
, junto con buyerAndSellerReportingId
, si se definió en el grupo de intereses.
function reportResult(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'bsrid123'
selectedBuyerAndSellerReportingId // 'sbsrid2'
} = browserSignals;
// ...
}
Si se definió selectableBuyerAndSellerReportingIds
en la configuración del grupo de intereses y se devolvió selectedBuyerAndSellerReportingId
desde generateBid()
, no se puede ganar la subasta, a menos que selectedBuyerAndSellerReportingId
y buyerAndSellerReportingId
(si están presentes) sean k-anónimas 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), 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 pasaron 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 interés y se mostró selectedBuyerAndSellerReportingId
desde generateBid()
, todos los IDs de informes que se definieron en la configuración del grupo de interés 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 reemplazo
A continuación, resumimos las reglas de reemplazo para los IDs de informes no seleccionables y los seleccionables. 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 se muestra
selectedBuyerAndSellerReportingId
de una oferta,selectedBuyerAndSellerReportingId
,buyerAndSellerReportingId
(si se define en el grupo de intereses) ybuyerReportingId
(si se define en el grupo de intereses) están disponibles para los informes. - De lo contrario, si se define
buyerAndSellerReportingId
en el grupo de intereses, solobuyerAndSellerReportingId
estará disponible para los informes. - De lo contrario, si se define
buyerReportingId
en el grupo de intereses, 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 intereses? | IDs de informes disponibles | |||
selectableBuyerAnd
|
buyerAndSeller
|
buyerReportingId
|
reportWin()
|
reportResult()
|
Sí y seleccioné en generateBid()
|
Opcional | Opcional |
1) selectedBuyerAnd 2) buyerAndSeller (si está definido)3) buyerReportingId (si está definido)
|
1) selectedBuyerAnd 2) buyerAndSeller (si está definido) |
No, o no seleccionado en generateBid() |
Sí | Ignorada | buyerAndSeller |
buyerAndSeller |
No, o no seleccionado 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: Haz preguntas y sigue el debate en los problemas del repositorio de la API.
- W3C: Analiza los casos de uso de la industria en la llamada de WICG.
- Anuncios: Únete a la lista de distribución o consulta su contenido.
- Asistencia para desarrolladores de Privacy Sandbox: Haz preguntas y únete a debates en el repositorio de asistencia para desarrolladores de Privacy Sandbox.
- Chromium: Envía un informe de errores de Chromium para hacer preguntas sobre la implementación disponible para probar en Chrome.