Protected Audience オークションでのレポート ID の仕組み
概要
レポート ID は、広告に関連付けられた ID で、入札の生成、入札のスコアリング、レポートの作成に使用できます。レポート ID は、インタレスト グループの設定で購入者が指定します。この ID は、このガイドで説明するさまざまな条件下で、generateBid()、scoreAd()、reportResult()、reportWin() で使用できます。
レポート ID を使用すると、広告の ID を報告できます。また、取引などのユースケースも可能になります。
レポート ID には、次の 2 種類の 3 つがあります。
- 選択できないレポート ID
buyerReportingId(文字列)buyerAndSellerReportingId(文字列)
- 選択可能なレポート ID
selectableBuyerAndSellerReportingIds(文字列の配列)
レポート ID の動作は、選択可能なレポート ID が使用されているかどうかによって異なります。選択不可のレポート ID のみを使用する場合、それらの ID はレポート関数内でのみ使用できます。選択可能なレポート用識別子と、必要に応じて選択不可能なレポート用識別子を使用すると、定義されたすべての ID が generateBid() と scoreAd() でも使用できるようになります。
選択できないレポート ID
buyerReportingId と buyerAndSellerReportingId は、インタレスト グループの設定で定義され、購入者と販売者のレポート機能で使用できる選択不可のレポート ID です。購入者と販売者のレポート関数は、落札した広告に対してのみ実行され、その落札した広告に定義されたレポート ID を受け取ります。
選択可能なレポート ID なしで使用した場合、購入者のレポート機能は上書き動作に応じて buyerReportingId または buyerAndSellerReportingId を受け取ります。販売者のレポート機能は buyerAndSellerReportingId を受け取ります。インタレスト グループの設定で buyerReportingId も buyerAndSellerReportingId も定義されていない場合、reportWin() 関数は落札した入札のインタレスト グループ名(interestGroupName)を受け取ります。
選択不可の ID は、選択可能なレポート ID と組み合わせて使用しない限り、generateBid() と scoreAd() 内で使用できません。
インタレスト グループのレポート ID
レポート ID は、インタレスト グループ内の各広告について購入者が定義します。
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',
}]
});
販売者レポート
販売者のレポート フェーズでは、buyerAndSellerReportingId 値が reportResult() で使用可能になります。
function reportResult(..., browserSignals, ...) {
const {
buyerAndSellerReportingId // 'bsrid123'
} = browserSignals;
sendReportTo(`https://seller.example/report?bsrid=${buyerAndSellerReportingId}`);
}
ID が reportResult() 内で使用可能になる前に、インタレスト グループのオーナー、入札スクリプト URL、レンダリング URL、広告サイズとの k-匿名性がチェックされます(2025 年第 1 四半期までは、広告サイズはこのチェックから除外されます)。k-匿名でない場合、reportResult() 関数は実行されますが、レポート ID 値は関数内で使用できません。
購入者のレポート
オークションの購入者レポート フェーズで、reportWin() は 1 つのレポート ID を使用できるようになります。インタレスト グループで複数のレポート ID が定義されている場合、buyerAndSellerReportingId が buyerReportingId を上書きするオーバーライド ルールが適用されます。
buyerAndSellerReportingIdとbuyerReportingIdの両方が定義されている場合、buyerAndSellerReportingIdはbuyerReportingIdを上書きし、buyerAndSellerReportingIdはreportWin()内で使用できます。buyerReportingIdのみが定義されている場合、buyerReportingIdを使用できます。buyerAndSellerReportingIdもbuyerReportingIdも定義されていない場合は、interestGroupNameを使用できます。
function reportWin(..., browserSignals, ...) {
const {
buyerAndSellerReportingId // 'bsrid123'
} = browserSignals;
sendReportTo(`https://seller.example/report?bsrid=${buyerAndSellerReportingId}`);
}
reportWin() 内で利用可能になるレポート ID は、インタレスト グループのオーナー、入札スクリプト URL、レンダリング URL、広告サイズとの k-匿名性がチェックされます(2025 年第 1 四半期までは、広告サイズはこのチェックから除外されます)。k-匿名性チェックに失敗した場合、reportWin() は実行されますが、レポート ID 値は関数内で使用できません。
buyerReportingId のみが定義されている
インタレスト グループの構成で buyerReportingId のみが定義されている場合:
navigator.joinAdInterestGroup({
owner: 'https://buyer.example',
name: 'example-interest-group',
ads: [{
renderUrl: `https://buyer.example/ad.html`,
buyerReportingId: 'brid123',
}]
});
buyerReportingId は reportWin() 内で使用できます。
function reportWin(..., browserSignals, ...) {
const {
buyerReportingId, // 'brid123'
} = browserSignals;
}
reportWin() で使用可能になる前に、buyerReportingId はインタレスト グループのオーナー、入札スクリプトの URL、レンダリング URL、広告サイズで k-匿名性を確認されます(2025 年第 1 四半期までは、広告サイズはこのチェックから除外されます)。
buyerAndSellerReportingId のみが定義されている
インタレスト グループの構成で buyerAndSellerReportingId のみが定義されている場合:
navigator.joinAdInterestGroup({
owner: 'https://buyer.example',
name: 'example-interest-group',
ads: [{
renderUrl: `https://buyer.example/ad.html`,
buyerAndSellerReportingId: 'bsrid123',
}]
});
buyerAndSellerReportingId は reportWin() 内で使用できます。
function reportWin(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'bsrid123'
} = browserSignals;
}
reportWin() で使用可能になる前に、buyerAndSellerReportingId はインタレスト グループのオーナー、入札スクリプトの URL、レンダリング URL、広告サイズで k-匿名性を確認されます(2025 年第 1 四半期までは、広告サイズはこのチェックから除外されます)。
buyerAndSellerReportingId と buyerReportingId の両方が定義されている
興味 / 関心グループの構成で buyerAndSellerReportingId と buyerReportingId の両方が定義されている場合:
navigator.joinAdInterestGroup({
owner: 'https://buyer.example',
name: 'example-interest-group',
ads: [{
renderUrl: `https://buyer.example/ad.html`,
buyerReportingId: 'brid123',
buyerAndSellerReportingId: 'bsrid123',
}]
});
上書き動作により、reportWin() 内で使用できるのは buyerAndSellerReportingId のみです。
function reportWin(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'bsrid123'
} = browserSignals;
}
reportWin() で使用可能になる前に、buyerAndSellerReportingId はインタレスト グループのオーナー、入札スクリプトの URL、レンダリング URL、広告サイズで k-匿名性を確認されます(2025 年第 1 四半期までは、広告サイズはこのチェックから除外されます)。
buyerAndSellerReportingId も buyerReportingId も定義されていない
インタレスト グループの設定でどちらのレポート ID も定義されていない場合:
navigator.joinAdInterestGroup({
owner: 'https://buyer.example',
name: 'example-interest-group',
ads: [{
renderUrl: `https://buyer.example/ad.html`,
}]
});
これで、インタレスト グループ name を reportWin() 内で使用できるようになります。
function reportWin(..., browserSignals, ...) {
const {
interestGroupName, // 'example-interest-group'
} = browserSignals;
}
興味 / 関心グループ名(interestGroupName)は、reportWin() で利用可能になる前に、興味 / 関心グループのオーナー、入札スクリプトの URL、レンダリング URL、広告サイズとの k-匿名性についてチェックされます(2025 年第 1 四半期までは、広告サイズはこのチェックから除外されます)。
選択可能なレポート ID
選択可能なレポート ID を使用すると、購入者は入札の生成時に ID を選択できます。ブラウザは、選択した値を scoreAd() とレポート関数で使用できるようにします。selectableBuyerAndSellerReportingIds 値(文字列の配列)が generateBid() に提供され、購入者は選択した ID を selectedBuyerAndSellerReportingId として返すことができます。
generateBid() 関数と scoreAd() 関数は、インタレスト グループの設定で定義された広告ごとに実行され、各広告のレポート ID を受け取ります。購入者と販売者のレポート関数は、落札した広告に対してのみ実行され、その落札した広告に定義されたレポート ID を受け取ります。
選択可能なレポート ID と選択不可能なレポート ID を併用する場合、動作は前のセクションで説明したワークフローとは異なります。選択不可のレポート ID がレポート関数内でのみ使用可能だった初期の動作とは異なり、選択可能なレポート ID を使用すると、選択不可のレポート ID を generateBid() と scoreAd() 内で使用できるようになります。
インタレスト グループ
選択可能なレポート ID フィールド(selectableBuyerAndSellerReportingIds)は、広告のインタレスト グループで購入者が定義した文字列の配列です。選択可能なレポート ID とともに、選択不可のレポート ID を定義することもできます。
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']
}]
});
購入者の入札単価の生成
興味 / 関心グループの設定で selectableBuyerAndSellerReportingIds が定義されている場合、定義された他のレポート ID とともに generateBid() 内で使用できるようになります。
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
};
}
購入者は、generateBid() の selectableBuyerAndSellerReportingIds 配列から ID のいずれかを選択し、選択した ID を selectedBuyerAndSellerReportingId として返すことができます。選択した値が selectableBuyerAndSellerReportingIds 配列にない場合、入札は不承認になります。インタレスト グループの設定で selectableBuyerAndSellerReportingIds が定義されていて、購入者が generateBid() から selectedBuyerAndSellerReportingId を返さない場合、レポート用識別子は選択不可のレポート用識別子で説明されている動作に戻ります。
selectedbuyerAndSellerReportingId の値が返された入札は、selectedbuyerAndSellerReportingId の値が buyerAndSellerReportingId(存在する場合)、buyerReportingId(存在する場合)、インタレスト グループ オーナー、入札スクリプト URL、レンダリング URL、広告サイズとともに k-匿名化されている場合にのみ、オークションで落札する可能性があります(広告サイズは 2025 年第 1 四半期までこのチェックから除外されます)。
販売者の広告のスコアリング
販売者の場合、購入者が generateBid() から返した selectedBuyerAndSellerReportingId は、インタレスト グループの設定で定義されている場合の buyerAndSellerReportingId とともに scoreAd() で利用できるようになります。
function scoreAd(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'bsrid123'
selectedBuyerAndSellerReportingId, // 'sbsrid2'
} = browserSignals;
// ...
}
販売者レポート
販売者向けレポートでは、購入者が generateBid() から返した selectedBuyerAndSellerReportingId が、インタレスト カテゴリで定義されている buyerAndSellerReportingId とともに reportResult() で利用可能になります。
function reportResult(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'bsrid123'
selectedBuyerAndSellerReportingId // 'sbsrid2'
} = browserSignals;
// ...
}
selectableBuyerAndSellerReportingIds がインタレスト グループの設定で定義され、selectedBuyerAndSellerReportingId が generateBid() から返された場合、selectedBuyerAndSellerReportingId と buyerAndSellerReportingId(存在する場合)がインタレスト グループのオーナー、入札スクリプトの URL、レンダリング URL、広告サイズに対して k-匿名でなければ、オークションで落札することはできません(広告サイズは 2025 年第 1 四半期までこのチェックから除外されます)。また、その入札に対して reportResult() は実行されません。したがって、selectedBuyerAndSellerReportingId の値を指定して reportResult() が呼び出された場合は、レポート ID が k-匿名性チェックに合格し、定義されたすべてのレポート ID が reportResult() 内で使用可能になります。
購入者のレポート
興味 / 関心グループの設定で selectableBuyerAndSellerReportingIds が定義され、generateBid() から selectedBuyerAndSellerReportingId が返された場合、興味 / 関心グループの設定で定義されたすべてのレポート ID が使用可能になります。なお、販売者レポートと同様に、レポート ID が k-匿名でない場合、オークションで落札することはできず、その入札に対して reportWin() は実行されません。
function reportWin(..., browserSignals, ...) {
const {
buyerReportingId, // 'brid123'
buyerAndSellerReportingId, // 'bsrid123'
selectedBuyerAndSellerReportingId // 'sbsrid2'
} = browserSignals;
// ...
}
オーバーライド ルール
選択不可のレポート ID と選択可能なレポート ID の両方の上書きルールを以下にまとめます。selectableBuyerAndSellerReportingIds、buyerAndSellerReportingId、buyerReportingId、興味 / 関心グループ名のどれが reportWin() に渡されるかは、ブラウザによって次のロジックで決定されます。
- 入札から
selectedBuyerAndSellerReportingIdが返された場合、selectedBuyerAndSellerReportingId、buyerAndSellerReportingId(インタレスト グループで定義されている場合)、buyerReportingId(インタレスト グループで定義されている場合)のすべてをレポートに使用できます。 - 興味 / 関心のグループで
buyerAndSellerReportingIdが定義されている場合は、buyerAndSellerReportingIdのみをレポートに使用できます。 - 興味 / 関心のグループで
buyerReportingIdが定義されている場合は、buyerReportingIdのみをレポートに使用できます。 - それ以外の場合は、インタレスト グループ
nameのみをレポートに使用できます。
次の表に、上書きの動作を示します。
| レポート ID はインタレスト グループの設定で定義されていますか? | 利用可能なレポート ID | |||
selectableBuyerAnd
|
buyerAndSeller
|
buyerReportingId
|
reportWin()
|
reportResult()
|
はい、generateBid() で を選択しました。 |
省略可 | 省略可 |
1)selectedBuyerAnd2) buyerAndSeller(定義されている場合)3) buyerReportingId(定義されている場合)
|
1)selectedBuyerAnd2) buyerAndSeller(定義されている場合) |
| いいえ、または選択されていません ( generateBid()) |
はい | 無視 | buyerAndSeller |
buyerAndSeller |
| いいえ、または選択されていません ( generateBid()) |
いいえ | はい | buyerReportingId |
なし |
いいえ、または generateBid() の が選択されていません |
いいえ | いいえ | interestGroupName |
なし |
意見交換とフィードバックの提供
- レポート ID について詳しくは、Protected Audience の説明のレポート ID のセクションをご覧ください。
- GitHub: API リポジトリの問題で質問を投稿し、意見を交換してください。
- W3C: WICG コールで業界のユースケースについて意見を交換してください。
- お知らせ: メーリング リストに参加または表示します。
- プライバシー サンドボックス デベロッパー サポート: プライバシー サンドボックス デベロッパー サポート リポジトリで質問や意見交換を行えます。
- Chromium: Chrome でテスト可能な実装について質問するには、Chromium バグを報告してください。