アプリケーションは、Google からの入札リクエストを処理した後、レスポンスを作成して送信する必要があります。このガイドでは、レスポンスを構築するようにアプリケーションをコーディングする方法について説明します。
BidResponse メッセージを作成する
入札を送信するには、入札アプリケーションが、構成された形式の Bid を含む BidResponse で入札リクエストに応答する必要があります。JSON 形式を使用している場合、レスポンスで Content-Type ヘッダーを application/json; charset=utf-8 に設定し、本文に JSON BidResponse を含める必要があります。Protobuf 形式を使用している場合、アプリケーションは Content-Type ヘッダーを application/octet-stream に設定し、シリアル化された BidResponse を本文に含める必要があります。
Protobuf 形式の BidResponse をビルドしてシリアル化するには、openrtb.proto と openrtb-adx.proto に基づいて Protobuf ライブラリを生成して使用する必要があります。これらのライブラリは、それぞれ標準の OpenRTB BidResponse フィールドと Google 拡張機能を Protobuf で実装しています。これらは、Protos & Reference Data で確認できます。
インプレッションに入札しない場合は、空の HTTP 204 レスポンスを返す必要があります。アプリケーションは、すべての BidRequest に対してレスポンスを返す必要があります。タイムアウトと解析できないレスポンスはエラーと見なされ、エラー率の高い入札者は Google によってスロットリングされます。
クリエイティブ ID
BidResponse は、BidResponse.seatbid.bid.crid フィールド(128 バイトの上限)でクリエイティブを指定します。類似したクリエイティブであっても、サイズ、宣言された URL、クリエイティブ属性、ベンダータイプなど、注目すべき特徴が異なる場合は、このフィールドに一意の値を設定する必要があります。つまり、次の 2 つの広告には異なるクリエイティブ ID を割り当てる必要があります。
外観や動作が異なる。
別の画像にレンダリングします。
異なる方法でレンダリングする(たとえば、一方の広告は画像で構成され、もう一方の広告は動画で構成される)。
アプリケーションを設計する際は、送信する予定のクリエイティブの種類に適した識別子を体系的に生成する方法を決定する必要があります。
広告の帰属表示
Google では、BidResponse.seatbid.bid.apis と BidResponse.seatbid.bid.attr の組み合わせ、または BidResponse.seatbid.bid.ext.attribute 拡張機能を使用して、広告の特性とターゲティングを説明するクリエイティブ属性を宣言することをおすすめします。属性の宣言方法について説明します。
VPAID
BidResponse.seatbid.bid.apis を VPAID_1 または VPAID_2 に設定します。JSON 形式の場合、それぞれ 1 または 2 に設定できます。
MRAID
JSON 形式の場合は、BidResponse.seatbid.bid.apis を MRAID_1 または 3 に設定します。
SIZELESS
JSON 形式の場合は、BidResponse.seatbid.bid.attr を RESPONSIVE または 18 に設定します。
PLAYABLE
これは、BidResponse.seatbid.bid.attr を USER_INTERACTIVE に設定するか、JSON 形式の場合は 13 に設定することで示されます。
クリエイティブの検出されたプロパティに関するフィードバックを取得する方法については、クリエイティブ リソース をご覧ください。
Open Bidding のフィールド
Open Bidding に参加しているエクスチェンジとネットワークの入札者から送信される入札レスポンスは、標準のリアルタイム ビッダーに参加している認定バイヤーの入札レスポンスと似ています。Open Bidding のお客様は、少数の追加フィールドを指定できます。また、既存のフィールドの一部は別の用途で使用される場合があります。次に例を示します。
フィールド
詳細
BidResponse.imp.pmp.deals.id
この入札に関連付けられ、パブリッシャーに報告される、エクスチェンジの Namespace の取引 ID。
注: このフィールドは、クローズド ベータ版の参加者にのみ送信されます。
BidResponse.seatbid.bid.ext.exchange_deal_type
パブリッシャーに報告される取引のタイプ。オークションでの取引の扱い方に影響します。
注: このフィールドは、クローズド ベータ版の参加者にのみ送信されます。
BidResponse.seatbid.bid.ext.third_party_buyer_token
Open Bidding のエクスチェンジが仲介者の場合、最終的な第三者購入者の情報を特定するために使用されるトークン。これはサードパーティの購入者から取得され、入札レスポンスで Google に変更せずに渡す必要があります。
推奨事項
入札レスポンスの例
次の例は、Protobuf リクエストと JSON リクエストの人間が読めるサンプルを表しています。
OpenRTB Protobuf
例を表示
シリアル化されたレスポンス
id : "1lY5z94y6Bz404R9H0ZN38"
seatbid {
bid {
id : "n1KLe2Q26Xyu431W1PU"
impid : "1"
price : 1.0575798749923706
adm : "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src= \" https://test.com/ads?id=123456&curl= %% CLICK_URL_ESC %% &wprice= %% WINNING_PRICE_ESC %% \" ></iframe>"
crid : "test_creative_id_666097"
dealid : "0"
w : 339
h : 53
burl : "https://test.com/imp?id=123456"
[ com . google . doubleclick . bid ] {
event_notification_token {
payload : "token"
}
billing_id : 86548870602
dsa {
adrender : true
}
clickurl : "google.com"
}
}
}
cur : "JPY"
[ com . google . doubleclick . bid_response ] {
processing_time_ms : 7
}
OpenRTB JSON
例を表示
{
"id" : "1lY5z94y6Bz404R9H0ZN38" ,
"seatbid" : [
{
"bid" : [
{
"id" : "n1KLe2Q26Xyu431W1PU" ,
"impid" : "1" ,
"price" : 1.0575798749923706 ,
"adm" : "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src= \" https://test.com/ads?id=123456&curl= %% CLICK_URL_ESC %% &wprice= %% WINNING_PRICE_ESC %% \" ></iframe>" ,
"crid" : "test_creative_id_666097" ,
"dealid" : "0" ,
"w" : 339 ,
"h" : 53 ,
"burl" : "https://test.com/imp?id=123456" ,
"ext" : {
"event_notification_token" : {
"payload" : "token"
},
"billing_id" : "86548870602" ,
"dsa" : {
"adrender" : 1
},
"clickurl" : [
"google.com"
]
}
}
]
}
],
"cur" : "JPY" ,
"ext" : {
"processing_time_ms" : 7
}
}
重要: サンプルに示されている Protobuf メッセージは、人が読めるテキストとして表されています。ただし、メッセージはワイヤを介して送信されません。OpenRTB Protobuf 形式を使用する場合、シリアル化された BidResponse メッセージのみが受け入れられます。
次の C++ コードを使用して、BidResponse メッセージを作成してシリアル化できます。
BidResponse bid_response;
// fill in bid response with bid information
string post_response;
if (bid_response.SerializeToString(&post_response)) {
// respond to the POST with post_response as the content
} else {
// return an error to the POST
}
クリエイティブを指定する
入札レスポンスでは、入札が落札された場合に配信するクリエイティブを指定します。入札には、サポートされている広告フォーマット(AMP、動画、ネイティブ)のいずれかを含める必要があります。この例では、html_snippet フィールドを使用してクリエイティブを指定します。
または、広告フォーマットに応じて、次のいずれかのフィールドを使用してクリエイティブを指定することもできます。
SDK でレンダリングされた広告
BidResponse.seatbid.bid.ext.sdk_rendered_ad
AMP
BidResponse.seatbid.bid.amp_ad_url
動画
BidResponse.seatbid.bid.adm
ネイティブ
BidResponse.seatbid.bid.adm_native
BidResponse.seatbid.bid.adm フィールドの HTML スニペットを使用して、独自のサーバーでホストされている広告を指定します。スニペットはウェブページに挿入された iframe に囲まれており、ページが読み込まれると広告が取得されてレンダリングされます。入札する広告スロットの適切なサイズで、広告(バナーまたはインタースティシャル)が iframe 内で正しくレンダリングされるように、HTML スニペットを作成する必要があります。
また、入札レスポンスで宣言された広告サイズは、次の条件を満たす場合に、入札リクエストのサイズ組み合わせのいずれかと完全に一致している必要があります。
広告は通常のバナー(動画、ネイティブ、インタースティシャルではない)。
ビッダーが入札レスポンスでサイズを宣言している。リクエストに複数のサイズが含まれている場合は、サイズ宣言が必要です。
インタースティシャル広告は例外とします。インタースティシャル広告の場合、幅は画面の幅の 50% 以上、高さは画面の高さの 40% 以上にする必要があります。
HTML スニペット クリエイティブは、正しくレンダリングされる有効な HTML コードを使用して指定できますが、入札レスポンス メッセージの作成 セクションの crid フィールドの指定に関する制限事項に注意してください。この機能は、広告のレンダリングの一環としてサーバーから取得される URL の引数に、追加情報を入れるために使用できます。これにより、インプレッションに関する任意のデータを独自のサーバーに渡すことができます。
入札レスポンスで返される HTML スニペットのほとんどのポリシーは、サードパーティ広告と同じです。詳しくは、Authorized Buyers プログラムのガイドライン 、第三者配信に関する要件 、広告のクリックスルー URL を宣言する をご覧ください。
マクロを指定する
マクロは、一部の入札レスポンス フィールドに埋め込まれた書式設定済みのテキストです。このテキストには URL が含まれており、広告配信時に関連する値に置き換えられます。たとえば、落札した入札に、入札に含まれる HTML スニペット クリエイティブの AUCTION_PRICE マクロが含まれている場合、そのマクロは、オークションでインプレッションに対して支払った金額を特定するために復号できる値に置き換えられます。
次のフィールドにマクロを含めることができます。
BidResponse.seatbid.bid.adm
マクロは、HTML スニペット、ネイティブ、動画 URL、動画 VAST XML の各フォーマットでサポートされています。
BidResponse.seatbid.bid.adm_native.eventtrackers.url
BidResponse.seatbid.bid.adm_native.imptrackers
BidResponse.seatbid.bid.ext.amp_ad_url
AMP クリエイティブでは、Google 固有の WINNING_PRICE マクロと WINNING_PRICE_ESC マクロのみがサポートされています。
BidResponse.seatbid.bid.burl
BidResponse.seatbid.bid.ext.impression_tracking_url
複数の請求 URL が必要な場合は、BidResponse.seatbid.bid.burl の代わりにこれを使用します。
たとえば、クリエイティブの取得に使用される URL 内に ${MACRO} を埋め込むことで、HTML スニペットの一部としてマクロを含めることができます。ここで、MACRO は OpenRTB 仕様 に記載されているサポート対象のマクロの 1 つです。
Google マクロ
Google は、OpenRTB 仕様に記載されているマクロ以外にも、追加のマクロをサポートしています。これらのマクロは形式が異なり、URL に埋め込まれている場合は %%MACRO%% と表示されます。次の表に、これらのマクロを示します。
マクロ
説明
ADVERTISING_IDENTIFIER
購入者は、インプレッションのレンダリング時に iOS IDFA または Android の広告 ID を受け取ることができます。詳しくは、広告主様の識別子の復号 をご覧ください。
CACHEBUSTER
ランダムな 4 バイト符号なし整数の文字列表現。
CLICK_URL_UNESC
エスケープ処理なしの広告のクリック URL。スニペットでは、エスケープ処理された第三者のクリック URL をこのマクロの直後に記述する必要があります。
たとえば、第三者のクリック URL が http://my.adserver.com/some/path/handleclick?click=clk の場合、マクロ呼び出しの後に第三者のクリック URL の単一エスケープ バージョンを記述して、次のコードを使用できます。
<a href="%%CLICK_URL_UNESC%%http%3A%2F%2Fmy.adserver.com%2Fsome%2Fpath%2Fhandleclick%3Fclick%3Dclk"></a>
広告配信時には次のように展開されます。
<a href="http://google-click-url?...&ad_url=http%3A%2F%2Fmy.adserver.com%2Fsome%2Fpath%2Fhandleclick%3Fclick%3Dclk"></a>
この URL は、まず Google にクリックを登録してから、第三者のクリック URL にリダイレクトします。
CLICK_URL_ESC
エスケープ処理された広告のクリック URL。まず別のサーバーに値を渡し、そのサーバーからリダイレクトを返すようにする場合は、CLICK_URL_UNESC の代わりにこのマクロを使用します。
たとえば、次のコードを HTML スニペットで使用できます。
<a href="http://my.adserver.com/click?google_click_url=%%CLICK_URL_ESC%%"></a>
広告配信時には次のように展開されます。
<a href="http://my.adserver.com/click?google_click_url=http://google-click- url%3F...%26ad_url%3D"></a>
これにより、クリックが my.adserver.com に登録され、google_click_url パラメータで渡された URL へのリダイレクトが my.adserver.com によって行われます。これは、my.adserver.com が google_click_url パラメータをエスケープ解除することを前提としています。
%%CLICK_URL_ESC%% の後に二重エスケープされた URL を追加できます。my.adserver.com によるエスケープ解除が完了すると、URL の単一エスケープ バージョンが google_click_url に追加されます。google_click_url が取得されると、もう一度エスケープ解除されてからリダイレクトされます。
CLICK_URL_ESC_ESC
広告の二重エスケープ処理された URL。まず別のサーバーに値を渡し、そのサーバーからリダイレクトを返すようにする場合は、CLICK_URL_UNESC の代わりにこのマクロを使用します。
たとえば、次のコードを HTML スニペットで使用できます。
<a href="http://my.adserver.com/click?google_click_url=%%CLICK_URL_ESC_ESC%%"></a>
広告配信時には次のように展開されます。
<a href="http://my.otheradserver.com/click?google_click_url=http%3A%2F%2Fmy.adserver.com%2Fclick%3Fgoogle_click_url%3Dhttp%3A%2F%2Fgoogle-click-%20url%253F...%2526ad_url%253D"></a>
SCHEME
入札リクエストで SSL が必要ない場合は http: に、入札リクエストで SSL が必要な場合は https: に展開されます。
SITE
コンテンツ URL の URL がエスケープされたドメイン、または匿名インベントリの匿名 ID。
SITE_URL
非推奨です。同じ機能を提供する SITE マクロに置き換えられました。
TZ_OFFSET
タイムゾーンのオフセット。
VERIFICATION
本番環境と、クリエイティブが検証パイプラインでスキャンされたときの値が異なります。形式は %%?VERIFICATION:true-val:false-val%% です。true-val と false-val には、マクロ以外の任意の値(空の文字列を含む)を使用できます。オープン ビッディングでは、このマクロを使用することをおすすめします。このマクロを使用すると、デマンド サイド プラットフォームで変更を行う必要がなくなります。
たとえば、クリエイティブに %%?VERIFICATION:-1:5000%% が含まれている場合、テキストの置換は配信時に 5000、検証パイプラインで -1 になります。これは、この 2 つのピングのセットを区別するためです。
WINNING_PRICE
エンコードされたインプレッションの費用(CPM ではなく CPI)をアカウントの通貨で 100 万倍した値を返します。たとえば 5 米ドルの落札 CPM は、500 万マイクロ CPM または 5,000 マイクロ CPI に相当し、この場合、WINNING_PRICE をデコードした値は 5,000 になります。落札価格は CPI で表されます。
このマクロを解析するには、料金確認を復号するアプリケーションを実装する必要があります。詳細については、価格確認の復号 のページをご覧ください。
WINNING_PRICE_ESC
URL エスケープされた WINNING_PRICE。
Google では、第三者配信広告のクリエイティブ内で CLICK_URL_UNESC または CLICK_URL_ESC マクロを使用することが義務付けられています。Google はクリック トラッキングに CLICK_URL マクロを使用します。
マクロでの URL エスケープには、次のスキームが使用されます。
スペース文字はプラス記号(+)に置き換えられます。
英数字(0 ~ 9、a ~ z、A ~ Z)と !()*,-./:_~ の文字セットの文字は変更されません。
他のすべての文字は %XX に置き換えられます。ここで、XX は文字を表す 16 進数です。
パブリッシャーの制限と要件
入札リクエストには、パブリッシャーがオークションのクリエイティブに課す制限や要件の種類に関する情報が含まれます。
BidRequest.bcat
このフィールドで指定されたブロック対象カテゴリは、リアルタイム ビッディング API の
detectedCategories フィールドを使用して、送信されたクリエイティブで検出されたカテゴリと比較できます。
BidRequest.imp.ext.allowed_vendor_type
BidRequest.imp.secure
実際には、Google ではすべてのクリエイティブで SSL サポートが必要であるため、常に true に設定されます。
BidRequest.imp.{audio/banner/native/video}
BidRequest.imp.{audio/banner/native/video}.api
BidRequest.imp.{audio/banner/native/video}.battr
BidRequest.imp.{audio/banner/video}.mimes
制限付き機能を含む広告で入札しないでください。ベンダータイプなどの許可された機能については、ベンダータイプが BidRequest の allowed_vendor_type リストに含まれている場合にのみ広告を返します。入札リクエストで BidRequest.imp.banner などのフィールドに入力して指定された広告フォーマットのみを入札に含める必要があります。詳細については、BidRequest プロトコル バッファ定義のこれらのフィールドのコメントをご覧ください。
BidResponse で広告が返された場合は、BidResponse で BidResponse.seatbid.bid.attr、BidResponse.seatbid.bid.cat、BidResponse.seatbid.bid.adomain または BidResponse.seatbid.bid.adm_native.link.url のいずれかのフィールドを正確に設定する必要があります。広告にこれらのフィールドに適用可能な値が複数ある場合は、すべての値を含める必要があります。詳細については、BidResponse プロトコル バッファ定義のこれらのフィールドのコメントをご覧ください。これらのフィールドが設定されていないレスポンスは破棄されます。
Open Measurement
Open Measurement を使用すると、モバイルアプリ環境に配信される広告の独立した測定と検証サービスを提供するサードパーティ ベンダーを指定できます。
サポートされている広告フォーマットには、動画広告、バナー広告、インタースティシャル広告が含まれます。これらの形式を含む入札レスポンスで Open Measurement を使用する方法について詳しくは、Open Measurement SDK のヘルプセンター記事をご覧ください。
入札レスポンスの例
以降のセクションでは、さまざまな広告タイプの入札レスポンスの例を示します。
注: Protobuf サンプルには、同様のシリアル化された入札レスポンスへのダウンロード リンクが含まれています。これらが同一であることは保証されません。
アプリバナー
OpenRTB Protobuf
例を表示
シリアル化されたレスポンス
id : "4308k26S0C36XQ2z1dIo99"
seatbid {
bid {
id : "y2OcJw5j213rO95Gz78"
impid : "1"
price : 18.360865389304116
adm : "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>"
crid : "test_creative_id_391487"
dealid : "1"
w : 390
h : 60
[ com . google . doubleclick . bid ] {
impression_tracking_url : "https://test.com/impression?id=123456"
ad_choices_destination_url : "https://test.com/preferences"
billing_id : 82364411103
skadn {
version : "4.0"
network : "cF58w81X"
itunesitem : "788729094"
sourceapp : "1422994973"
fidelities {
fidelity : VIEW_THROUGH_ADS
nonce : "017e597c-3c7d-4a44-afeb-41cd9a17066f"
timestamp : "1757235407882"
signature : "11iF1L96q2cw8tu790p301c10530ogr7h250k1P9pLxqcJ2qe37klG8xB3M592YbpafQ9861493838C521XA6AEF4A40DK8X"
}
fidelities {
fidelity : STOREKIT_RENDERED_ADS
nonce : "017e597c-3c7d-4a44-afeb-41cd9a17066f"
timestamp : "1757235407882"
signature : "f67L3C138Y6XB7940141011Pd58AZbdBk9Xo1Mlf1973706DsB5808ILLKumU2ic9fr72b9bSs3CD25CCZo8DJB65JB0615L"
}
sourceidentifier : "5507"
}
app_promotion_type : INSTALLS
clickurl : "google.com"
clickurl : "example.com"
}
}
seat : "2542:1534:245840"
}
[ com . google . doubleclick . bid_response ] {
processing_time_ms : 3
}
OpenRTB JSON
例を表示
{
"id" : "4308k26S0C36XQ2z1dIo99" ,
"seatbid" : [
{
"bid" : [
{
"id" : "y2OcJw5j213rO95Gz78" ,
"impid" : "1" ,
"price" : 18.360865389304116 ,
"adm" : "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>" ,
"crid" : "test_creative_id_391487" ,
"dealid" : "1" ,
"w" : 390 ,
"h" : 60 ,
"ext" : {
"impression_tracking_url" : [
"https://test.com/impression?id=123456"
],
"ad_choices_destination_url" : "https://test.com/preferences" ,
"billing_id" : "82364411103" ,
"skadn" : {
"version" : "4.0" ,
"network" : "cF58w81X" ,
"itunesitem" : "788729094" ,
"sourceapp" : "1422994973" ,
"fidelities" : [
{
"fidelity" : 0 ,
"nonce" : "017e597c-3c7d-4a44-afeb-41cd9a17066f" ,
"timestamp" : "1757235407882" ,
"signature" : "11iF1L96q2cw8tu790p301c10530ogr7h250k1P9pLxqcJ2qe37klG8xB3M592YbpafQ9861493838C521XA6AEF4A40DK8X"
},
{
"fidelity" : 1 ,
"nonce" : "017e597c-3c7d-4a44-afeb-41cd9a17066f" ,
"timestamp" : "1757235407882" ,
"signature" : "f67L3C138Y6XB7940141011Pd58AZbdBk9Xo1Mlf1973706DsB5808ILLKumU2ic9fr72b9bSs3CD25CCZo8DJB65JB0615L"
}
],
"sourceidentifier" : "5507"
},
"app_promotion_type" : 1 ,
"clickurl" : [
"google.com" ,
"example.com"
]
}
}
],
"seat" : "2542:1534:245840"
}
],
"ext" : {
"processing_time_ms" : 3
}
}
アプリ内インタースティシャル
OpenRTB Protobuf
例を表示
シリアル化されたレスポンス
id : "U0t6Une80802A28Mi98o1t"
seatbid {
bid {
id : "300z78I726nCP7u4sFp"
impid : "1"
price : 149.83914184570312
adm : "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src= \" https://test.com/ads?id=123456&curl= %% CLICK_URL_ESC %% &wprice= %% WINNING_PRICE_ESC %% \" ></iframe>"
crid : "test_creative_id_732353"
dealid : "0"
w : 360
h : 715
burl : "https://test.com/imp?id=123456"
[ com . google . doubleclick . bid ] {
event_notification_token {
payload : "token"
}
billing_id : 68640308112
dsa {
adrender : true
}
clickurl : "google.com"
}
}
}
cur : "JPY"
[ com . google . doubleclick . bid_response ] {
processing_time_ms : 10
}
OpenRTB JSON
例を表示
{
"id" : "U0t6Une80802A28Mi98o1t" ,
"seatbid" : [
{
"bid" : [
{
"id" : "300z78I726nCP7u4sFp" ,
"impid" : "1" ,
"price" : 149.83914184570312 ,
"adm" : "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src= \" https://test.com/ads?id=123456&curl= %% CLICK_URL_ESC %% &wprice= %% WINNING_PRICE_ESC %% \" ></iframe>" ,
"crid" : "test_creative_id_732353" ,
"dealid" : "0" ,
"w" : 360 ,
"h" : 715 ,
"burl" : "https://test.com/imp?id=123456" ,
"ext" : {
"event_notification_token" : {
"payload" : "token"
},
"billing_id" : "68640308112" ,
"dsa" : {
"adrender" : 1
},
"clickurl" : [
"google.com"
]
}
}
]
}
],
"cur" : "JPY" ,
"ext" : {
"processing_time_ms" : 10
}
}
アプリ内インタースティシャル動画
OpenRTB Protobuf
例を表示
シリアル化されたレスポンス
id : "n40G42d551UX18627ao8lt"
seatbid {
bid {
id : "17u6BnD62h88r5q7066"
impid : "1"
price : 0.797848
adm : "https://video.test.com/ads?id=123456&wprice=%%WINNING_PRICE%%"
adomain : "google.com"
crid : "test_creative_id_987914"
w : 320
h : 480
cattax : GOOGLE_CATEGORIES
[ com . google . doubleclick . bid ] {
attribute : 47
attribute : 50
billing_id : 55383762512
skadn {
version : "4.0"
network : "306el65O"
itunesitem : "832461214"
sourceapp : "977150768"
fidelities {
fidelity : VIEW_THROUGH_ADS
nonce : "0054e0b9-0b53-4426-99dd-a1eefeb45565"
timestamp : "1757329316673"
signature : "oE3Ek8347oZV1Yl1J42G2c88BSKr2dqEbiOK2S4ni7NVDh3v128NN0hlzWK5aX96ecV1504E9k288i0t0wGX73P317812WE7"
}
fidelities {
fidelity : STOREKIT_RENDERED_ADS
nonce : "0054e0b9-0b53-4426-99dd-a1eefeb45565"
timestamp : "1757329316673"
signature : "b1GqXA4v889p842512GQ1p3249q5VmPt1335f1H1zdK92fq24j7a7ml419W7u8B7rhhH97s507f2251923oWi89XF1voZv4b"
}
sourceidentifier : "8396"
}
app_promotion_type : INSTALLS
clickurl : "google.com"
}
}
}
[ com . google . doubleclick . bid_response ] {
processing_time_ms : 20
}
OpenRTB JSON
例を表示
{
"id" : "n40G42d551UX18627ao8lt" ,
"seatbid" : [
{
"bid" : [
{
"id" : "17u6BnD62h88r5q7066" ,
"impid" : "1" ,
"price" : 0.797848 ,
"adm" : "https://video.test.com/ads?id=123456&wprice=%%WINNING_PRICE%%" ,
"adomain" : [
"google.com"
],
"crid" : "test_creative_id_987914" ,
"w" : 320 ,
"h" : 480 ,
"cattax" : 500 ,
"ext" : {
"attribute" : [
47 ,
50
],
"billing_id" : "55383762512" ,
"skadn" : {
"version" : "4.0" ,
"network" : "306el65O" ,
"itunesitem" : "832461214" ,
"sourceapp" : "977150768" ,
"fidelities" : [
{
"fidelity" : 0 ,
"nonce" : "0054e0b9-0b53-4426-99dd-a1eefeb45565" ,
"timestamp" : "1757329316673" ,
"signature" : "oE3Ek8347oZV1Yl1J42G2c88BSKr2dqEbiOK2S4ni7NVDh3v128NN0hlzWK5aX96ecV1504E9k288i0t0wGX73P317812WE7"
},
{
"fidelity" : 1 ,
"nonce" : "0054e0b9-0b53-4426-99dd-a1eefeb45565" ,
"timestamp" : "1757329316673" ,
"signature" : "b1GqXA4v889p842512GQ1p3249q5VmPt1335f1H1zdK92fq24j7a7ml419W7u8B7rhhH97s507f2251923oWi89XF1voZv4b"
}
],
"sourceidentifier" : "8396"
},
"app_promotion_type" : 1 ,
"clickurl" : [
"google.com"
]
}
}
]
}
],
"ext" : {
"processing_time_ms" : 20
}
}
アプリ ネイティブ
OpenRTB Protobuf
例を表示
シリアル化されたレスポンス
id : "550102L8So5v6gi4C00T36"
seatbid {
bid {
id : "U796oSA426V3U666ue8"
impid : "1"
price : 1.057860016822815
crid : "test_creative_id_395811"
dealid : "0"
adm_native {
ver : "1.2"
assets {
id : 6
img {
url : "https://native.test.com/logo?id=123456"
w : 200
h : 200
type : LOGO
}
}
assets {
id : 5
img {
url : "https://native.test.com/image?id=123456"
w : 800
h : 800
type : MAIN
}
}
assets {
id : 4
data {
value : "Galactic Luxury Cruises"
type : SPONSORED
}
}
assets {
id : 3
data {
value : "Book today"
type : CTATEXT
}
}
assets {
id : 1
title {
text : "Luxury Mars Cruises"
}
}
assets {
id : 2
data {
value : "Visit the planet in a luxury spaceship."
type : DESC
}
}
link {
url : "https://www.google.com"
}
}
[ com . google . doubleclick . bid ] {
impression_tracking_url : "https://test.com/impression?id=123456"
impression_tracking_url : "https://test.com/impression?id=123456"
ad_choices_destination_url : "https://test.com/preferences"
event_notification_token {
payload : "token"
}
billing_id : 73917825312
dsa {
adrender : true
}
clickurl : "google.com"
}
}
}
cur : "JPY"
[ com . google . doubleclick . bid_response ] {
processing_time_ms : 17
}
OpenRTB JSON
例を表示
{
"id" : "550102L8So5v6gi4C00T36" ,
"seatbid" : [
{
"bid" : [
{
"id" : "U796oSA426V3U666ue8" ,
"impid" : "1" ,
"price" : 1.057860016822815 ,
"crid" : "test_creative_id_395811" ,
"dealid" : "0" ,
"ext" : {
"impression_tracking_url" : [
"https://test.com/impression?id=123456" ,
"https://test.com/impression?id=123456"
],
"ad_choices_destination_url" : "https://test.com/preferences" ,
"event_notification_token" : {
"payload" : "token"
},
"billing_id" : "73917825312" ,
"dsa" : {
"adrender" : 1
},
"clickurl" : [
"google.com"
]
},
"adm" : "{ \" ver \" : \" 1.2 \" , \" assets \" :[{ \" id \" :6, \" img \" :{ \" url \" : \" https://native.test.com/logo?id=123456 \" , \" w \" :200, \" h \" :200, \" type \" :2}},{ \" id \" :5, \" img \" :{ \" url \" : \" https://native.test.com/image?id=123456 \" , \" w \" :800, \" h \" :800, \" type \" :3}},{ \" id \" :4, \" data \" :{ \" value \" : \" Galactic Luxury Cruises \" , \" type \" :1}},{ \" id \" :3, \" data \" :{ \" value \" : \" Book today \" , \" type \" :12}},{ \" id \" :1, \" title \" :{ \" text \" : \" Luxury Mars Cruises \" }},{ \" id \" :2, \" data \" :{ \" value \" : \" Visit the planet in a luxury spaceship. \" , \" type \" :2}}], \" link \" :{ \" url \" : \" https://www.google.com \" }}"
}
]
}
],
"cur" : "JPY" ,
"ext" : {
"processing_time_ms" : 17
}
}
ウェブ動画
OpenRTB Protobuf
例を表示
シリアル化されたレスポンス
id : "04XK8XoQI227314y42h0LL"
seatbid {
bid {
id : "R9TtHE88cGu48FA4DuG"
impid : "1"
price : 1.0523000955581665
adm : "https://video.test.com/ads?id=123456&wprice= %% WINNING_PRICE %% "
crid : "test_creative_id_400281"
dealid : "45957820"
[ com . google . doubleclick . bid ] {
event_notification_token {
payload : "token"
}
billing_id : 63495119434
dsa {
adrender : true
}
clickurl : "google.com"
}
}
}
cur : "JPY"
[ com . google . doubleclick . bid_response ] {
processing_time_ms : 11
}
OpenRTB JSON
例を表示
{
"id" : "04XK8XoQI227314y42h0LL" ,
"seatbid" : [
{
"bid" : [
{
"id" : "R9TtHE88cGu48FA4DuG" ,
"impid" : "1" ,
"price" : 1.0523000955581665 ,
"adm" : "https://video.test.com/ads?id=123456&wprice= %% WINNING_PRICE %% " ,
"crid" : "test_creative_id_400281" ,
"dealid" : "45957820" ,
"ext" : {
"event_notification_token" : {
"payload" : "token"
},
"billing_id" : "63495119434" ,
"dsa" : {
"adrender" : 1
},
"clickurl" : [
"google.com"
]
}
}
]
}
],
"cur" : "JPY" ,
"ext" : {
"processing_time_ms" : 11
}
}
エクスチェンジ ビッダー向けのモバイルウェブ バナー
OpenRTB Protobuf
例を表示
シリアル化されたレスポンス
id : "1qCcL0350ZX64rx8WQm7N1"
seatbid {
bid {
id : "9I6TCG083egHnxY1490"
impid : "1"
price : 0.34
adm : "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src= \" https://test.com/ads?id=123456&curl= %% CLICK_URL_ESC %% &wprice= %% WINNING_PRICE_ESC %% \" ></iframe>"
adomain : "google.com"
crid : "test_creative_id_607960"
w : 320
h : 100
[ com . google . doubleclick . bid ] {
impression_tracking_url : "https://test.com/impression?id=123456"
event_notification_token {
payload : "token"
}
billing_id : 29290087654
third_party_buyer_token : "0W4u1J2Ya9GqKfzo925xPxN527l74y91z6P9h9b4s0Dg2t1q84O4S652wcHe63576VvK8aG6K7387yQujd13kdb99q75447qr6k332G4l3Mzhq75f155894Jg0U1vB18t73C24B4D1cd"
}
}
bid {
id : "1xHeg1ANn9RbY9n4rG2"
impid : "1"
price : 0.2
adm : "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src= \" https://test.com/ads?id=123456&curl= %% CLICK_URL_ESC %% &wprice= %% WINNING_PRICE_ESC %% \" ></iframe>"
adomain : "google.com"
crid : "test_creative_id_607960"
w : 300
h : 50
[ com . google . doubleclick . bid ] {
impression_tracking_url : "https://test.com/impression?id=123456"
event_notification_token {
payload : "token"
}
third_party_buyer_token : "ha1g9MaJIJ8R0110bkX95Jb0ksv78l4139zr4t98A19DDO6NCpX84TQp84a6H470M7mop5KzVHRyrJtn1zw78N1559WRm7554X7R21jnI0E1X7c10Xj98c08iH85742t76Y26H67cW78"
}
}
seat : "3581:7507:419542"
}
seatbid {
bid {
id : "x0ch5K0vq3iY6M7ZT84"
impid : "1"
price : 0.11
adm : "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src= \" https://test.com/ads?id=123456&curl= %% CLICK_URL_ESC %% &wprice= %% WINNING_PRICE_ESC %% \" ></iframe>"
adomain : "google.com"
crid : "test_creative_id_607960"
w : 320
h : 50
[ com . google . doubleclick . bid ] {
impression_tracking_url : "https://test.com/impression?id=123456"
impression_tracking_url : "https://test.com/impression?id=123456"
event_notification_token {
payload : "token"
}
}
}
seat : "3581:7507:419542"
}
bidid : "EFa8lD5s-3w28kZzd-4221-aZkE1F6r5810"
[ com . google . doubleclick . bid_response ] {
processing_time_ms : 250
}
OpenRTB JSON
例を表示
{
"id" : "1qCcL0350ZX64rx8WQm7N1" ,
"seatbid" : [
{
"bid" : [
{
"id" : "9I6TCG083egHnxY1490" ,
"impid" : "1" ,
"price" : 0.34 ,
"adm" : "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src= \" https://test.com/ads?id=123456&curl= %% CLICK_URL_ESC %% &wprice= %% WINNING_PRICE_ESC %% \" ></iframe>" ,
"adomain" : [
"google.com"
],
"crid" : "test_creative_id_607960" ,
"w" : 320 ,
"h" : 100 ,
"ext" : {
"impression_tracking_url" : [
"https://test.com/impression?id=123456"
],
"event_notification_token" : {
"payload" : "token"
},
"billing_id" : "29290087654" ,
"third_party_buyer_token" : "0W4u1J2Ya9GqKfzo925xPxN527l74y91z6P9h9b4s0Dg2t1q84O4S652wcHe63576VvK8aG6K7387yQujd13kdb99q75447qr6k332G4l3Mzhq75f155894Jg0U1vB18t73C24B4D1cd"
}
},
{
"id" : "1xHeg1ANn9RbY9n4rG2" ,
"impid" : "1" ,
"price" : 0.2 ,
"adm" : "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src= \" https://test.com/ads?id=123456&curl= %% CLICK_URL_ESC %% &wprice= %% WINNING_PRICE_ESC %% \" ></iframe>" ,
"adomain" : [
"google.com"
],
"crid" : "test_creative_id_607960" ,
"w" : 300 ,
"h" : 50 ,
"ext" : {
"impression_tracking_url" : [
"https://test.com/impression?id=123456"
],
"event_notification_token" : {
"payload" : "token"
},
"third_party_buyer_token" : "ha1g9MaJIJ8R0110bkX95Jb0ksv78l4139zr4t98A19DDO6NCpX84TQp84a6H470M7mop5KzVHRyrJtn1zw78N1559WRm7554X7R21jnI0E1X7c10Xj98c08iH85742t76Y26H67cW78"
}
}
],
"seat" : "3581:7507:419542"
},
{
"bid" : [
{
"id" : "x0ch5K0vq3iY6M7ZT84" ,
"impid" : "1" ,
"price" : 0.11 ,
"adm" : "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src= \" https://test.com/ads?id=123456&curl= %% CLICK_URL_ESC %% &wprice= %% WINNING_PRICE_ESC %% \" ></iframe>" ,
"adomain" : [
"google.com"
],
"crid" : "test_creative_id_607960" ,
"w" : 320 ,
"h" : 50 ,
"ext" : {
"impression_tracking_url" : [
"https://test.com/impression?id=123456" ,
"https://test.com/impression?id=123456"
],
"event_notification_token" : {
"payload" : "token"
}
}
}
],
"seat" : "3581:7507:419542"
}
],
"bidid" : "EFa8lD5s-3w28kZzd-4221-aZkE1F6r5810" ,
"ext" : {
"processing_time_ms" : 250
}
}