最近の更新
- カスタム オーディエンスの更新のスケジュール設定に関する情報を追加しました
- Attribution Reporting と Protected Audience の統合を追加しました
- Protected Audience 機能のタイムラインを公開しました。
- FLEDGE は Protected Audience API に名称変更されました。
- カスタム オーディエンス委任のプロポーザルを追加しました。
- 日次更新 URL の k-匿名性の要件を削除しました。
Protected Audience はベータ版で、一般公開されているデバイスでテストできます。
Protected Audience では次のことが可能です。
- 過去のユーザー アクションに基づいてカスタム オーディエンスを管理します。
- 単一販売者またはウォーターフォール メディエーションに対応しており、デバイス上でオークションを開始できます。
- 広告選択後のインプレッション レポートを行う。
詳しくは、Protected Audience デベロッパー ガイドをご覧ください。お客様の フィードバックをお寄せください。Protected Audience の開発を続けてまいります。
タイムライン
新機能は今後数か月以内にリリースする予定です。正確なリリース日は 機能によって異なります。また、この表は、 ドキュメントをご覧ください。
機能 | デベロッパー プレビューで利用可能 | ベータ版で利用可能 |
---|---|---|
イベントレベルのレポート | 2023 年第 1 四半期 | 2023 年第 3 四半期 |
ウォーターフォール メディエーション | 2023 年第 1 四半期 | 2023 年第 4 四半期 |
アプリ インストール広告のフィルタリング | 2023 年第 2 四半期 | 2023 年第 3 四半期 |
フリークエンシー キャップ フィルタリング | 2023 年第 2 四半期 | 2023 年第 3 四半期 |
コンテキスト広告を広告選択ワークフローに渡してフィルタする | 2023 年第 2 四半期 | 2023 年第 3 四半期 |
インタラクション レポート | 2023 年第 2 四半期 | 2023 年第 3 四半期 |
カスタム オーディエンス委任に参加する | 2023 年第 3 四半期 | 2023 年第 4 四半期 |
CPM 以外の課金 | 2023 年第 3 四半期 | 2023 年第 4 四半期 |
入札とオークション サービスの統合 | 2023 年第 3 四半期 | 2023 年第 4 四半期 |
デバッグ レポート | 2023 年第 3 四半期 | 2023 年第 4 四半期 |
Attribution Reporting の統合 | なし | 2023 年第 4 四半期 |
Open Bidding メディエーション | 2023 年第 4 四半期 | 2023 年第 4 四半期 |
通貨の管理 | 2024 年第 1 四半期 | 2024 年第 2 四半期 |
k-匿名性の統合 | なし | 2024 年第 2 四半期 |
集計レポートの統合 | 2024 年第 3 四半期 | 2024 年第 4 四半期 |
概要
モバイル広告で一般的に広告主が必要とするのは、ユーザーが過去に広告主のアプリで行った操作に基づいて、興味を持ちそうなユーザーに広告が配信されることです。たとえば、SportingGoodsApp のデベロッパーは、ショッピング カートにアイテムが残っているユーザーに広告を表示して、購入手続きの完了を促そうとします。業界では、このような考え方を一般的に「リマーケティング」、「カスタム オーディエンス ターゲティング」などの用語で表現します。
現在のところ、このようなユースケースは、広告の表示方法に関するコンテキスト情報(アプリ名など)やオーディエンス リストなどの個人情報を、広告テクノロジー プラットフォームと共有して実装することが一般的です。このような情報を使用することで、広告主は自身のサーバー上で関連性の高い広告を選択できます。
Android 版 Protected Audience API(旧称 FLEDGE)には、広告テクノロジー プラットフォームと広告主向けの以下の API が含まれ、一般的なインタラクション ベースのユースケースを、アプリ間の識別子とユーザーによるアプリとのインタラクション情報の両方を第三者と共有することを制限しつつ、サポートします。
- Custom Audience API: 広告主が指定する共通のインテントを持ったオーディエンスを表す「カスタム オーディエンス」の抽象化を主な役割としています。オーディエンス情報はデバイス上に保存され、オーディエンスに関わる広告候補や、入札シグナルなどの任意のメタデータと関連付けることができます。この情報は、広告主の入札、広告のフィルタリング、レンダリングに関する通知に使用できます。
- Ad Selection API: 広告テクノロジー プラットフォームのワークフローを調整するフレームワークを提供します。このフレームワークでは、ローカルに保存されている広告候補の検討や、広告テクノロジー プラットフォームがデバイスに返す広告候補への追加処理によって、デバイス上のシグナルを活用した広告の「落札」判定を行います。
統合作業の概要は次のとおりです。
SportingGoodsApp が、残っている商品アイテムを購入するようユーザーにリマインドしたいと考えています。 カートに商品が追加されます。 SportingGoodsApp が、Custom Audience API を使用して、ユーザーを「商品がカートに入っている」オーディエンス リストに追加します。プラットフォームはこれらの情報を オーディエンス リストを作成し、サードパーティとの共有を制限します。 SportingGoodsApp は広告テクノロジー プラットフォームと提携して広告をユーザーに表示する そのオーディエンスのリストに広告テクノロジー プラットフォームがオーディエンスのメタデータを管理する 広告候補が一覧表示され、広告で使用可能になる 検討する必要がありますプラットフォームは 更新されたオーディエンスに基づく広告を定期的に取得する。この オーディエンスに基づく広告候補リストの鮮度を保ち、無相関性を維持 広告配信のオポチュニティ中に第三者広告サーバーに送信されたリクエストを含む など)があります。
ユーザーが FrisbeeGame をプレイすると、同じデバイス上にある SportingGoodsApp のショッピング カートに残るアイテムの購入処理を促す広告が表示される場合があります。これを行うには、FrisbeeGame(統合広告 SDK を使用)で Ad Selection API を呼び出し、ユーザーが属している可能性のあるオーディエンス リスト(この例では SportingGoodsApp が作成した「商品がカートに入っている」カスタム オーディエンス リスト)に基づいて落札広告を選択します。広告選択ワークフローは、広告テクノロジー プラットフォームのサーバーから取得した広告に加え、カスタム オーディエンスや他のデバイス上のシグナルに関連付けられたデバイス上の広告を考慮するように設定できます。このワークフローは、カスタム入札とスコアリング ロジックを使用して、広告テクノロジー プラットフォームと広告 SDK がカスタマイズし、適切な広告掲載の目標を達成するようにすることもできます。このアプローチでは、ユーザーの興味またはアプリ操作データを広告の選択に反映させつつ、第三者とのこのようなデータの共有を制限できます。
広告配信アプリまたは広告テクノロジー プラットフォームの SDK が、選択された広告をレンダリングします。
プラットフォームにより、インプレッションと広告選択結果のレポートが容易になります。このレポート機能は Attribution Reporting API を補完するものです。広告テクノロジー プラットフォームはレポートのニーズに応じてカスタマイズできます。
Android 版 Protected Audience API にアクセスする
広告テクノロジー プラットフォームが Protected Audience API にアクセスするには登録が必要です。詳しくは、プライバシー サンドボックス アカウントの登録をご覧ください。
カスタム オーディエンス管理
カスタム オーディエンス
カスタム オーディエンスとは、共通の意図または興味に基づき広告主が特定したユーザーのグループを表します。アプリまたは SDK はカスタム オーディエンスを使用して、特定のオーディエンス(「ショッピング カートにアイテムが残っているユーザー」、ゲームの「初級レベルをクリアしたユーザー」など)を指定できます。プラットフォームは、デバイス上でオーディエンス情報をローカルに保持して保存します。ユーザーがどのカスタム オーディエンスに属するかは表示されません。カスタム オーディエンスは、Chrome の Protected Audience のインタレスト グループとは異なり、ウェブやアプリ間で共有することはできません。こうすることにより、ユーザー情報の共有を制限できます。
広告主アプリまたは統合 SDK は、アプリでのユーザー エンゲージメントなどに基づいて、カスタム オーディエンスへの参加、またはカスタム オーディエンスからの脱退を選択できます。
カスタム オーディエンス メタデータ
カスタム オーディエンスには次のメタデータが含まれます。
- オーナー: オーナーアプリのパッケージ名。暗黙的に、呼び出し元アプリのパッケージ名に設定されます。
- 購入者: このカスタム オーディエンスの広告を管理する購入者の広告ネットワーク。また購入者は、カスタム オーディエンスにアクセスし、関連する広告情報を取得する当事者を表します。購入者は eTLD+1 形式で指定されます。
- 名前: カスタム オーディエンスの任意の名前または識別子(「ショッピング カートを放棄した」ユーザーなど)。この属性は、たとえば、広告主の広告キャンペーンにおけるターゲティング条件の一つとして、または入札コードを取得するための URL のクエリ文字列として使用できます。
- 有効化時刻と有効期限: これらのフィールドでは、カスタム オーディエンスが有効になる期間を定義します。プラットフォームはこの情報を使用して、カスタム オーディエンスのメンバーシップを取り消します。有効期限は、カスタム オーディエンスの存続期間を制限する最大期間を超えることはできません。
- 日次更新 URL: 「ユーザー入札シグナル」フィールドで定義された広告候補またはその他のメタデータを、プラットフォームが定期的に取得するために使用する URL。詳細については、カスタム オーディエンスの広告候補を取得する方法についてのセクションをご覧ください。
- ユーザー入札シグナル: リマーケティング広告の入札のための、広告テクノロジー プラットフォーム固有のシグナル。シグナルの例としては、ユーザーの大まかな位置情報、優先する言語 / 地域などがあります。
- 信頼できる入札データ: 広告テクノロジー プラットフォームは、リアルタイム データに基づいて広告の取得とスコアリングについて通知します。たとえば、ある広告が予算を使い果たし、すぐに配信を停止する必要が生じることがあります。広告テクノロジーは、このリアルタイム データを取得できる URL エンドポイントと、リアルタイム検索を行う必要があるキーのセットを定義できます。このリクエストを処理するサーバーが、広告テクノロジー プラットフォームが管理する信頼できるサーバーになります。
- 入札ロジック URL: デマンドサイド プラットフォームから入札コードを取得するためにプラットフォームが使用する URL。広告オークションが開始されると、このステップが実施されます。
- 広告: カスタム オーディエンスの広告候補のリスト。これには、広告テクノロジー プラットフォーム固有の広告メタデータと、広告をレンダリングするための URL が含まれます。カスタム オーディエンス向けにオークションが開始されると、この広告メタデータのリストが考慮されます。この広告のリストは、可能な場合は日次更新 URL エンドポイントを使用してアップデートされます。モバイル デバイスではリソースの制約があるため、カスタム オーディエンスに保存できる広告の数には制限があります。
カスタム オーディエンス委任
従来のカスタム オーディエンスの定義と構成は、通常、広告テクノロジーが代理店、広告主クライアント、パートナーと連携して主導するサーバーサイドの技術と統合に依存しています。Protected Audience API は、カスタム オーディエンスの定義と構成を、ユーザーのプライバシーを保護しつつ可能にします。カスタム オーディエンスに参加するには、アプリに SDK がない購入者の広告テクノロジーが、モバイル測定パートナー(MMP)やサプライサイド プラットフォーム(SSP)などのデバイス上のプレゼンスがある広告テクノロジーと連携する必要があります。Protected Audience API は、購入者に代わってカスタム オーディエンスの作成をデバイス上で呼び出せるようにして、柔軟性のあるカスタム オーディエンス管理のソリューションを提供し、このような SDK をサポートすることを目指しています。このプロセスはカスタム オーディエンス委任と呼ばれます。カスタム オーディエンス委任を設定する手順は以下のとおりです。
カスタム オーディエンスに参加する
カスタム オーディエンスへの登録は、次の 2 つの方法でできます。
joinCustomAudience()
アプリまたは SDK は、想定されるパラメータで CustomAudience
オブジェクトをインスタンス化した後に joinCustomAudience()
を呼び出すことで、カスタム オーディエンスへの参加をリクエストできます。次にコード スニペットの例を示します。
CustomAudience audience = new CustomAudience(
Buyer = "example-dsp.com",
Name = "running-shoes",
ActivationTime = now(),
ExpirationTime = ActivationTime.plus(30 days),
DailyUpdateURL = Uri.parse("https://..."),
UserBiddingSignals = new JSONObject("{...}"),
TrustedBiddingURL = Uri.parse("https://..."),
TrustedBiddingKeys = {'key1","key2", ...,"key n"},
BiddingLogicURL = Uri.parse("https://..."),
Ads = [new AdData(renderUrl = Uri.parse("https://..."),
metadata = new JSONObject("{...}"), ...];
// Invoke ad services API to join a custom audience.
joinCustomAudience(audience);
fetchAndJoinCustomAudience()
アプリまたは SDK は、次のような広告テクノロジーに代わって、カスタム オーディエンスへの参加をリクエストできます。
fetchAndJoinCustomAudience()
を呼び出して、デバイス上のプレゼンスがない
パラメータは次の例のようになります。
FetchAndJoinCustomAudienceRequest fetchRequest = new FetchAndJoinCustomAudienceRequest(
// Example: Optional verification token passed inside the fetch URL
FetchURI = Uri.parse("https://example-dsp.com/...?mytoken=arbitrary1234"),
// All the following parameters are optional
Name = "running-shoes",
ActivationTime = now(),
ExpirationTime = ActivationTime.plus(30 days),
UserBiddingSignals = new JSONObject("{...}")
);
fetchAndJoinCustomAudience(fetchRequest);
購入者が所有する URL エンドポイントは、レスポンスの本文で CustomAudience
JSON オブジェクトを返します。カスタム オーディエンスの購入者とオーナーのフィールドは無視されます(API によって自動入力されます)。また、この API は日次更新 URL が購入者の eTLD+1 にも一致するようにします。
{
"name": "running-shoes",
"activation_time": 1680603133000,
"expiration_time": 1680803133000,
"user_bidding_signals" : {"signal1": "value"},
"trusted_bidding_data": {
"trusted_bidding_uri": "https://example-dsp.com/.."
"trusted_bidding_keys": ["k1", "k2"],
},
"bidding_logic_uri": "https://example-dsp.com/...",
"daily_update_uri": "https://example-dsp.com/...",
"ads": [
{
"render_uri": "https://example-dsp.com/...",
"metadata": {},
"ad_filters": {
"frequency_cap": {
"win": [
{
"ad_counter_key": 1,
"max_count": 2,
"interval_in_seconds": 60
},
],
"view": [
{
"ad_counter_key": 2,
"max_count": 10,
"interval_in_seconds": 3600
},
]
},
"app_install": {
"package_names": [
"package.name.one",
"package.name.two", ...
]
}
}
},
...
]
}
fetchAndJoinCustomAudience()
API は、購入者の ID を
fetchUri
の eTLD+1CustomAudience
購入者の ID は次の処理に使用されます
joinCustomAudience()
による同じ登録とアプリの認証チェック
取得レスポンスで変更することはできません。CustomAudience
のオーナー:
呼び出し元のアプリのパッケージ名。eTLD+1 チェック以外に fetchUri
の検証はありません。具体的には k-匿名性のチェックはありません。fetchAndJoinCustomAudience()
API は fetchUri
に対して HTTP GET リクエストを実行し、カスタム オーディエンスを表す JSON オブジェクトを想定します。レスポンスには、カスタム オーディエンス オブジェクト フィールドと同じ必須項目、オプションの制約とデフォルト値が適用されます。現在の
デベロッパー ガイドの要件と制限事項をご確認ください。
購入者から HTTP エラーが返されると、fetchAndJoinCustomAudience
でエラーが発生します。特に、HTTP ステータス レスポンスが 429(リクエストが多すぎる)の場合、現在のアプリからのリクエストが設定される期間ブロックされます。API 呼び出し
購入者からのレスポンスの形式が正しくない場合も失敗します。不具合の報告先
一時的な障害(例:
サーバー応答なしなど)、永続的なエラーの処理(データの検証など)
サーバーとの通信に伴う障害、その他の一時的でないエラーなど)。
CustomAudienceFetchRequest
オブジェクトを使用して、API 呼び出し元は上記の例で示すオプションのプロパティを使用してカスタム オーディエンスの情報を指定できます。リクエストでこれらの値を設定した場合、
プラットフォームが受信した購入者のレスポンスProtected Audience API は
レスポンスのフィールド。リクエストでそれらが設定されていない場合は、
それらのフィールドがカスタム イベントを作成するのに必要であるため、
できます。CustomAudience
のコンテンツの JSON 表現。例:
API 呼び出し元によって部分的に定義されたものは、fetchUri
への GET リクエストに含まれます。
(特別なヘッダー X-CUSTOM-AUDIENCE-DATA
内)。シリアル化された形式の
カスタム オーディエンスで指定するデータの上限は 8 KB です。サイズが
fetchAndJoinCustomAudience
API 呼び出しが失敗します。
k-匿名性のチェックがないため、購入者の検証に fetchUri
を使用して、購入者と SDK との間で情報共有ができます。カスタム オーディエンスの検証を容易にするため、購入者は確認トークンを提示できます。オンデバイス SDK では、このトークンを fetchUri
に含めて、
エンドポイントを使用してカスタム オーディエンスのコンテンツを取得し、
検証トークンを使用して、fetchAndJoinCustomAudience()
が
購入者に対応し、信頼できるデバイス上の
共有します情報を共有するため、購入者はデバイス上の発信者に同意できます
カスタム オーディエンスの作成に使用する情報には、
fetchUri
にクエリ パラメータとして追加されます。これにより購入者は
を呼び出し、不正な広告テクノロジーによって確認トークンが
複数のカスタムオーディエンスを作成できます
確認トークンの定義と保存に関する注意事項
確認トークンは Protected Audience API の目的では使用されず、オプションです。
- 確認トークンは購入者が作成されているオーディエンスが購入者の代わりに実行されていることを確認するために使用します。
- Protected Audience API プロポーザルでは、確認トークンの形式や、購入者が確認トークンを呼び出し元に転送する方法は指定していません。たとえば、確認トークンをオーナーの SDK またはバックエンドに事前に読み込むことも、オーナーの SDK が購入者のサーバーからリアルタイムで取得することもできます。
カスタム オーディエンスから脱退する
カスタム オーディエンスのオーナーは、次のコード スニペットに示すように、leaveCustomAudience()
を呼び出して脱退することもできます。
// Invoke ad services API to leave a custom audience.
leaveCustomAudience(buyer, name);
カスタム オーディエンスは、ストレージやその他のデバイス リソースの使用量を節約するために、所定の期間が経過すると期限切れとなり、デバイス上のストアから削除されます。デフォルト値は未定です。オーナーはこのデフォルト値をオーバーライドできます。
ユーザー コントロール
- このプロポーザルは、カスタム オーディエンスを 1 つ以上作成したインストール済みのアプリのリストをユーザーが確認できるようにすることを目的としています。
- ユーザーはこのリストからアプリを削除できます。削除すると、アプリに関連付けられているカスタム オーディエンスがすべて消去され、アプリが新しいカスタム オーディエンスに参加できなくなります。
- ユーザーは Protected Audience API を完全にリセットできます。リセットした場合、デバイス上の既存のカスタム オーディエンスはすべて消去されます。
- ユーザーは Protected Audience API を含む Android 版プライバシー サンドボックスから完全にオプトアウトできます。ユーザーが Protected Audience API が通知なく失敗します。
この機能の設計は現在進行中であり、詳細については今後のアップデートに反映される予定です。
スケジュール設定された更新
前述のソリューションでは、アプリまたは広告テクノロジー SDK が、アプリがフォアグラウンドにあるときに API を呼び出し、カスタム オーディエンスのすべてのプロパティを直接または委任を使用して提供する必要があります。ただし、広告主と広告テクノロジー プロバイダが、ユーザーがアプリを使用しているときに、ユーザーがどのオーディエンスに属しているかをリアルタイムで定義できるとは限りません。
これを容易にするために、広告テクノロジーが
scheduleCustomAudienceUpdate()
API。この API を使用すると、呼び出し元は
API 呼び出しのタイミングが遅れることがあるため、
レスポンスする広告テクノロジーがアプリレベルのイベントを処理し、
ユーザーが参加または削除する Protected Audiences。
/**
* API To schedule delayed update events for Custom Audience
*
* @param request Criteria that determine when and where to trigger a call to a
* DSP endpoint to update one or more Custom Audiences
*/
public void scheduleCustomAudienceUpdate(
@NonNull ScheduleCustomAudienceUpdateRequest request,
@NonNull @CallBackExecutor Executor executor,
@NonNull AdServicesOutcomeReceiver<Object, Exception> receiver)
ScheduleCustomAudienceUpdateRequest
public final class ScheduleCustomAudienceUpdateRequest {
// Required Field
@NonNull public Uri getUpdateUri() {
return mUpdateUri;
}
// Required Field
@NonNull public Duration getMinDelay() {
return mMinDelay;
}
// Required Field
@NonNull public List<PartialCustomAudience> getPartialCustomAudienceList() {
return mPartialCustomAudiences;
}
// Optional Field (default false)
public boolean shouldReplacePendingUpdates () {
return mShouldReplacePendingUpdates;
}
}
ScheduleCustomAudienceUpdateRequest
には、タスクの実行に必要な情報が
プラットフォームで実行する遅延ジョブの登録。指定した遅延の後
バックグラウンド ジョブが定期的に実行され、リクエストを送信する。「
ScheduleCustomAudienceUpdateRequest
には、次の情報を含めることができます。
- UpdateUri: 更新を取得するために GET 呼び出しが送信される URI エンドポイント。購入者の ID は本質的に eTLD+1 から推定されるため、
更新レスポンスで変更することはできません。GET
リクエストには、同じ内容の
customAudience
オブジェクトのリストを含む JSON オブジェクトが想定されています。 戻ります。 - DelayTime: 実行時点からの遅延を示す時間
更新のスケジュールを設定する
scheduleCustomAudienceUpdate()
API 呼び出し。
PartialCustomAudience: この API を使用すると、オンデバイス SDK は部分的に作成されたカスタム オーディエンスのリストを送信することもできます。これにより アプリ内の SDK が カスタム オーディエンス管理のすべてを管理する役割と、カスタム オーディエンスを部分的に管理できるようにするという 2 つの役割があります。 DSP とのパートナーシップにもとづいています
- また、この API は、同様の情報共有を可能にする
fetchAndJoinCustomAudience()
API との互換性も維持しています。
- また、この API は、同様の情報共有を可能にする
ShouldReplacePendingUpdates: 保留中のものがあるかどうかを決定するブール値 更新をキャンセルして、更新プロセスに置き換える必要があります。詳細については、 現在の
ScheduleCustomAudienceUpdateRequest
。これがfalse
に設定されていて、同じアプリで同じ購入者に対して以前にリクエストされた更新が保留中である場合、このScheduleCustomAudienceUpdateRequest
を使用してscheduleCustomAudienceUpdate
を呼び出すと失敗します。デフォルトはfalse
です。
アプリの権限とコントロール
このプロポーザルは、アプリがカスタム オーディエンスを管理できるようにすることを目的としています。
- アプリはカスタム オーディエンスとの関連付けを管理できます。
- アプリは、第三者の広告テクノロジー プラットフォームに、アプリに代わってカスタム オーディエンスの管理権限を付与できます。
この機能の設計は現在実施中であり、詳細については今後のアップデートに反映される予定です。
広告テクノロジー プラットフォームによるコントロール
このプロポーザルでは、広告テクノロジーがカスタム オーディエンスをコントロールする方法の概要を説明します。
- 広告テクノロジーはプライバシー サンドボックスに登録し、カスタム オーディエンスのすべての URL と一致する eTLD+1 ドメインを指定します。
- 広告テクノロジーはアプリまたは SDK と連携し、確認トークンを使ってカスタム オーディエンスの作成を検証できます。このプロセスがパートナーに委任する場合、カスタム オーディエンスの作成において、広告テクノロジーによる承認を必須とするよう設定できます。
- 広告テクノロジーに代わって
joinCustomAudience
の呼び出しを無効にし、fetchAndJoinCustomAudience
API のみすべての呼び出しカスタム オーディエンスの有効化ができるようにすることもできます。コントロールはプライバシー サンドボックスの登録時に更新できます。コントロールではすべての広告テクノロジーを許可するか、一切許可しないかを選択できます。プラットフォームの制限により、委任権限を広告テクノロジーごとに指定することはできません。
広告候補とメタデータのレスポンス
バイサイド プラットフォームから返される広告候補とメタデータには、次のフィールドが含まれている必要があります。
- メタデータ: バイサイドの広告テクノロジー固有の広告メタデータ。たとえば、広告キャンペーンに関する情報や、地域や言語などのターゲティング条件が含まれる場合があります。
- レンダリング URL: 広告クリエイティブをレンダリングするためのエンドポイント。
- フィルタ: Protected Audience がデバイス上のデータに基づいて広告をフィルタするために必要なオプションの情報。詳細はバイサイド フィルタリング ロジックのセクションをご覧ください。
広告選択ワークフロー
このプロポーザルでは、広告テクノロジー プラットフォームのオークションの実施を調整する Ad Selection API を導入することで、プライバシーを向上させることを目的としています。
現在の広告テクノロジー プラットフォームは、入札と広告の選択を自社サーバーのみで行うことが一般的です。このプロポーザルでは、カスタム オーディエンスとその他の機密性の高いユーザー 利用可能なインストール済みパッケージ情報などのシグナルが、 Ad Selection API を介してのみアクセスできます。さらに、リマーケティングのユースケースでは、広告候補が範囲外(広告が表示されるコンテキスト以外)で取得されます。広告テクノロジー プラットフォームは、広告テクノロジーの 現在のオークションと広告選択ロジックが ダウンロードします広告テクノロジー プラットフォームは、広告に対して以下のような変更を検討できます 選択ワークフロー:
- インストール済みパッケージ情報がサーバーで利用できない場合、広告テクノロジー プラットフォームは、複数のコンテンツ ターゲット広告をデバイスに送り返し、関連性の高い広告が表示される可能性を最大化するために、広告選択ワークフローを呼び出してアプリのインストール ベースのフィルタリングを有効にします。
- リマーケティング広告は範囲外で取得されるため、現在の入札モデルをアップデートする必要が生じる場合があります。広告テクノロジー プラットフォームが入札サブモデルの作成を希望する場合がある (実装は、Terraform というパターンに基づいて Two-Tower モデル) 広告機能とコンテキスト シグナルを個別に処理して、 サブモデル出力を使って入札単価を予測します。これにより、サーバーサイド オークションと、任意の広告配信機会のオークションの両方にメリットが生じます。
このアプローチでは、ユーザーのアプリ操作データを広告の選択に利用しつつ、第三者とのデータ共有を制限できます。
この広告選択ワークフローは、以下の順に沿って、広告テクノロジーが提供する JavaScript コードのデバイス上における実行を調整します。
カスタム オーディエンスが関係する広告選択の場合、プラットフォームは、カスタム オーディエンスの「入札ロジック URL」メタデータで定義された公開 URL エンドポイントに基づいて、バイサイドによって提供される JavaScript コードを取得します。セルサイド判断コードの URL エンドポイントも、広告選択ワークフローを開始するための入力として渡されます。
カスタム オーディエンスを使用しない広告選択のデザインがアクティブになっています 考えています
広告選択ワークフローを開始する
アプリで広告を表示する必要がある場合、広告テクノロジー プラットフォーム SDK は、想定されるパラメータを指定して AdSelectionConfig
オブジェクトをインスタンス化した後、selectAds()
メソッドを呼び出して広告選択ワークフローを開始します。
- 販売者: eTLD+1 形式のセルサイド広告プラットフォームの識別子。
- 判断ロジック URL: 広告オークションが開始されると、プラットフォームはこの URL を使用してセルサイド プラットフォームから JavaScript コードを取得し、落札広告を評価します。
- カスタム オーディエンス購入者: このオークションについてカスタム オーディエンスに基づく需要があるバイサイド プラットフォームのリスト(eTLD+1 形式)。
- 広告選択シグナル: オークションに関する情報(広告サイズ、広告フォーマットなど)。
- 販売者シグナル: サプライサイド プラットフォーム固有のシグナル。
- 信頼できるスコアリング シグナル URL: クリエイティブ固有のリアルタイム情報を取得できる、セルサイドの信頼できるシグナルの URL エンドポイント。
- 購入者ごとのシグナル: 参加しているデマンドサイドは、このパラメータを使用してオークションのための入力を提供できます。たとえば、このパラメータに、入札単価の決定に役立つ包括的なコンテキスト情報を含めることができます。
次のコードスニペットに、広告テクノロジー プラットフォーム SDK が広告選択ワークフローを開始する例を示します。まず AdSelectionConfig
を定義してから、selectAds
を呼び出して落札広告を取得しています。
AdSelectionConfig myAdSelectionConfig = new AdSelectionConfig {
Seller = "example-ssp1.com",
DecisionLogicURL = Uri.parse("https://..."),
CustomAudienceBuyerList = Arrays.asList("example-dsp1.com","bexample-dsp2.com"),
AdSelectionSignals = "{"min_price": 10,"auction_attempts": 3}"
SellerSignals = "{"seller_type": "news", "content_category": "sports","mature_ads_accepted" :"false"}"
PerBuyerSignals = " {"buyer1Name": {"key1" : "value1"},
"buyer2Name": {"key1" : "value1", "key2" : "value2" }"
};
// Invoke ad services API to initiate ad selection workflow.
Ad winningAd = selectAds(myAdSelectionConfig);
バイサイド入札ロジック
通常、入札ロジックはバイサイド プラットフォームが提供します。このコードの目的は、広告候補の入札単価を決定することです。結果を判断するために、追加のビジネス ロジックが適用される場合があります。
プラットフォームは、カスタム オーディエンスの「入札ロジック URL」メタデータを使用して、次の関数シグネチャを含む JavaScript コードを取得します。
generateBid(ad, auction_signals, per_buyer_signals, trusted_bidding_signals,
contextual_signals, user_signals, custom_audience_signals) {
// ...
return {'bid': ...};
}
generateBid()
メソッドは、算出された入札単価を返します。プラットフォームは、すべての広告(コンテンツ ターゲット広告またはリマーケティング広告)に対してこの関数を順次呼び出します。入札ロジックのプロバイダが複数ある場合、プロバイダ間の実行順序は保証されません。
関数には次のパラメータが必要です。
- 広告: バイサイド入札コードで検討される広告。対象となるカスタム オーディエンスからの広告です。
- オークション シグナル: セルサイドのプラットフォーム固有のシグナル。
- 購入者ごとのシグナル: 参加しているデマンドサイドは、このパラメータを使用してオークションのための入力を提供できます。たとえば、このパラメータに、入札単価の決定に役立つ包括的なコンテキスト情報を含めることができます。
- 信頼できる入札シグナル: 広告テクノロジー プラットフォームは、リアルタイム データに基づいて広告の取得とスコアリングについて通知します。たとえば、ある広告キャンペーンが予算を使い果たし、すぐに配信を停止する必要が生じることがあります。広告テクノロジーは、このリアルタイム データを取得できる URL エンドポイントと、リアルタイム検索を行う必要があるキーのセットを定義できます。このリクエストを処理する広告テクノロジー プラットフォームが管理するサーバーが、広告テクノロジー プラットフォームが管理する信頼できるサーバーになります。
- コンテキスト シグナル: あいまいなタイムスタンプやおおよその値が含まれる場合があります。 所在地情報、広告のクリック単価。
- ユーザー シグナル: 利用可能なインストール済みパッケージ情報などの情報が含まれることがあります。
広告費用
バイサイド プラットフォームは、入札単価に加えて、generateBid()
の一部としてクリック単価を返すことができます。例:
generateBid(ad, auction_signals, per_buyer_signals, trusted_bidding_signals,
contextual_signals, user_signals, custom_audience_signals) {
// ...
return {'bid': ..., 'adCost': ...,};
}
この広告が勝者の場合、adCost
は確率的に四捨五入されて 8 ビットに
プライバシーを保護する。次に、adCost
の丸められた値が
インプレッションのレポート時に reportWin
の contextual_signals
パラメータ。
バイサイド フィルタリング ロジック
バイサイド プラットフォームは、追加のデバイス上の条件に基づいて広告をフィルタできるようになります。 さまざまなシグナルを紹介します例: 広告テクノロジー プラットフォーム ここでフリークエンシー キャップ機能を実装できます。複数の フィルタリング プロバイダ間での実行順序は 接続します。
バイサイド フィルタリング ロジックは、入札ロジックの一部として、特定の広告の入札単価 0
を返す形で実装できます。
さらに、バイサイド プラットフォームは Protected Audience で利用できる、デバイス上の追加のシグナルに基づいて特定の広告をフィルタする必要があるということを通知できます。デバイスを離れることはありません。追加のフィルタリング ロジックの設計が固まれば、バイサイド プラットフォームは同じ構造に従って、フィルタリングが行われることを通知します。
セルサイド スコアリング ロジック
通常、スコアリング ロジックはセルサイド プラットフォームが提供します。このコードの目的は、入札ロジックの出力に基づいて落札広告を決定することです。結果を判断するために、追加のビジネス ロジックが適用される場合があります。判断ロジックのプロバイダが複数ある場合、プロバイダ間の実行順序は保証されません。プラットフォームは、selectAds()
API の「判断ロジック URL」入力パラメータを使用して、次の関数シグネチャを含む JavaScript コードを取得します。
scoreAd(ad, bid, auction_config, trusted_scoring_signals,
contextual_signals, user_signals, custom_audience_signals) {
// ...
return score_for_this_ad;
}
関数には次のパラメータが必要です。
- 広告: 評価する広告。
generateBid()
関数の出力。 - 入札単価:
generateBid()
関数から出力される入札単価。 - オークション設定:
selectAds()
メソッドへの入力パラメータ。 - 信頼できるスコアリング シグナル: 広告テクノロジー プラットフォームは、リアルタイム データに基づいて広告のフィルタリングとスコアリングについて通知します。たとえば、アプリのパブリッシャーは、アプリで広告を表示しないように広告キャンペーンをブロックすることがあります。このデータは、オークション設定の信頼できるスコアリング シグナル URL パラメータから取得されます。このリクエストを処理するサーバーは、広告テクノロジーが管理する信頼できるサーバーである必要があります。
- コンテキスト シグナル: おおまかなタイムスタンプやおおよその位置情報が含まれることがあります。
- ユーザー シグナル: アプリのインストールを開始したアプリストアなどの情報が含まれることがあります。
- カスタム オーディエンス シグナル: スコアリングする広告がデバイス上のカスタム オーディエンスからのものである場合は、カスタム オーディエンスのリーダーや名前などの情報が含まれます。
広告選択コード ランタイム
このプロポーザルでは、広告テクノロジー プラットフォームが提供するオークション コードが、設定可能な URL エンドポイントから取得され、デバイスで実行されます。モバイル デバイスのリソース制約を考慮して、オークション コードは以下のガイドラインを遵守する必要があります。
- コードは、事前に定義した時間内に実行を終了する必要があります。この制限は、すべての購入者広告ネットワークに対して一律に適用されます。この制限の詳細については、今後のアップデートで共有される予定です。
- コードは自己完結している必要があり、外部との依存関係があってはなりません。
入札ロジックなどのオークション コードは、アプリのインストール元などの非公開のユーザーデータにアクセスする必要が生じる場合があるため、ランタイムはネットワークやストレージへのアクセスを提供しません。
プログラミング言語
広告テクノロジー プラットフォームが提供するオークション コードは、JavaScript で記述する必要があります。これにより、たとえば広告テクノロジー プラットフォームは、プライバシー サンドボックスをサポートするプラットフォーム間で入札コードを共有できます。
落札広告のレンダリング
スコアが最も高い広告がオークションの落札者と見なされます。この最初のプロポーザルでは、落札広告が SDK に渡され、レンダリングされます。
今後はソリューションを進化させて、ユーザーのカスタム オーディエンス メンバーシップに関する情報やアプリの操作履歴を、落札広告に関する情報を通じてアプリまたは SDK から判断できないようにする予定です(Chrome の Fenced Frames のプロポーザルと同様)。
インプレッションとイベントに関するレポート
広告がレンダリングされると、落札インプレッションを 参加しているバイサイドとセルサイドのプラットフォームが対象となります。これにより購入者と販売者は 入札単価やカスタム オーディエンスなどのオークションの情報を含める 落札インプレッションレポートが表示されますさらにセルサイドと 獲得したバイサイド プラットフォームは、追加のイベントレベルの特典を受け取れます。 落札された広告に関するレポートですこれにより、オークションに関する情報(入札単価、カスタム オーディエンス名など)を、クリック、視聴回数、その他の広告イベントに含めることができます。プラットフォームは、次の順序でレポート ロジックを呼び出します。
- セルサイド レポート
- バイサイド レポート
これにより、バイサイド プラットフォームとセルサイド プラットフォームが重要なオンデバイス メッセージを送信できるようになります。 情報をサーバーに送り返し、リアルタイムの予算編成、 入札モデルの更新、正確な請求ワークフローの支援。このインプレッション レポートは サポートは Attribution Reporting API を補完するものです。
イベント レポートをサポートするには、販売側と購入側の 2 つのステップが必要です。 JavaScript は、イベント レポートを受け取るイベントを登録し、 セルサイドはイベントレベルの情報を報告します。
Protected Audience は、関連する将来のイベントをサブスクライブするメカニズムを提供します。
ビーコンを登録して落札します。販売者の reportResult()
JavaScript 関数で、販売側のプラットフォームはプラットフォームの registerAdBeacon()
関数を使用してビーコンを登録できます。同様にバイサイドプラットフォームから
reportWin()
JavaScript 関数からの registerAdBeacon()
メソッド。
registerAdBeacon(beacons)
入力:
event_key
: 登録するインタラクションの種類を示す文字列。 これは、プラットフォームが ping を実行するエンドポイントを検索するためのキーとして使用されます。 オークションの結果レポートが作成されますreporting_url
: イベントを処理するために広告テクノロジー プラットフォームが所有する URL。
イベントキーはセルサイド SDK が所有する文字列識別子です
オークションの結果のレポート作成を担当します。コールバックを行うには、
広告テクノロジーが、セルサイドが使用するキーと一致するキーでビーコンを登録する
指定することもできます。これらは k-匿名性である必要はありませんが、
制限は、1 つのプロジェクトに登録できるキーの数と長さに対する
特定のカスタムオーディエンスを
対象にできますreportEvent()
が呼び出されると、オークションを実施したセルサイド プラットフォームは、常にこれらのイベント レポートを受信できます。
落札したバイサイド プラットフォームは、これらのレポートを受け取れます。
セルサイド レポート
プラットフォームが、サプライ ファイル内で reportResult()
JavaScript 関数を呼び出します。
販売者の判断ロジック URL からダウンロードされたサイド提供のコード
パラメータselectAds()
:
reportResult(render_url, bid, auction_config, contextual_signals) {
// ...
beacons = {"click":clickUri}
registerAdBeacon(beacons)
return {
"status": 0,
"results": {"reporting_url": reporting_url,
"signals_for_buyer": signals_for_buyer}};
}
出力: 次を含む JSON オブジェクト。
- ステータス: 成功の場合は
0
、失敗の場合はその他の値。 - レポート URL: プラットフォームは、関数から返されたこの URL を呼び出します。
- 購入者向けシグナル: 購入者の
reportWin
関数に渡される JSON オブジェクト。
サプライサイドは、レポート URL で関連性の高いシグナルをエンコードすることで、オークションや落札広告についてさらに詳しい分析情報を得ることができます。たとえば、次のようなシグナルが該当します。
- 広告レンダリング URL
- 落札単価
- アプリ名
- クエリ識別子
- 購入者向けのシグナル: 供給側と需要側でのデータ共有をサポートする プラットフォームはこの戻り値を入力パラメータとして デマンドサイドのレポートコードです
バイサイド レポート
プラットフォームは、オークションに関連付けられたカスタム オーディエンスの入札ロジック URL メタデータからダウンロードしたデマンドサイド提供のコードで、reportWin()
JavaScript 関数を呼び出します。
reportWin(render_url, bid, auction_signals, per_buyer_signals,
signals_for_buyer, contextual_signals, custom_audience_signals) {
// ...
beacons = {"click":clickUri}
registerAdBeacon(beacons)
return {
"status": 0,
"results": {"reporting_uri": reporting_uri}};
}
入力:
auction_signals
とper_buyer_signals
はAuctionConfig
から取得されます。バイサイド プラットフォームがレポート URL に渡す必要がある情報は、このデータから取得される可能性があります。signals_for_buyer
は、セルサイドの reportResult の出力です。これにより、セルサイド プラットフォームはレポートのためにバイサイド プラットフォームとデータを共有できます。contextual_signals
にはアプリ名などの情報が含まれ、custom_audience_signals
にはカスタム オーディエンス情報が含まれます。今後、その他の情報が追加される可能性があります。
出力:
- ステータス: 成功の場合は
0
、失敗の場合はその他の値。 - レポート URL: プラットフォームは、関数から返されたこの URL を呼び出します。
イベントの報告
イベントのレポートは、オークションのインプレッション レポートが完了した後にのみ可能となります。
完了していません。イベントのレポートはセルサイド SDK が行います。「
プラットフォームは、ReportEventRequest
を受け取る API を公開します。
最近実行されたオークション、報告されたイベントキー、
レポートを購入者と販売者のどちらに送信するか(
両方)と、広告イベントの入力イベント(省略可)です。クライアントがイベントを定義する
レポートに表示するデータのキー
コレクションを指定します
ReportEventRequest request = new ReportEventRequest(
AdSelectionId = ad_selection_id,
event_key = "view"
event_data = "{ "viewTimeInSeconds" :1 }",
reporting_destinations =
FLAG_REPORTING_DESTINATION_SELLER |
FLAG_REPORTING_DESTINATION_BUYER,
input_event = clickInputEvent // or null for view
)
reportEvent(request)
入力:
ad_selection_id
は、AdSelectionOutcome
から取得した最近行われたオークションのAdSelectionId
である必要があります。event_key
: セルサイドが定義する、インタラクションを表す文字列 イベントです。event_data
は、関連付けられたデータを表す文字列です。event_key
reporting_destinations
は、 説明します。FLAG_REPORTING_DESTINATION_SELLER
またはFLAG_REPORTING_DESTINATION_BUYER
、またはその両方です。input_event
(省略可)は、Attribution Reporting との統合に使用されます。 APIInputEvent
オブジェクト(クリック イベントの場合)または null(ビューイベントの場合)です。詳しくは、Attribution Reporting API の統合をご覧ください。 このパラメータの詳細をご覧ください。
セルサイド SDK が reportEvent
を呼び出した後、
reporting_destinations
フラグを指定すると、プラットフォームは event_key
を
reportWin
で購入者と販売者が登録した鍵と
reportResult
JavaScript 関数。一致するものがある場合、プラットフォームは
関連する reporting_url
に対する event_data
。リクエストのコンテンツ タイプ
本文は event_data
である書式なしテキストです。このリクエストはベスト エフォートとして行われ、ネットワーク エラー、サーバーエラー レスポンス、一致するキーが見つからない場合、サイレントで失敗します。
Attribution Reporting API の統合
Protected Audience のオークションに参加する購入者をサポートするために、 Protected Audience と Attribution 全体でクロス API 機能を提供 Reporting API(ARA)。この機能を使用すると、広告テクノロジーは さまざまなリマーケティング手法でアトリビューションのパフォーマンスを分析し、 どのタイプのオーディエンスが最高の ROI を達成しているかを把握できます。
この API 間の統合により、アドテックは次のことが可能になります。
- 両方に使用する URI の Key-Value マップを作成する (1)広告インタラクション レポート、2)ソースの登録
- Protected Audience オークションのオークション データをソース側に含める 集計サマリー レポートのキーマッピング(Attribution Reporting を使用) API など)については、ARA の設計案をご覧ください。
ユーザーが広告を表示またはクリックすると、次のようになります。
- Protected Audience を使用してこうしたイベントのインタラクションを報告するために使用される URL は、 視聴やクリックの登録に必要なデータを購入者に提供する Attribution Reporting API で有効なソースとして登録されます
- 広告テクノロジーは、
CustomAudience
(またはその他の関連するコンテキスト 広告の配置や視聴時間など、広告に関する情報) そうすると、広告テクノロジーが更新されるまで、このメタデータを概要レポートに キャンペーンのパフォーマンスの集計を確認する
ソースの登録を有効にする
reportEvent()
は新しいオプション パラメータ InputEvent
を受け入れます。広告ビーコンを登録した落札した購入者は、どの reportEvent レポートを登録済みソースとして Attribution Reporting API に登録するかを選択できます。reportEvent()
から送信されるすべてのイベント レポート リクエストに、リクエスト ヘッダー Attribution-Reporting-Eligible が追加されます。適切な ARA ヘッダーを含む応答
他の通常の ARA ソース登録と同じ方法で解析されます。
示されます設定方法については、Attribution Reporting API の説明をご覧ください。
ソース URL を登録します。
Android の ARA ではビューイベントとクリックイベントがサポートされているため、InputEvents
これら 2 つのタイプを区別するために使用します。ARA ソースと同様
reportEvent()
API は、プラットフォームで検証済みの
クリック イベントとして InputEvent
。InputEvent
が欠落しているか、null または無効な場合、
ソース登録はビューと見なされます
オークション後の eventData
には機密情報が含まれる可能性があるため、
プラットフォームが、リダイレクトされたソース登録リクエストで eventData
をドロップする。
エンゲージメントとコンバージョンのレポートの例
この例では、オークション、レンダリングされた広告、コンバージョン アプリのデータの関連付けに関心を持つ購入者の視点から説明します。
このワークフローでは、購入者が販売者と連携して一意の ID を 決定しますオークション中に購入者は、この一意の ID と 分析できますレンダリング時とコンバージョン時に レンダリングされた広告のデータは 同じ一意の ID で送信されます後で、一意の ID を使用してこれらのレポートを関連付けることができます。
ワークフロー:
オークションの開始前に、購入者は
プログラマティックリアルタイム ビッダー(RTB)の入札レスポンス。ID は auctionId
などの変数として設定できます。ID は perBuyerSignals
として渡されます。
auctionConfig
に渡され、購入者の入札ロジックで利用できるようになります。
reportWin
の実行中、購入者は広告ビーコンを登録して 特定のインタラクション イベントが発生したときにトリガーされる (registerAdBeacon()
).広告イベントのオークション シグナルを関連付けるには、 ビーコン URL のクエリ パラメータとしてauctionId
。- 広告のレンダリング時に、オークション時に登録したビーコンをトリガーしたり、イベント単位のデータで拡張したりできます。販売者は
reportEvent()
をトリガーし、イベント単位のデータを渡す必要があります。プラットフォームから ping が 関連付けられた購入者の登録済み広告ビーコン URL トリガーされたreportEvent()
。 - 購入者は、次の方法で Attribution Reporting API に広告を登録します。
レスポンスとして広告ビーコンのリクエストに
Attribution-Reporting-Register-Source
ヘッダー。コンバージョン イベントのオークション シグナルを関連付けるには、登録ソース URL でauctionId
を設定します。
上記の手順を終えると、購入者にオークション レポートが届きます。 インタラクションレポート、コンバージョンレポートです。 相互に関連付けることができる一意の ID です。
営業担当者がアトリビューション データにアクセスする必要がある場合は、同様のワークフローが適用されます。
販売者は、一意の ID を使用して registerAdBeacon()
で送信することもできます。「
reportEvent()
呼び出しに、送信に使用できる destination プロパティが含まれています
購入者と販売者の両方に
レポートを送信できます
広告テクノロジー プラットフォームが管理する信頼できるサーバー
現在の広告選択ロジックには、予算の枯渇などのリアルタイムの情報が必要 ステータスに基づいて、広告候補をオークションに選出する必要があるかどうかを判断できます。両方 バイサイドとセルサイドのプラットフォームは、これらの情報を サーバーです。機密情報の漏洩を最小限に抑えるため、 次の制限が適用されます。
- これらのサーバーの動作(このセクションで後述)によってユーザー情報が漏洩しない。
- サーバーが、参照するデータに基づいて仮名化されたプロファイルを作成しない(つまり「信頼できる」必要がある)。
バイサイド: バイサイドがバイサイド入札ロジックを開始すると、プラットフォームは、信頼できるサーバーから信頼できる入札データの HTTP 取得を行います。URL は、処理されるカスタム オーディエンスの信頼できる入札シグナルのメタデータに存在する URL とキーを付加することで構成されます。この取得は、デバイス上のカスタム オーディエンスの広告を処理する場合にのみ行われます。この段階で、バイサイドによる予算の執行、キャンペーンの一時停止 / 一時停止解除状態の確認、ターゲティングの実施が可能となります。
カスタム オーディエンスからの信頼できる入札シグナルのメタデータに基づいて、信頼できる入札データを取得する URL の例を次に示します。
https://www.kv-server.example/getvalues?keys=key1,key2
サーバーからのレスポンスは、キーが key1 や key2 などであって、値を購入者の入札機能に利用できる JSON オブジェクトである必要があります。
セルサイド: 前述のバイサイド フローと同様に、セルサイドが、オークションで考慮されるクリエイティブについての情報取得を望む場合があります。たとえば、パブリッシャーは、ブランド保護の観点から、特定のクリエイティブがアプリに表示されないように強制したい場合があります。この情報を取得して、セルサイド オークション ロジックで利用できるようにすることができます。バイサイドの信頼できるサーバーの検索と同様に、セルサイドの信頼できるサーバーの検索も HTTP 取得によって行われます。URL は、信頼できるスコアリング シグナル URL と、データを取得する必要があるクリエイティブのレンダリング URL を付加することで構成されます。
クリエイティブのレンダリング URL に基づいて、オークションで考慮するクリエイティブについての情報を取得する URL の例を次に示します。
https://www.kv-server.example/getvalues?renderUrls=render_url1,render_url2
サーバーからのレスポンスは、リクエストで送信されたレンダリング URL をキーとする JSON オブジェクトである必要があります。
これらのサーバーが信頼できる方法で動作することで、セキュリティとプライバシーに関して、次の利点をもたらします。
- 各キーに対するサーバーの戻り値がそのキーのみに基づいているということを信頼できる。
- サーバーがイベントレベルのロギングを行わない。
- サーバーに、これらのリクエストに基づくその他の副作用がない。
一時的なメカニズムとして、購入者と販売者は、自社で運営するサーバーを含め、どのサーバーからも入札シグナルを取得できます。ただし、リリース バージョンでは、信頼できる Key-Value 型サーバーにのみリクエストを送信します。
購入者と販売者は、Android 版プライバシー サンドボックスと互換性のあるプラットフォームとウェブ用に、共通の信頼できる Key-Value 型サーバーを使用できます。