Protected Audience オークションでのプライベート マーケットプレイス(PMP)取引の実装
概要
取引(プライベート マーケットプレイス(PMP)とも呼ばれます)では、購入者は広告枠の一部に優先的にアクセスしたり、優先価格で入札したりできます。プログラマティック取引を容易にするために、シート ID と取引 ID が使用されます。
- シート ID は購入者が生成するもので、購入者の顧客を表す識別子です。シート ID は、たとえば、特定の販売者からシートの割引を受けている場合など、請求に影響する可能性があります。
- 取引 ID は購入者または販売者のいずれかから生成され、購入者と販売者の間の合意を表す識別子です。取引 ID には、費用/価格、ボリューム コミットメント、オーディエンス情報、独占性などのプロパティを設定できます。
Protected Audience では、レポート ID を使用して取引を促進します。これにより、シート ID と取引 ID をオークションの入札、スコアリング、レポートに使用できるようになります。レポート ID は、広告技術プロバイダがオークション後の Protected Audience レポートで取引 ID とシート ID を受け取り、取引を行い、請求業務を整理するためのメカニズムを提供します。購入者、販売者、代理店、広告主は、受け取った取引 ID とシート ID を解釈して理解するための独自の戦略を持っている可能性があります。
チュートリアル
Protected Audience オークションで取引を促進する手順は次のとおりです。
- 購入者は、オークションの実行前にインタレスト グループ設定でディール ID とシート ID を登録します。
- 取引 ID とシート ID は、[選択可能なレポート ID] フィールド(
selectableBuyerAndSellerReportingIds)で設定できます。 - すべての取引でシート ID が同じ場合は、そのシート ID を
buyerAndSellerReportingIdに設定し、取引 ID を選択可能なレポート ID フィールド(selectableBuyerAndSellerReportingIds)に設定できます。
- 取引 ID とシート ID は、[選択可能なレポート ID] フィールド(
- 入札単価の生成時に、取引 ID とシート ID が利用可能になります。購入者は
selectableBuyerAndSellerReportingIdsから取引 ID を選択します。購入者は、selectedBuyerAndSellerReportingIdを返すことで、その入札に関連付けられた取引 ID を含む入札を生成します。入札がオークションで落札されるのは、返された取引 ID が他のレポート ID やインタレスト グループの選択されたプロパティとともに k 匿名化されている場合のみです。 - 広告のスコアリング時に、選択した取引とシートの ID が販売者に提供されます。
- 取引 ID とシート ID は、販売者のレポート機能で使用できるようになります。
- 取引 ID とシート ID は、購入者のレポート機能で使用できるようになります。
1. 案件 ID とシート ID の登録
購入者は、オークションの実行前に、インタレスト グループの構成で取引 ID とシート ID を登録します。取引 ID とシート ID は、selectableBuyerAndSellerReportingIds で文字列の配列として設定されます。すべての取引でシート ID が同じで、繰り返す必要がない場合は、文字列を受け入れる buyerAndSellerReportingId フィールドにシート ID を追加できます。
const interestGroupConfig = {
owner: 'https://buyer.example',
name: 'example-ig',
ad: [
{
renderURL: 'https://buyer.example/ad.html',
selectableBuyerAndSellerReportingIds: ['deal123', 'deal456', 'deal789'], // Deal IDs
buyerAndSellerReportingId: 'seat123', // Seat ID
// Though it is not used to facilitate deals, the buyer
// reporting ID can be defined with other reporting IDs
buyerReportingId: 'brid123'
},
],
};
navigator.joinAdInterestGroup(interestGroupConfig);
取引のシート ID が異なる場合は、次の設定を使用できます。
const interestGroupConfig = {
owner: 'https://buyer.example',
name: 'example-ig',
ad: [
{
renderURL: 'https://buyer.example/ad.html',
selectableBuyerAndSellerReportingIds: [
'deal123seat123',
'deal456seat456',
'deal789seat456'
], // Deal and Seat IDs
},
],
};
navigator.joinAdInterestGroup(interestGroupConfig);
2. 入札生成時の購入者の取引 ID とシート ID
入札単価の生成時に、購入者は取引 ID に入札するかどうかを決定します。generateBid() では、購入者は selectableBuyerAndSellerReportingIds から取引 ID を選択し、値を selectedBuyerAndSellerReportingId として返すことができます。選択した取引 ID が selectableBuyerAndSellerReportingIds 配列に含まれていない場合、入札は拒否されます。
function generateBid(interestGroup, ...) {
const [{
buyerAndSellerReportingId, // 'seat123'
selectableBuyerAndSellerReportingIds // ['deal123', 'deal456', 'deal789']
buyerReportingId // 'brid123' - Not used for deals, but the value is available
}] = interestGroup.ads;
// ...
return {
bid: 1,
render: 'https://buyer.example/ad.html',
selectedBuyerAndSellerReportingId: 'deal456', // Buyer selects a deal ID
};
}
selectedbuyerAndSellerReportingId の戻り値を含む入札は、selectedbuyerAndSellerReportingId の値が buyerAndSellerReportingId(存在する場合)、buyerReportingId(存在する場合)、インタレスト グループの所有者、入札スクリプトの URL、レンダリング URL、広告サイズ(広告サイズは 2025 年第 1 四半期まではこのチェックから除外されます)とともに k 匿名性を持つ場合にのみ、オークションで落札できます。
インタレスト グループの構成で selectablebuyerAndSellerReportingIds が定義されている場合でも、generateBid() が selectedbuyerAndSellerReportingId を含まない入札を返すことは有効です。この場合、この入札が落札した場合にレポート関数に提供されるレポート ID は、選択不可のレポート ID の動作に従います。
最初の呼び出しで k 匿名性チェックに合格した広告を含む入札が生成されなかったために generateBid() が再実行された場合、k 匿名性チェックに合格しなかった selectableBuyerAndSellerReportingIds は再実行時のインタレスト グループには含まれません。
3. 広告のスコアリング時の販売者の取引 ID とシート ID
選択された取引 ID とシート ID(存在する場合)が scoreAd() に渡されます。販売者は、取引 ID と特別な条件を考慮して、落札単価の望ましさスコアを提供します。購入者が選択した取引 ID が適用されないと販売者が判断した場合、販売者は入札の望ましさスコアを 0 または負の値に設定して入札を拒否します。
function scoreAd(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'seat123'
selectedBuyerAndSellerReportingIds, // 'deal456'
} = browserSignals;
// ...
}
4. 販売者のレポート用の取引 ID とシート ID
入札がオークションで落札されるのは、selectedBuyerAndSellerReportingId、buyerAndSellerReportingId(存在する場合)、buyerReportingId(存在する場合)がインタレスト グループの所有者、入札スクリプトの URL、レンダリング URL、広告サイズ(広告サイズは少なくとも 2025 年第 1 四半期まではこのチェックから除外されます)と k 匿名性がある場合のみです。そのため、selectedBuyerAndSellerReportingId を含むレポート ID 値は常に reportResult() 内で利用できます。buyerReportingId は k 匿名性がチェックされますが、値は購入者レポート関数でのみ使用でき、販売者レポート関数では使用できません。
function reportResult(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'seat123'
selectedBuyerAndSellerReportingIds // 'deal456'
} = browserSignals;
// ...
}
5. 購入者レポート用の取引 ID とシート ID
販売者レポートと同じコンセプトが購入者レポートにも適用されます。入札がオークションで落札されるのは、selectedBuyerAndSellerReportingId、buyerAndSellerReportingId(存在する場合)、buyerReportingId(存在する場合)がインタレスト グループの所有者、入札スクリプトの URL、レンダリング URL、広告サイズ(広告サイズは少なくとも 2025 年第 1 四半期まではこのチェックから除外されます)と k 匿名性がある場合のみです。そのため、selectedBuyerAndSellerReportingId を含むレポート ID 値は常に reportWin() 内で利用できます。
function reportWin(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'seat123'
selectedBuyerAndSellerReportingId // 'deal456'
buyerReportingId // 'brid123' - Not used for deals, but the value is available
} = browserSignals;
}
意見交換とフィードバックの提供
- レポート用 ID について詳しくは、Protected Audience の説明のレポート用 ID のセクションをご覧ください。
- GitHub: API リポジトリの問題で質問を投稿し、意見交換に参加します。
- W3C: WICG の通話で業界のユースケースについて意見を交換してください。
- お知らせ: メーリング リストに参加または表示します。
- プライバシー サンドボックス デベロッパー サポート: プライバシー サンドボックス デベロッパー サポート リポジトリで質問を投稿し、意見を交換してください。
- Chromium: Chromium バグを報告して、Chrome でテスト可能な実装について質問します。