Protected Audience オークションでのレポート ID の仕組み
概要
レポート ID は、広告に関連付けられた識別子で、入札の生成、入札のスコアリング、レポートの作成に使用できます。レポート ID は、インタレスト グループの設定で購入者が指定します。この ID は、このガイドで説明するさまざまな条件下で、generateBid()
、scoreAd()
、reportResult()
、reportWin()
で使用できます。
レポート ID を使用すると、広告の識別子をレポートできます。また、取引などのユースケースも可能になります。

レポート ID には、次の 2 種類の 3 種類があります。
- 選択できないレポート ID
buyerReportingId
(文字列)buyerAndSellerReportingId
(文字列)
- 選択可能なレポート ID
selectableBuyerAndSellerReportingIds
(文字列の配列)
レポート ID の動作は、選択可能なレポート ID が使用されているかどうかによって異なります。選択不可のレポート 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
を返さない場合、レポート ID は選択不可のレポート ID で説明されている動作に戻ります。
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)selectedBuyerAnd 2) buyerAndSeller (定義されている場合)3) buyerReportingId (定義されている場合)
|
1)selectedBuyerAnd 2) buyerAndSeller (定義されている場合) |
いいえ、または選択されていません ( generateBid() ) |
対応 | 無視 | buyerAndSeller |
buyerAndSeller |
いいえ、または選択されていません ( generateBid() ) |
いいえ | 対応 | buyerReportingId |
なし |
いいえ、または generateBid() で が選択されていない |
いいえ | いいえ | interestGroupName |
なし |
意見交換とフィードバックの提供
- レポート ID について詳しくは、Protected Audience の説明のレポート ID のセクションをご覧ください。
- GitHub: API リポジトリの問題で質問を投稿し、ディスカッションに参加できます。
- W3C: WICG コールで業界のユースケースについて意見を交換してください。
- お知らせ: メーリング リストに参加または表示する。
- プライバシー サンドボックス デベロッパー サポート: プライバシー サンドボックス デベロッパー サポート リポジトリで質問や意見交換を行えます。
- Chromium: Chromium のバグを報告して、Chrome でテストできる実装について質問します。