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-anonymous であり、インタレスト グループのプロパティが選択された場合のみです。 - 広告スコアリング中に、選択した取引 ID とシート ID が販売者に提供されます。
- 取引 ID とシート ID は、販売者のレポート機能で利用できるようになります。
- 取引 ID とシート ID は、購入者のレポート機能で使用できるようになります。
1. 取引 ID とシート ID の登録
購入者は、オークションの実行前に、インタレスト グループの設定で取引 ID とシート ID を登録します。取引 ID と座席 ID は、selectableBuyerAndSellerReportingIds
で文字列の配列として設定されます。すべての取引でシート ID が同じで、シート 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 を適用できないと販売者は、好ましさスコアをゼロまたは負の値にして入札を拒否します。
function scoreAd(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'seat123'
selectedBuyerAndSellerReportingIds, // 'deal456'
} = browserSignals;
// ...
}
4. 販売者レポートの取引 ID とシート ID
オークションで落札できるのは、selectedBuyerAndSellerReportingId
、buyerAndSellerReportingId
(存在する場合)、buyerReportingId
(存在する場合)が、インタレスト グループの所有者、入札スクリプトの URL、レンダリング URL、広告サイズについて k-匿名性を持つ場合のみです(広告サイズは少なくとも 2025 年第 1 四半期までは除外されます)。そのため、selectedBuyerAndSellerReportingId
を含むレポート ID 値は、常に reportResult()
内で使用できます。buyerReportingId
で k-匿名性がチェックされていても、この値は購入者レポート関数でのみ使用でき、販売者レポート関数では使用できません。
function reportResult(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'seat123'
selectedBuyerAndSellerReportingIds // 'deal456'
} = browserSignals;
// ...
}
5. 購入者のレポート用の取引 ID とシート ID
購入者のレポートには、販売者のレポートと同じコンセプトが適用されます。オークションで落札できるのは、selectedBuyerAndSellerReportingId
、buyerAndSellerReportingId
(存在する場合)、buyerReportingId
(存在する場合)が、インタレスト グループの所有者、入札スクリプトの URL、レンダリング URL、広告サイズについて k-匿名性を持つ場合のみです(広告サイズは少なくとも 2025 年第 1 四半期までは除外されます)。そのため、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 コールで業界のユースケースについて意見を交換してください。
- お知らせ: メーリング リストに参加したり、メーリング リストを表示したりできます。
- プライバシー サンドボックスのデベロッパー サポート: Privacy Sandbox Developer Support リポジトリに質問を投稿したり、ディスカッションに参加したりできます。
- Chromium: Chrome でテスト可能な実装について質問するには、Chromium バグを報告してください。