アプリケーションは、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 とリファレンス データ で確認できます。
インプレッションに入札しない場合は、空の HTTP 204 レスポンスを返す必要があります。アプリはすべての BidRequest
にレスポンスを返す必要があります。タイムアウトと解析できないレスポンスはエラーと見なされ、エラー率が高いビッダーはスロットリングされます。
クリエイティブ ID
BidResponse
では、BidResponse.seatbid.bid.crid
フィールドでクリエイティブを指定します(64 バイト上限)。サイズ、宣言された URL、クリエイティブ属性、ベンダータイプなど、顕著な特性が異なる場合は、類似のクリエイティブでも、このフィールドに固有の値を指定する必要があります(ただしこれらに限定されません)。つまり、次の条件を満たす 2 つの広告には、異なるクリエイティブ ID を割り当てる必要があります。
外観や動作が異なる。
別の画像にレンダリングする。
異なる方法でレンダリングする(1 つの広告が画像で構成され、もう 1 つが動画であるなど)。
アプリケーションを設計する際は、送信するクリエイティブの種類に適した識別子を生成する体系的な方法を決定する必要があります。
広告の帰属表示
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
BidResponse.seatbid.bid.apis
を MRAID_1
に設定します。JSON 形式の場合は 3
に設定します。
SIZELESS
BidResponse.seatbid.bid.attr
を RESPONSIVE
に設定します。JSON 形式の場合は 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 スニペットを作成する必要があります。
また、次の場合に、入札レスポンスで宣言された広告サイズは、入札リクエストのサイズの組み合わせの 1 つと完全に一致している必要があります。
広告が通常のバナーである(動画、ネイティブ、インタースティシャルではない)。
ビッダーが入札レスポンスでサイズを宣言している。リクエストに複数のサイズが存在する場合は、サイズの宣言が必要です。
インタースティシャル広告は例外です。インタースティシャルの場合は、幅が画面幅の 50% 以上、高さが画面高さの 40% 以上である必要があります。
適切にレンダリングされる有効な HTML コードを使用して HTML スニペット クリエイティブを指定できますが、Create BidResponse メッセージを作成する セクションで crid
フィールドを指定する際の制限事項に注意してください。たとえば、広告のレンダリングの一環としてサーバーから取得される URL の引数に追加情報を追加できます。これにより、インプレッションに関する任意のデータを独自のサーバーに渡すことができます。
入札レスポンスで返される HTML スニペットのポリシーのほとんどは、サードパーティ広告の場合と同じです。詳しくは、認定購入者プログラム ガイドライン 、第三者配信に関する要件 、広告でクリックスルー 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 を受け取ることを許可します。詳しくは、広告主 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
が google_click_url
パラメータをエスケープすることを前提としています。
%%CLICK_URL_ESC%%
の後に、二重エスケープされた URL を追加できます。my.adserver.com
によってエスケープ解除が完了すると、google_click_url
に URL の単一エスケープ バージョンが追加されます。google_click_url
がフェッチされると、もう一度エスケープ解除されてからリダイレクトされます。
CLICK_URL_ESC_ESC
広告の URL を 2 回エスケープしたものです。まず別のサーバーに値を渡し、そのサーバーからリダイレクトを返すようにする場合は、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
には、マクロを除く任意の値(空の文字列を含む)を使用できます。Open Bidding では、エクスチェンジでこのマクロを使用することをおすすめします。エクスチェンジでこのマクロを使用すると、デマンドサイド プラットフォームで変更する必要がなくなります。
たとえば、クリエイティブに %%?VERIFICATION:-1:5000%%
が含まれている場合、テキスト置換は配信では 5000
、検証パイプラインでは -1
になります。これは、この 2 つの ping セットを区別するのに役立ちます。
WINNING_PRICE
エンコードされたインプレッションの費用(CPM ではなく CPI)をアカウントの通貨で 100 万倍した値を返します。たとえば 5 米ドルの落札 CPM は、500 万マイクロ CPM または 5,000 マイクロ CPI に相当し、この場合、WINNING_PRICE
をデコードした値は 5,000 になります。落札価格は CPI で表されます。
このマクロを解析するには、料金確認を復号するアプリケーションを実装する必要があります。詳細については、料金確認の復号 のページをご覧ください。
WINNING_PRICE_ESC
URL エスケープされた WINNING_PRICE
。
サードパーティが配信する広告のクリエイティブ内で、CLICK_URL_UNESC
マクロまたは CLICK_URL_ESC
マクロのいずれかを使用する必要があります。Google は、クリック トラッキングに CLICK_URL
マクロを使用します。
マクロでの URL エスケープでは、次のスキームが使用されます。
スペース文字はプラス記号(+
)に置き換えられます。
英数字(0 ~ 9、a ~ z、A ~ Z)と、!()*、-./:_~ の文字は変更されません。
他のすべての文字は %XX
に置き換えられます。ここで、XX
は文字を表す 16 進数です。
パブリッシャー向けの制限と要件
入札リクエストには、パブリッシャーがオークションのクリエイティブに適用する制限と要件の種類に関する情報が含まれます。
BidRequest.bcat
このフィールドで指定されたブロックされたカテゴリは、Real-time Bidding API の
detectedCategories
フィールドを使用して、送信されたクリエイティブで検出されたカテゴリと比較できます。
BidRequest.imp.ext.allowed_vendor_type
BidRequest.imp.secure
実際には、すべてのクリエイティブで 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 : "l30Zu42070Man1Z5u751yG"
seatbid {
bid {
id : "4X6uu65F9J3m467C571"
impid : "1"
price : 0.17
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_941528"
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"
}
billing_id : 50962964480
}
}
seat : "7632:7504:809671"
}
bidid : "II638Xkf-6432F06d-VGu8-27B4407D136w"
[ com . google . doubleclick . bid_response ] {
processing_time_ms : 70
}
OpenRTB JSON
例を表示
{
"id" : "l30Zu42070Man1Z5u751yG" ,
"seatbid" : [
{
"bid" : [
{
"id" : "4X6uu65F9J3m467C571" ,
"impid" : "1" ,
"price" : 0.17 ,
"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_941528" ,
"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"
},
"billing_id" : "50962964480"
}
}
],
"seat" : "7632:7504:809671"
}
],
"bidid" : "II638Xkf-6432F06d-VGu8-27B4407D136w" ,
"ext" : {
"processing_time_ms" : 70
}
}