Fonctionnement des ID de rapport dans une mise aux enchères Protected Audience
Présentation
Les ID de rapport sont des identifiants associés à une annonce et qui peuvent être utilisés pour générer une enchère, évaluer une enchère et créer des rapports. Les ID de rapport sont fournis par l'acheteur dans la configuration du groupe d'intérêt. Ils sont disponibles dans generateBid()
, scoreAd()
, reportResult()
et reportWin()
sous différentes conditions, qui sont décrites dans ce guide.
Les ID de rapport vous permettent de signaler un identifiant pour une annonce et d'utiliser des cas d'utilisation tels que les offres.
![Les ID de rapport sont disponibles pour les fonctions d'acheteur et de vendeur Protected Audience](https://developers.google.cn/static/privacy-sandbox/assets/images/pa-reporting-id-general.png?hl=fr)
Il existe trois ID de rapport de deux types:
- ID de rapport non sélectionnables
buyerReportingId
(chaîne)buyerAndSellerReportingId
(chaîne)
- ID de rapport sélectionnables
selectableBuyerAndSellerReportingIds
(un tableau de chaînes)
Les ID de reporting se comportent différemment selon que des ID de reporting sélectionnables sont utilisés. Lorsque seuls des ID de rapport non sélectionnables sont utilisés, ils ne sont disponibles que dans les fonctions de création de rapports. Lorsque des ID de rapport sélectionnables sont utilisés, ainsi que des ID de rapport non sélectionnables si nécessaire, tous les ID définis sont également disponibles dans generateBid()
et scoreAd()
.
ID de reporting non sélectionnables
![Les ID de reporting sont disponibles pour les fonctions d'acheteur et de vendeur Protected Audience](https://developers.google.cn/static/privacy-sandbox/assets/images/pa-reporting-id-non-selectable.png?hl=fr)
buyerReportingId
et buyerAndSellerReportingId
sont des ID de rapport non sélectionnables définis dans la configuration du groupe de centres d'intérêt et qui deviennent disponibles dans les fonctions de création de rapports pour les acheteurs et les vendeurs. Les fonctions de création de rapports pour les acheteurs et les vendeurs ne s'exécutent que pour l'annonce gagnante. Elles reçoivent les ID de rapport définis pour cette annonce gagnante.
Lorsqu'elle est utilisée sans ID de rapport sélectionnables, la fonction de création de rapports de l'acheteur reçoit buyerReportingId
ou buyerAndSellerReportingId
, en fonction du comportement d'écrasement, et la fonction de création de rapports du vendeur reçoit buyerAndSellerReportingId
. Si ni buyerReportingId
ni buyerAndSellerReportingId
ne sont définis dans la configuration du groupe de centres d'intérêt, la fonction reportWin()
reçoit le nom du groupe de centres d'intérêt (interestGroupName
) de l'enchère gagnante.
Les ID non sélectionnables ne sont pas disponibles dans generateBid()
et scoreAd()
s'ils ne sont pas utilisés avec des ID de reporting sélectionnables.
ID de création de rapports dans les groupes de centres d'intérêt
Les ID de rapport sont définis par l'acheteur pour chaque annonce d'un groupe de centres d'intérêt:
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',
}]
});
Rapports sur les vendeurs
Au cours de la phase de création des rapports sur les vendeurs, la valeur buyerAndSellerReportingId
devient disponible pour reportResult()
:
function reportResult(..., browserSignals, ...) {
const {
buyerAndSellerReportingId // 'bsrid123'
} = browserSignals;
sendReportTo(`https://seller.example/report?bsrid=${buyerAndSellerReportingId}`);
}
Avant que l'ID ne soit disponible dans reportResult()
, il est vérifié pour le k-anonymat avec le propriétaire du groupe d'intérêt, l'URL du script d'enchères, l'URL de rendu et la taille de l'annonce (la taille de l'annonce est exclue de cette vérification jusqu'au premier trimestre 2025 au moins). Si elle n'est pas k-anonyme, la fonction reportResult()
s'exécutera toujours, mais la valeur de l'ID de rapport ne sera pas disponible dans la fonction.
Rapports sur les acheteurs
Au cours de la phase de création de rapports sur les acheteurs de l'enchère, un ID de reporting devient disponible pour reportWin()
. Si plusieurs ID de rapport sont définis dans le groupe d'intérêts, une règle d'écrasement s'applique, où buyerAndSellerReportingId
écrase buyerReportingId
:
- Si
buyerAndSellerReportingId
etbuyerReportingId
sont tous deux définis,buyerAndSellerReportingId
écrasebuyerReportingId
etbuyerAndSellerReportingId
est disponible dansreportWin()
. - Si seul
buyerReportingId
est défini,buyerReportingId
sera disponible. - Si ni
buyerAndSellerReportingId
, nibuyerReportingId
ne sont définis,interestGroupName
est disponible.
function reportWin(..., browserSignals, ...) {
const {
buyerAndSellerReportingId // 'bsrid123'
} = browserSignals;
sendReportTo(`https://seller.example/report?bsrid=${buyerAndSellerReportingId}`);
}
L'ID de rapport disponible dans reportWin()
est vérifié pour le k-anonymat avec le propriétaire du groupe d'intérêts, l'URL du script d'enchères, l'URL de rendu et la taille de l'annonce (la taille de l'annonce est exclue de cette vérification jusqu'au moins au premier trimestre 2025). Si la vérification de l'anonymat k échoue, reportWin()
s'exécute toujours, mais la valeur de l'ID de rapport n'est pas disponible dans la fonction.
Seul buyerReportingId
est défini
Si seul buyerReportingId
est défini dans la configuration du groupe de centres d'intérêt:
navigator.joinAdInterestGroup({
owner: 'https://buyer.example',
name: 'example-interest-group',
ads: [{
renderUrl: `https://buyer.example/ad.html`,
buyerReportingId: 'brid123',
}]
});
buyerReportingId
est ensuite disponible dans reportWin()
:
function reportWin(..., browserSignals, ...) {
const {
buyerReportingId, // 'brid123'
} = browserSignals;
}
Avant d'être disponible pour reportWin()
, buyerReportingId
est vérifié pour la confidentialité k-anonyme avec le propriétaire du groupe de centres d'intérêt, l'URL du script d'enchères, l'URL de rendu et la taille de l'annonce (la taille de l'annonce est exclue de cette vérification jusqu'au premier trimestre 2025 au moins).
Seul buyerAndSellerReportingId est défini
Si seul buyerAndSellerReportingId
est défini dans la configuration du groupe de centres d'intérêt:
navigator.joinAdInterestGroup({
owner: 'https://buyer.example',
name: 'example-interest-group',
ads: [{
renderUrl: `https://buyer.example/ad.html`,
buyerAndSellerReportingId: 'bsrid123',
}]
});
buyerAndSellerReportingId
est ensuite disponible dans reportWin()
:
function reportWin(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'bsrid123'
} = browserSignals;
}
Avant d'être disponible pour reportWin()
, buyerAndSellerReportingId
est vérifié pour la confidentialité k-anonyme avec le propriétaire du groupe de centres d'intérêt, l'URL du script d'enchères, l'URL de rendu et la taille de l'annonce (la taille de l'annonce est exclue de cette vérification jusqu'au premier trimestre 2025 au moins).
buyerAndSellerReportingId
et buyerReportingId
sont définis.
Si buyerAndSellerReportingId
et buyerReportingId
sont définis dans la configuration du groupe de centres d'intérêt:
navigator.joinAdInterestGroup({
owner: 'https://buyer.example',
name: 'example-interest-group',
ads: [{
renderUrl: `https://buyer.example/ad.html`,
buyerReportingId: 'brid123',
buyerAndSellerReportingId: 'bsrid123',
}]
});
Seul buyerAndSellerReportingId
est alors disponible dans reportWin()
en raison du comportement d'écrasement:
function reportWin(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'bsrid123'
} = browserSignals;
}
Avant d'être disponible pour reportWin()
, buyerAndSellerReportingId
est vérifié pour la confidentialité k-anonyme avec le propriétaire du groupe de centres d'intérêt, l'URL du script d'enchères, l'URL de rendu et la taille de l'annonce (la taille de l'annonce est exclue de cette vérification jusqu'au premier trimestre 2025 au moins).
Ni buyerAndSellerReportingId
, ni buyerReportingId
ne sont définis.
Si aucun ID de rapport n'est défini dans la configuration du groupe de centres d'intérêt:
navigator.joinAdInterestGroup({
owner: 'https://buyer.example',
name: 'example-interest-group',
ads: [{
renderUrl: `https://buyer.example/ad.html`,
}]
});
Le groupe de centres d'intérêt name
est ensuite disponible dans reportWin()
:
function reportWin(..., browserSignals, ...) {
const {
interestGroupName, // 'example-interest-group'
} = browserSignals;
}
Avant d'être disponible pour reportWin()
, le nom du groupe de centres d'intérêt (interestGroupName
) est vérifié pour s'assurer qu'il est k-anonyme avec le propriétaire du groupe de centres d'intérêt, l'URL du script d'enchères, l'URL de rendu et la taille de l'annonce (la taille de l'annonce est exclue de cette vérification jusqu'au premier trimestre 2025 au moins).
ID de reporting sélectionnables
![Les ID de rapport sont disponibles pour les fonctions d'acheteur et de vendeur Protected Audience](https://developers.google.cn/static/privacy-sandbox/assets/images/pa-reporting-id-selectable.png?hl=fr)
Les ID de rapport sélectionnables permettent à un acheteur de sélectionner un ID lors de la génération d'enchères. Le navigateur met ensuite la valeur sélectionnée à la disposition de scoreAd()
et des fonctions de création de rapports. La valeur selectableBuyerAndSellerReportingIds
, qui est un tableau de chaînes, est fournie à generateBid()
. L'acheteur peut renvoyer un ID sélectionné en tant que selectedBuyerAndSellerReportingId
.
Les fonctions generateBid()
et scoreAd()
s'exécutent pour chaque annonce définie dans la configuration du groupe d'intérêts et reçoivent les ID de rapport pour chaque annonce. Les fonctions de création de rapports pour les acheteurs et les vendeurs ne s'exécutent que pour l'annonce gagnante. Elles reçoivent les ID de rapport définis pour cette annonce gagnante.
Lorsque des ID de rapport non sélectionnables sont utilisés avec des ID de rapport sélectionnables, leur comportement diffère du workflow décrit dans la section précédente. Contrairement au comportement initial, qui consistait à ce que les ID de rapport non sélectionnables ne soient disponibles que dans les fonctions de création de rapports, les ID de rapport sélectionnables peuvent également être disponibles dans generateBid()
et scoreAd()
.
Groupe de centres d'intérêt
Le champ selectableBuyerAndSellerReportingIds
, qui permet de sélectionner des ID de rapport, est un tableau de chaînes défini par l'acheteur dans le groupe de centres d'intérêt d'une annonce. Vous pouvez également définir des ID de rapport non sélectionnables en plus des ID de rapport sélectionnables:
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']
}]
});
Génération d'enchères de l'acheteur
Si selectableBuyerAndSellerReportingIds
a été défini dans la configuration du groupe de centres d'intérêt, il devient disponible dans generateBid()
, ainsi que les autres ID de rapport définis.
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
};
}
L'acheteur peut choisir l'un des ID de la matrice selectableBuyerAndSellerReportingIds
dans generateBid()
et renvoyer l'ID sélectionné sous la forme selectedBuyerAndSellerReportingId
. L'enchère est refusée si la valeur sélectionnée ne figure pas dans le tableau selectableBuyerAndSellerReportingIds
. Si selectableBuyerAndSellerReportingIds
est défini dans la configuration du groupe d'intérêts et que l'acheteur ne renvoie pas selectedBuyerAndSellerReportingId
à partir de generateBid()
, les ID de reporting reviendront au comportement décrit pour les ID de reporting non sélectionnables.
Une enchère avec une valeur renvoyée pour selectedbuyerAndSellerReportingId
ne peut gagner l'enchère que si la valeur de selectedbuyerAndSellerReportingId
est conjointement k-anonyme avec buyerAndSellerReportingId
(le cas échéant), buyerReportingId
(le cas échéant), le propriétaire du groupe de centres d'intérêt, l'URL du script d'enchères, l'URL de rendu et la taille de l'annonce (la taille de l'annonce est exclue de cette vérification jusqu'au premier trimestre 2025 au moins).
Noter les annonces des vendeurs
Pour le vendeur, le selectedBuyerAndSellerReportingId
renvoyé par l'acheteur à partir de generateBid()
devient disponible dans scoreAd()
, ainsi que buyerAndSellerReportingId
s'il a été défini dans la configuration du groupe de centres d'intérêt.
function scoreAd(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'bsrid123'
selectedBuyerAndSellerReportingId, // 'sbsrid2'
} = browserSignals;
// ...
}
Rapports sur les vendeurs
Pour les rapports du vendeur, le selectedBuyerAndSellerReportingId
renvoyé par l'acheteur à partir de generateBid()
est disponible dans reportResult()
, ainsi que buyerAndSellerReportingId
, s'il a été défini dans le groupe de centres d'intérêt.
function reportResult(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'bsrid123'
selectedBuyerAndSellerReportingId // 'sbsrid2'
} = browserSignals;
// ...
}
Si selectableBuyerAndSellerReportingIds
a été défini dans la configuration du groupe de centres d'intérêt et que selectedBuyerAndSellerReportingId
a été renvoyé à partir de generateBid()
, il ne peut pas remporter l'enchère, sauf si selectedBuyerAndSellerReportingId
et buyerAndSellerReportingId
(le cas échéant) sont k-anonymes avec le propriétaire du groupe de centres d'intérêt, l'URL du script d'enchères, l'URL de rendu et la taille de l'annonce (la taille de l'annonce est exclue de cette vérification jusqu'au premier trimestre 2025 au moins), et que reportResult()
ne sera pas exécuté pour cette enchère. Par conséquent, si reportResult()
est appelé avec une valeur pour selectedBuyerAndSellerReportingId
, cela signifie que les ID de rapport ont réussi la vérification de l'anonymat k et que tous les ID de rapport définis seront disponibles dans reportResult()
.
Rapports sur les acheteurs
Si selectableBuyerAndSellerReportingIds
a été défini dans la configuration du groupe de centres d'intérêt et que selectedBuyerAndSellerReportingId
a été renvoyé à partir de generateBid()
, tous les ID de rapport définis dans la configuration du groupe de centres d'intérêt deviennent disponibles. Notez que, comme pour les rapports sur les vendeurs, si les ID de rapport ne sont pas k-anonymes, ils ne peuvent pas remporter l'enchère et reportWin()
ne s'exécutera pas pour cette enchère.
function reportWin(..., browserSignals, ...) {
const {
buyerReportingId, // 'brid123'
buyerAndSellerReportingId, // 'bsrid123'
selectedBuyerAndSellerReportingId // 'sbsrid2'
} = browserSignals;
// ...
}
Règles d'écrasement
Vous trouverez ci-dessous un récapitulatif des règles d'écrasement pour les ID de rapport non sélectionnables et sélectionnables. Le navigateur détermine lequel de selectableBuyerAndSellerReportingIds
, buyerAndSellerReportingId
, buyerReportingId
et le nom du groupe de centres d'intérêt est transmis à reportWin()
en fonction de la logique suivante:
- Si
selectedBuyerAndSellerReportingId
est renvoyé à partir d'une enchère,selectedBuyerAndSellerReportingId
,buyerAndSellerReportingId
(si défini dans le groupe de centres d'intérêt) etbuyerReportingId
(si défini dans le groupe de centres d'intérêt) sont tous disponibles pour la création de rapports. - Sinon, si
buyerAndSellerReportingId
est défini dans le groupe de centres d'intérêt, seulbuyerAndSellerReportingId
est disponible pour les rapports. - Sinon, si
buyerReportingId
est défini dans le groupe de centres d'intérêt, seulbuyerReportingId
est disponible pour les rapports. - Sinon, seul le groupe d'intérêts
name
est disponible pour le reporting.
Le tableau suivant décrit le comportement d'écrasement:
Les ID de création de rapports sont-ils définis dans la configuration du groupe de centres d'intérêt ? | ID de création de rapports disponibles | |||
selectableBuyerAnd
|
buyerAndSeller
|
buyerReportingId
|
reportWin()
|
reportResult()
|
Oui, et vous avez sélectionné dans generateBid()
|
Facultatif | Facultatif |
1) selectedBuyerAnd 2) buyerAndSeller (si défini)3) buyerReportingId (si défini)
|
1) selectedBuyerAnd 2) buyerAndSeller (si défini) |
Non ou non sélectionné dans generateBid() |
Oui | Ignoré | buyerAndSeller |
buyerAndSeller |
Non ou non sélectionné dans generateBid() |
Non | Oui | buyerReportingId |
Aucun |
Non ou non sélectionné dans generateBid() |
Non | Non | interestGroupName |
Aucun |
Interagir et envoyer des commentaires
- Pour en savoir plus sur les ID de rapport, consultez la section "ID de rapport" de la présentation de Protected Audience.
- GitHub: posez des questions et suivez les discussions dans les problèmes du dépôt de l'API.
- W3C: discutez des cas d'utilisation dans différents secteurs lors de l'appel du groupe de travail Web Inclusion.
- Annonces: rejoignez ou consultez la liste de diffusion.
- Assistance pour les développeurs de la Privacy Sandbox: posez des questions et participez aux discussions sur le dépôt d'assistance pour les développeurs de la Privacy Sandbox.
- Chromium: signalez un bug Chromium pour poser des questions sur l'implémentation disponible à tester dans Chrome.