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 バグを報告してください。