Protected Audience API 広告オークションに関する Seller API ガイドとリファレンスです。
この記事では、現在テスト中の Protected Audience API で使用されている広告オークションの技術リファレンスを紹介します。
詳しくはデベロッパー ガイドをご覧ください。 Protected Audience API のサイクルを示します。詳しくは Protected Audience API の解説をご覧ください。 販売者がデバイス上のオークションを実施する方法を確認します。
デベロッパー以外の方は、Protected Audience API の概要をご覧ください。
Protected Audience API の広告オークションとは
Protected Audience API の広告オークションは、 ブラウザがユーザーのデバイス上で実行し、広告を選択します。プライバシー保護のため 販売者と購入者からのオークション コードを独立した JavaScript で実行 ワークレットが通信できない あります
<ph type="x-smartling-placeholder">![Protected Audience API 広告オークションの 6 つのステージ](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/six-stages-a-protected-a-3e1dd6fdeddbe.png?authuser=0000&hl=ja)
- 広告が表示されたサイトにユーザーがアクセスします。
- 販売者のコードは
navigator.runAdAuction()
を実行します。これにより、 入札可能な購入者などです営業担当者はスクリプトも含める必要があります。 (scoreAd()
)。 - 招待された購入者のコードが実行され、関連性の高い広告の入札単価と URL が生成されます その他のデータが含まれます。入札スクリプトでリアルタイム データをクエリし、 広告主からの広告キャンペーンの予算など Key-Value サービス。
- 販売者のコードが各入札のスコアを算出し、落札者を選択します。このロジックでは、 入札価格などのデータから、入札単価の好ましさが返されます。他を圧倒する広告 拒否されます営業担当者は独自の リアルタイム データ用の Key-Value サービス。
- 落札広告は不透明な値として返され、 フェンス付きフレーム。営業担当者と パブリッシャーはこの値を表示できません
- オークションは、販売者と落札した購入者にレポートされます。
オークションはいつ行われますか?
Protected Audience API は単独で、またはプログラマティック オークションで運用できます。複数販売者の場合 プログラマティックオークション:
- ユーザーが参加サイトにアクセスします。
- プログラマティック オークションは、他の販売者が実施して、利用可能な広告スロットのコンテキスト広告を探す。
- Protected Audience API オークションが実施されます。
scoreAd()
は、購入者の入札単価と最初のオークションの結果を比較します。
コンテキストの落札者を上回ることができない入札は拒否されます。
Protected Audience API 広告オークションの運営者は誰ですか?
広告スペースを販売するには、複数の当事者がオークションを実施する場合があります。
例:
- コンテンツ パブリッシャー: 自身のウェブサイトで広告コンテンツをホストします。
- サプライサイド プラットフォーム(SSP): パブリッシャーとの連携や、その他のサービスの提供。
- サードパーティのスクリプト: 広告オークションに参加できるようにするための、パブリッシャーに代わってのスクリプト。
Protected Audience API を使用する販売者は、次の 3 つの業務を担当します。
- パブリッシャー向けルール(対象となる購入者と入札)を適用します。
- オークション ロジックの実行: JavaScript の実行 ワークレットを使用して、 各入札の好感度スコア。
- オークションの結果を報告します。
これらの作業は、営業担当者が提供したコードを使用して、プログラムによって行われます。
JavaScript 関数を呼び出して広告オークションを開始する
navigator.runAdAuction()
。
API 関数
runAdAuction()
販売者は navigator.runAdAuction()
を呼び出して、広告オークションの開始をユーザーのブラウザに送信します。
例:
const auctionConfig = {
seller: 'https://ssp.example',
decisionLogicUrl: ...,
trustedScoringSignalsUrl: ...,
interestGroupBuyers: ['https://dsp.example', 'https://buyer2.example', ...],
auctionSignals: {...},
sellerSignals: {...},
sellerTimeout: 100,
perBuyerSignals: {
'https://dsp.example': {...},
'https://another-buyer.example': {...},
...
},
perBuyerTimeouts: {
'https://dsp.example': 50,
'https://another-buyer.example': 200,
'*': 150,
...
},
componentAuctions: [
{
'seller': 'https://some-other-ssp.example',
'decisionLogicUrl': ...,
...
},
...
]
};
try {
const auctionResultPromise = navigator.runAdAuction(auctionConfig);
} catch (error) {
// Handle error.
}
runAdAuction()
は、URN(urn:uuid:<something>
)に解決される Promise を返します。
広告オークションの結果これは、フェンス付きフレームに渡されたときにのみブラウザでデコードできます。
レンダリングのため、パブリッシャーのページでは落札された広告を検査できません。
decisionLogicUrl
スクリプトは、個々の広告とそれに対応する広告を
入札単価とメタデータを 1 つずつ調べて、数値を
評価します
auctionConfig
件の宿泊施設
seller
- 必須
- 例:
'https://ssp.example'
- 役割: 販売者の出所。
decisionLogicUrl
- 必須
- 例:
'https://ssp.example/auction-decision-logic.js'
- ロール: オークション ワークレット JavaScript の URL。
trustedScoringSignalsUrl
- 省略可
- 例:
'https://ssp.example/scoring-signals'
- ロール: 販売者の信頼できるサーバーの URL。
interestGroupBuyers
- 必須
- 例:
['https://dsp.example', 'https://buyer2.example', ...]
- 役割: オークションへの入札を依頼されたすべてのインタレスト グループ オーナーのオリジン。 で確認できます。
- 注: 販売者は
interestGroupBuyers:
を指定して、すべてのインタレスト グループに入札を許可することができます。広告は、インタレスト グループの所有者が含まれているかどうか以外の条件に基づいて承認または拒否されます。たとえば、広告クリエイティブがポリシーに準拠しているかどうか審査される場合があります。 auctionSignals
- 省略可
- 例:
{...}
- 役割: ページの内容やオークションのタイプなどに関する営業担当者の情報
sellerSignals
- 省略可
- 例:
{...}
- 役割: パブリッシャーの設定に基づく情報、コンテキスト広告のリクエストなど
sellerTimeout
- 省略可
- 例:
100
- ロール: 販売者の
scoreAd()
スクリプトの最大実行時間(ミリ秒)。 perBuyerSignals
- 省略可
- 例:
{'https://dsp.example': {...}, 'https://another-buyer.example': {...}, ... }
- ロール: 個々の購入者のサーバーから得たページに関するコンテキスト シグナル。
perBuyerTimeouts
- 省略可
- 例:
50
- ロール: 特定の購入者の
generateBid()
スクリプトの最大実行時間(ミリ秒)。 componentAuctions
- 省略可
- 例:
[{'seller': 'https://www.some-other-ssp.com', 'decisionLogicUrl': ..., ...}, ...]
- 役割: コンポーネント オークションの追加設定。
decisionLogicUrl
decisionLogicUrl
はオークション設定オブジェクトのプロパティです。
runAdAuction()
に渡されます。この URL には、
scoreAd()
関数。このロジックは広告ごとに 1 回実行され、
判断します
scoreAd(adMetadata, bid, auctionConfig, trustedScoringSignals, browserSignals) {
...
return desirabilityScoreForThisAd;
}
browserSignals
browserSignals
: 情報を含む、ブラウザによって構築されるオブジェクト
ブラウザが認識しているデータと販売者のオークション スクリプトが
確認:
{
topWindowHostname: 'publisher.example',
interestGroupOwner: 'https://dsp.example',
renderUrl: 'https://cdn.example/render',
adComponents: ['https://cdn.com/ad-component-1', ...],
biddingDurationMsec: 12,
dataVersion: 1 /* DValue from the seller's Key/Value service response. */
}
オークションの開始前に、販売者は最適なコンテキスト広告を
自動的に選択されますscoreAd()
ロジックで、広告が配信可能でない場合、
コンテンツで勝ちました
scoreAd()
scoreAd()
は次の引数を取ります。
引数 | ロール |
---|---|
adMetadata |
購入者が提供する任意のメタデータ。 |
auctionConfig |
navigator.runAdAuction() に渡されるオークション設定オブジェクト。 |
bid |
入札単価の数値。 |
trustedScoringSignals |
オークション時に販売者の信頼できるサーバーから取得される値。広告に対する販売者の意見を表します。 |
よくある質問
オークションの落札者はどのようにして決定されますか?
販売者はスコアリング ロジックで各広告の好感度スコアを判定し、ブラウザはスコアが最も高い広告を落札広告として選択します。
販売者は scoreAd()
関数にロジックを含め、ブラウザはワークレット内の関数を実行しますが、ワークレット外のコードとの通信は制限されています。ブラウザ自体が広告のスコア計算を行うことはありません。ブラウザが単独でスコアリング ロジックを実行し、スコアが最も高い入札単価を選択します。
すべての Protected Audience API リファレンス
API リファレンス ガイドが提供されています。
- Protected Audience API のデベロッパー ガイド。
- Protected Audience のインタレスト グループと入札の生成に関する広告購入者向けガイド。
- Protected Audience の広告オークションに関する広告販売者向けガイド。
- オークション結果のレポートに関するガイド
- Protected Audience の広告オークションの遅延に関するベスト プラクティス
- Protected Audience のトラブルシューティング
Protected Audience API の解説では、機能のサポートと制約に関する詳細も説明しています。