Protected Audience オークションでのレポート ID の仕組み
概要
レポート ID は、広告に関連付けられた識別子で、入札単価の生成、入札単価のスコアリング、レポートの作成に使用できます。レポート ID は、インタレスト グループの設定で購入者が指定します。この ID は、このガイドで説明するさまざまな条件下で、generateBid()
、scoreAd()
、reportResult()
、reportWin()
で使用できるようになります。
レポート ID を使用すると、広告の識別子をレポートできるだけでなく、取引などのユースケースにも活用できます。
次の 2 種類のレポート ID が 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',
}]
});
販売者向けレポート
販売者レポート フェーズでは、reportResult()
が buyerAndSellerReportingId
の値を使用できます。
function reportResult(..., browserSignals, ...) {
const {
buyerAndSellerReportingId // 'bsrid123'
} = browserSignals;
sendReportTo(`https://seller.example/report?bsrid=${buyerAndSellerReportingId}`);
}
ID が reportResult()
内で使用可能になる前に、インタレスト グループの所有者、入札スクリプトの URL、レンダリング URL、広告サイズとの k-匿名性が確認されます(広告サイズは少なくとも 2025 年第 1 四半期までは除外されます)。k-anonymous でない場合、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;
}
reportWin()
で使用可能になる前に、インタレスト グループ名(interestGroupName
)について、インタレスト グループの所有者、入札スクリプトの 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(..., 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
};
}
購入者は generateBid()
の selectableBuyerAndSellerReportingIds
配列から ID を 1 つ選択し、選択した ID を selectedBuyerAndSellerReportingId
として返すことができます。選択した値が selectableBuyerAndSellerReportingIds
配列に含まれていない場合、入札は拒否されます。インタレスト グループの設定で selectableBuyerAndSellerReportingIds
が定義されていて、購入者が generateBid()
から selectedBuyerAndSellerReportingId
を返さない場合、レポート ID は選択できないレポート ID の動作に戻ります。
selectedbuyerAndSellerReportingId
の値が返された入札は、selectedbuyerAndSellerReportingId
の値が buyerAndSellerReportingId
(存在する場合)、buyerReportingId
(存在する場合)、インタレスト グループ オーナー、入札スクリプト URL、レンダリング URL、広告サイズとともに k-匿名化されている場合にのみ、オークションで落札する可能性があります(広告サイズは 2025 年第 1 四半期までこのチェックから除外されます)。
販売者の広告スコア
販売者の場合、購入者が generateBid()
から返した selectedBuyerAndSellerReportingId
は scoreAd()
で利用できるようになります。インタレスト グループの設定で定義されている場合は buyerAndSellerReportingId
になります。
function scoreAd(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'bsrid123'
selectedBuyerAndSellerReportingId, // 'sbsrid2'
} = browserSignals;
// ...
}
販売者向けレポート
販売者レポートでは、generateBid()
から購入者が返した selectedBuyerAndSellerReportingId
は、インタレスト グループで定義されている場合は buyerAndSellerReportingId
とともに reportResult()
で利用できるようになります。
function reportResult(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'bsrid123'
selectedBuyerAndSellerReportingId // 'sbsrid2'
} = browserSignals;
// ...
}
インタレスト グループの設定で selectableBuyerAndSellerReportingIds
が定義され、generateBid()
から selectedBuyerAndSellerReportingId
が返された場合、selectedBuyerAndSellerReportingId
と buyerAndSellerReportingId
(存在する場合)がインタレスト グループの所有者、入札スクリプトの URL、レンダリング URL、広告サイズについて k-匿名性を持つ(少なくとも 2025 年第 1 四半期までは広告サイズはこのチェックの対象外)、その入札では reportResult()
は実行されません。ただし、オークションを落札することはできません。したがって、selectedBuyerAndSellerReportingId
の値を指定して reportResult()
が呼び出された場合、レポート ID は k-匿名性チェックに合格し、定義されたすべてのレポート ID を reportResult()
内で使用できるようになります。
購入者向けレポート
インタレスト グループの設定で selectableBuyerAndSellerReportingIds
が定義され、generateBid()
から selectedBuyerAndSellerReportingId
が返された場合は、インタレスト グループの設定で定義されたすべてのレポート ID を使用できます。なお、販売者レポートと同様に、レポート ID が k-anonymous でない場合、オークションで落札できず、その入札では 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)selectableBuyerAnd 2) buyerAndSeller (定義されている場合)3) buyerReportingId (定義されている場合)
|
1)selectableBuyerAnd 2) buyerAndSeller (定義されている場合) |
いいえ、または選択されていません ( generateBid() ) |
はい | 無視 | buyerAndSeller |
buyerAndSeller |
いいえ、または選択されていません ( generateBid() ) |
いいえ | はい | buyerReportingId |
なし |
いいえ、または generateBid() の が選択されていません |
いいえ | いいえ | interestGroupName |
なし |
対応してフィードバックを共有する
- レポート ID について詳しくは、Protected Audience の説明にあるレポート ID のセクションをご覧ください。
- GitHub: API リポジトリで質問を投稿したり、問題に関するディスカッションをフォローしたりできます。
- W3C: WICG コールで業界のユースケースについて意見を交換してください。
- お知らせ: メーリング リストに参加したり、メーリング リストを表示したりできます。
- プライバシー サンドボックス デベロッパー サポート: プライバシー サンドボックス デベロッパー サポート リポジトリで質問や意見交換を行えます。
- Chromium: Chrome でテストできる実装についてご質問がある場合は、Chromium のバグを報告してください。