アプリケーションは、Google からの入札リクエストを処理した後に、レスポンスを作成して送信する必要があります。このガイドでは、アプリケーションをコーディングしてレスポンスを作成する方法について説明します。
入札レスポンス メッセージを作成する
認定バイヤーは、BidRequest
を HTTP POST
のメッセージ本文として送信します。アプリケーションから送信するレスポンスでは、Content-Type
ヘッダーを application/octet-stream
に設定し、シリアル化されたプロトコル バッファで構成されるメッセージ本文を含める必要があります。プロトコル バッファは、realtime-bidding.proto
で定義されている BidResponse
メッセージです。アプリケーションは、すべての BidRequest
に対して解析可能な BidResponse
を返す必要があります。タイムアウトや解析できないレスポンスはエラーとみなされ、エラー率が高いビッダーは抑制されます。
インプレッションに入札しない場合は、processing_time_ms
フィールドだけを設定し、他のすべてのフィールドは空のままにします。realtime-bidding.proto
は参照データ ページから取得できます。
クリエイティブ ID
BidResponse
で、buyer_creative_id
フィールドを使用してクリエイティブを指定します(64 バイトまで)。類似のクリエイティブでも、重要な特性(サイズ、宣言する URL、クリエイティブ属性、ベンダータイプなど)が異なる場合は、buyer_creative_id
に固有の値を指定する必要があります。つまり、次の条件に合致する 2 つの広告にはそれぞれ異なるクリエイティブ ID を指定する必要があります。
外観や動作が異なります。
別の画像にレンダリングします。
異なる手段でレンダリングする(1 つの広告に画像で、もう 1 つの広告に Flash が含まれているなど)。
アプリケーションを設計する際は、送信するクリエイティブの種類に応じて、適切な識別子を生成する体系的な方法を決定する必要があります。
広告の帰属表示
広告の特性とターゲット設定をすべて記述するクリエイティブ属性は、BidResponse.Ad.attribute
で宣言する必要があります。宣言する必要がある属性は次のとおりです(サポートされている属性の一覧については、buyer-declarable-creative-attributes.txt をご覧ください)。
7 Tagging: IsTagged
リマーケティングのための Cookie ID のリストを作成する目的で、広告内にピクセルまたはウェブビーコンが含まれる。
8 Remarketing: IsRemarketing
広告は Cookie ID またはデバイス ID に基づいてターゲティングされます。この場合、Cookie ID またはデバイス ID のリストは、その購入者が所有または代表するサイトを操作したことのあるユーザーのグループを表します。
9 UserInterestTargeting: IsUserInterestTargeted
広告は Cookie ID またはデバイス ID に基づいてターゲティングされます。この場合、Cookie ID またはデバイス ID のリストは、購入者が共通のインタレスト グループとして定義した一連のユーザーを表します。
30 InstreamVastVideoType: Vpaid
広告をレンダリングするには VPAID 対応が必要です。
32 MraidType: MRAID
広告でレンダリングするには MRAID API が必要です。
以下の属性がサポートされていますが、宣言は不要です。認定バイヤーではこれらの属性が自動的に検出され、宣言された値ではなく、検出された値に基づいてクリエイティブをブロック(または許可)します。
検出されたクリエイティブ プロパティに関するフィードバックを取得する方法については、Creatives API をご覧ください。
34 RichMediaCapabilityType: RichMediaCapabilityFlash
広告の表示には Flash のサポートが必要です。
50 RichMediaCapabilityType: RichMediaCapabilityNonFlash
Flash を使わずに広告を表示できる。
47 RichMediaCapabilityType: RichMediaCapabilitySSL
広告が SSL ページにレンダリング可能である。なお、認定バイヤーでは、この属性の宣言値が異なるクリエイティブは別のものとして扱われます(個別に審査され、個別の承認ステータスが与えられます)。そのため、同じクリエイティブについて SSL 対応バージョンと非 SSL 対応バージョンの両方で入札する場合、この違いが AdX に正しく反映されるよう、この属性を適宜宣言する必要があります。
Open Bidding のフィールド
Open Bidding に参加しているエクスチェンジとネットワーク入札者が送信する入札レスポンスは、標準のリアルタイム ビッダーに参加している認定バイヤーの入札レスポンスと似ています。Open Bidding のユーザーは少数の追加フィールドを指定できます。また、一部の既存のフィールドは別の用途で使用できます。これには、次のようなものがあります。
OpenRTB
認定バイヤー
詳細
BidResponse.imp[].pmp.deals[].id
BidResponse.ad[].adslot[].exchange_deal_id
この入札に関連付けられ、パブリッシャーに報告されるエクスチェンジの名前空間の取引 ID。
注: 現在、このフィールドはクローズド ベータ版の参加者にのみ送信されます。
BidResponse.seatbid[].bid[].ext.exchange_deal_type
BidResponse.ad[].adslot[].exchange_deal_type
パブリッシャーに報告される取引のタイプ。オークションでの取引の処理方法に影響します。
注: 現在、このフィールドはクローズド ベータ版の参加者にのみ送信されます。
BidResponse.seatbid[].bid[].ext.third_party_buyer_token
BidResponse.ad[].adslot[].third_party_buyer_token
Open Bidding のビッダーとしてのエクスチェンジが仲介者である場合に、第三者の購入者の情報を識別するためのトークン。サードパーティの購入者から取得します。入札レスポンスで変更せずに Google に渡す必要があります。
推奨事項
入札レスポンスの例
次の例は、Protobuf リクエストと JSON リクエストの、人が読める形式のサンプルです。
Google
例を表示
ad {
html_snippet: "<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>"
adslot {
id: 1
max_cpm_micros: 10100
billing_id: 30279159795
}
click_through_url: "google.com"
attribute: 47
buyer_creative_id: "test_creative_id_766108"
advertiser_name: "Google"
width: 320
height: 50
impression_tracking_url: "https://test.com/imp?id=123456"
event_notification_token: "token"
}
processing_time_ms: 8
OpenRTB JSON
例を表示
{
"id": "sW2R7543D2w77f0542uu0F",
"seatbid": [
{
"bid": [
{
"id": "U4495qveIO2A83s1iOs",
"impid": "1",
"price": 0.10701,
"adid": "test_creative_id_323125",
"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"
],
"cid": "54460865479",
"crid": "test_creative_id_323125",
"w": 300,
"h": 250,
"ext": {
"app_promotion_type": "INSTALLS",
"impression_tracking_url": [
"https://test.com/impression?id=123456",
"https://test.com/impression?id=123456"
]
}
}
],
"seat": "1506:2993:976791"
}
],
"bidid": "WN7415ff-hN7R6080-3txk-r0J45ckY5970"
}
OpenRTB プロトコル バッファ
例を表示
id: "q745y3S4jz5Qg43A6izy2V"
seatbid {
bid {
id: "Fi366E0I1RN4Ofm8Ug5"
impid: "1"
price: 0.02
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"
cid: "51570472186"
crid: "test_creative_id_520474"
w: 468
h: 60
[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: 51570472186
}
}
seat: "1608:1311:489067"
}
bidid: "6930l9D4-1A9090lR-451S-01g3xTZv8382"
[com.google.doubleclick.bid_response] {
processing_time_ms: 100
}
重要: サンプルに示されている Protobuf メッセージは、ここでは人が読めるテキストとして表現されています。ただし、これはメッセージが有線で送信される方法ではありません。Google または 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.Ad.sdk_rendered_ad
AMP
BidResponse.Ad.amp_ad_url
動画
BidResponse.Ad.video_url
または
BidResponse.Ad.video_vast_xml
ネイティブ
BidResponse
の html_snippet
フィールドに HTML スニペットを使用し、自社サーバーでホストされる広告を指定します。ウェブページに挿入された iFrame にスニペットが囲まれているため、ページの読み込み時に広告が取得され、レンダリングされます。HTML スニペットは、広告(バナーまたはインタースティシャル)が iframe 内に正しくレンダリングし、入札対象の広告スロットに適したサイズになるように作成する必要があります。
また、次の場合に、入札レスポンスで宣言されている広告サイズが入札リクエストに含まれるサイズの組み合わせのいずれか 1 つと完全に一致している必要があります。
広告は通常のバナーです(動画、ネイティブ、インタースティシャルではありません)。
ビッダーが入札レスポンスでサイズを宣言しています。リクエストに複数のサイズがある場合は、サイズの宣言が必要になります。
インタースティシャル広告は例外です。インタースティシャル広告の場合、幅は画面の幅の 50% 以上、高さは画面の高さの 40% 以上にする必要があります。
html_snippet
フィールドは、適切にレンダリングされる任意の有効な HTML コードに対応していますが、buyer_creative_id
フィールドを指定する際の制限については、BidResponse メッセージを作成する セクションで確認できます。たとえば、広告のレンダリングの一環としてサーバーから取得した URL の引数に追加情報を格納できます。これにより、インプレッションに関する任意のデータを自社サーバーに渡すことができます。
入札レスポンスで返される HTML スニペットに関するポリシーのほとんどは、サードパーティの広告に関するポリシーと同じです。詳しくは、認定バイヤー プログラム ガイドライン 、第三者広告配信に関する要件 、広告内のリンク先 URL を宣言する をご覧ください。
マクロを指定する
クリエイティブを定義する HTML スニペットには、マクロと呼ばれる特別な構造を 1 つ以上含めることができます。広告配信時にマクロが値に置き換えられます。たとえば、クライアント入札アプリケーションで、WINNING_PRICE
マクロを使用して、広告がオークションで落札された場合に支払った金額を特定できます。このマクロを解析するには、価格確認を復号するアプリケーションを実装する必要があります。詳しくは、価格確認の復号 のページをご覧ください。
マクロは、HTML スニペットの一部として %%MACRO%%
の形式で指定します。MACRO
は、以下の表に記載されているサポート対象のマクロのいずれかです。
注: AMP 広告の入札レスポンス(amp_ad_url
)の場合、WINNING_PRICE
マクロと WINNING_PRICE_ESC
マクロのみがサポートされます。
第三者配信の広告のクリエイティブでは、CLICK_URL_UNESC
マクロまたは CLICK_URL_ESC
マクロを使用する必要があります。Google では、CLICK_URL
マクロを使ってクリック トラッキングを行っています。
マクロを使用するには、広告にマクロを含めると、ユーザーが広告をクリックしたときに URL が取得されます。フェッチの戻り値は、CLICK_URL
に追加した別の URL へのリダイレクトです。
注: 上記の DoubleClick マクロに加えて、OpenRTB マクロもサポートされています。OpenRTB のマクロについて詳しくは、OpenRTB の仕様 をご覧ください。
マクロ
Description
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
パラメータのエスケープを解除することを前提としています。
二重にエスケープされた URL を %%CLICK_URL_ESC%%
の後に追加できます。my.adserver.com
によってエスケープ解除が完了すると、google_click_url
の末尾にシングル エスケープ バージョンの 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
にはマクロ以外の値(空の文字列も含む)を使用できます。Open Bidding の場合、エクスチェンジでこのマクロを使用することをおすすめします。一度使用すれば、デマンドサイド プラットフォーム側で変更を加える必要はありません。
たとえば、クリエイティブに %%?VERIFICATION:-1:5000%%
が含まれる場合、テキストの置換は配信時に 5000
、検証パイプラインでは -1
になります。これは、これら 2 つの ping を区別するためです。
WINNING_PRICE
エンコードされたインプレッション費用(CPM ではなく CPI)を、アカウントの通貨のマイクロ単位で表したものです。たとえば、5 米ドルの獲得 CPM は 5,000,000 マイクロ CPM(5,000 マイクロ CPI)に相当します。この場合、デコードされた WINNING_PRICE
の値は 5,000 になります。
落札価格は CPI(インストール単価)で指定します。
WINNING_PRICE_ESC
URL がエスケープされた WINNING_PRICE
。
マクロ内の URL のエスケープでは、次のスキームが使用されます。
スペースはプラス記号(+
)に置き換えられます。
英数字(0 ~ 9、a ~ z、A ~ Z)とセット !()*,-./:_~ 内の文字は変更されない。
その他の文字はすべて %XX
に置き換えられます。ここで、XX
は文字を表す 16 進数です。
パブリッシャー向け制限コンテンツ
パブリッシャーは、BidRequest
を使用して、許可する広告に関する制限を渡します。次のフィールドの制限を適用する必要があります。
allowed_vendor_type
excluded_attribute
excluded_sensitive_category
1 つのフィールドでは広告の許可される機能を指定し、もう 1 つのフィールドでは許可されない機能を指定します。許可されていない機能を含む広告は返さないでください。ベンダータイプなどの許可される機能については、ベンダータイプが BidRequest
の allowed_vendor_type
リストに含まれている場合にのみ広告を返します。詳細については、BidRequest
プロトコル バッファ定義でこれらのフィールドのコメントをご覧ください。
HTML スニペットが BidResponse
で返された場合は、BidResponse
の attribute
、category
、click_through_url
の各フィールドを正確に設定する必要があります。広告のこれらのフィールドに複数の値がある場合は、すべての値を含める必要があります。詳細については、BidResponse
プロトコル バッファ定義でこれらのフィールドのコメントをご覧ください。これらのフィールドが設定されていないレスポンスは破棄されます。
BidRequest.excluded_attribute
の値は次のとおりです(publisher-excludable-creative-attributes.txt をご覧ください)。
7 Tagging: IsTagged
リマーケティングのための Cookie ID リストを作成することを目的としたピクセルやウェブビーコンを含む広告は許可されません。
8 CookieTargeting: IsCookieTargeted
Cookie ID に基づいてユーザーをターゲティングする広告は許可されません。その Cookie ID のリストは、その購入者が所有または代表するサイトを以前利用したことのあるユーザー群を表しています。
9 UserInterestTargeting: IsUserInterestTargeted
Cookie ID に基づいてユーザーをターゲティングする広告は許可されていません。ただし、Cookie ID のリストが、購入者が共通のインタレスト グループとして定義したユーザーのグループを表す場合です。
21 CreativeType: Html
BidResponse.Ad
では、広告で html_snippet
または snippet_template
フィールドを使用できません。
22 CreativeType: VastVideo
BidResponse.Ad
では、広告で video_url
フィールドを使用することはできません。
30 InstreamVastVideoType: Vpaid
広告を表示するために VPAID サポートを必須にすることはできません。
32 MraidType: MRAID
広告の表示に MRAID API を要求することは禁止されています。
34 RichMediaCapabilityType: RichMediaCapabilityFlash
広告を表示するために Flash のサポートを必須にすることが許可されていない。
39 RichMediaCapabilityType: RichMediaCapabilityHTML5
広告を表示するために HTML5 機能を要求することが許可されていません。
48 RichMediaCapabilityType: RichMediaCapabilityNonSSL
広告で SSL 以外のリクエストを行うことは許可されていません。
そのため、excluded_attribute
フィールドに値 7 が含まれている場合、リストの作成にピクセルやウェブビーコンを使用する広告を返さないでください。広告でこのような処理を行う場合は、BidResponse
の属性フィールドに値 7 を設定する必要があります。同様に、excluded_attribute
フィールドの値が 48 の場合は、SSL ページで表示できる広告のみを返す必要があります(それに応じて、属性 47 の リッチメディアケーパビリティタイプ リッチメディアケーパビリティ SSL を宣言します)。
また、BidRequest
の excluded_sensitive_category
フィールドでは、参照データ ページで入手可能な ad-sensitive-categories.txt
ファイルのコードが使用されます。以下に、これらのコードの一部について詳細に説明します。
3 Politics
政治問題や物議を醸す社会問題が対象です。問題に対して公平な立場にあるニュース メディアの広告は対象外です。
4 Dating
出会い系サービスやオンラインの出会い系コミュニティなどが対象です。
5 Religion
宗教的な広告や、宗教に関する賛成または反対の見解を宣伝する広告が含まれます。星占いや、特定の教派に反するスピリチュアルは含まれません。
7 Video Games (Casual & Online)
ビデオゲーム、オンライン ゲーム、ダウンロード可能なゲームが含まれます。ビデオゲーム本体は含まれません。
8 Ringtones & Downloadables
着信音などのモバイル用アドオン、デスクトップ PC 用のスクリーンセーバーや壁紙、ソーシャル ネットワーク用のプロフィールのレイアウトや画像など、ダウンロード可能なコンテンツ。
10 Get Rich Quick
迅速な収益化を約束するスキーム。
18 Weight Loss
減量、ダイエット、および関連する商品やプログラムが対象です。健康的な食事や一般的なフィットネスに関する広告は含まれません。
19 Cosmetic Procedures & Body Modification
リフト、吸引、レーザー、脱毛、脱毛、タトゥー、美容整形などに関するコンテンツが含まれます。
23 Drugs & Supplements:
医薬品、ビタミン剤、サプリメント、関連する販売店が含まれます。薬物に関する情報を提供するリソースは含まれません。
24 Sexual & Reproductive Health
性機能と生殖能力に関する広告が含まれます。通常の妊娠に関するリソースは対象外です。
35 Social Casino Games
金銭や賞品などの価値を有するものを獲得する機会のない、ギャンブルのシミュレーション ゲーム(ポーカー、スロット、ビンゴ、宝くじ、スポーツ賭博、レース賭博、その他のカードゲーム、カジノゲームなど)が含まれますが、これらに限定されません。
36 Significant Skin Exposure
胸骨から太ももの中部まで、人体の一部に衣服を着ていない広告画像。下着、水着、ランジェリーなど、透けて見える衣服や、タオルやシーツなどの衣服以外のものを身に付けている広告画像。
37 Sensationalism
大げさな言葉や画像を含むティーザー メッセージを使用してユーザーの好奇心を刺激し、ユーザーのクリックを促す広告。扇情的な内容(有名人の逮捕、死、離婚など)を中心とした広告や、衝撃的な価値を狙った広告などが該当します。
Open Measurement
Open Measurement を使用すると、モバイルアプリ環境に配信される広告に対して独立した測定サービスと検証サービスを提供する第三者ベンダーを指定できます。
現在サポートされている広告フォーマットには、動画広告、バナー広告、インタースティシャル広告などがあります。これらのフォーマットを含む入札レスポンスで Open Measurement を使用する方法について詳しくは、Open Measurement SDK のヘルプセンター記事をご覧ください。
入札レスポンスの例
以下のセクションでは、さまざまな広告タイプの入札レスポンスの例を示します。
アプリバナー
Google
例を表示
ad {
html_snippet: "<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>"
adslot {
id: 1
max_cpm_micros: 31014
billing_id: 16751333146
}
click_through_url: "google.com"
attribute: 47
attribute: 50
category: 0
buyer_creative_id: "test_creative_id_173035"
advertiser_name: "Google"
width: 300
height: 250
impression_tracking_url: "https://test.com/imp?id=123456"
event_notification_token: "token"
advertised_app_id: "APP_ID_OMITTED"
app_promotion_type: INSTALLS
}
processing_time_ms: 10
OpenRTB JSON
例を表示
{
"id": "SwkWZ9w3I3gJ803j84253U",
"seatbid": [
{
"bid": [
{
"id": "ro22H780p349mF6oe0h",
"impid": "1",
"price": 0.04001,
"adid": "test_creative_id_978541",
"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"
],
"cid": "82346236545",
"crid": "test_creative_id_978541",
"w": 390,
"h": 61,
"ext": {
"skadn": {
"version": "3.0",
"network": "5c39728P",
"campaign": "10199716",
"itunesitem": "640052147",
"sourceapp": "com.google.testapp",
"fidelities": [
{
"fidelity": 1,
"nonce": "9b05b355-a526-4f7c-9925-ab5c91b9dbef",
"signature": "0HY71438fqxkY2tqD14kV9DY1q3Fi77sc99e0D97Qo833M266T75c28Y5NM23wiL61WyNCe0277ER5eM32UxaKGf99GUM1jI",
"timestamp": "1714079463090"
},
{
"fidelity": 0,
"nonce": "9b05b355-a526-4f7c-9925-ab5c91b9dbef",
"signature": "J6RVg1KI31q1lB68f6F16fA07kY93DAYU2IL5ETDuvczR48oMr3S3X9tIohWi4L2VcE0w4mi42o0Mqa174U7o65951z44ru4",
"timestamp": "1714079463090"
}
]
},
"app_promotion_type": "INSTALLS",
"impression_tracking_url": [
"https://test.com/impression?id=123456",
"https://test.com/impression?id=123456"
]
}
}
],
"seat": "4372:2283:725828"
}
],
"bidid": "Z8aZJEk4-r2e3z85n-je52-q0E586r76K4T"
}
OpenRTB プロトコル バッファ
例を表示
id: "m7T91l3qg177P4b39N26W1"
seatbid {
bid {
id: "5viGQ43x3HI44d22DW3"
impid: "1"
price: 0.040404
adid: "test_creative_id_566440"
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"
cid: "67427969102"
crid: "test_creative_id_566440"
cat: "IAB3"
cat: "IAB13"
w: 320
h: 50
burl: "https://test.com/imp?id=123456"
[com.google.doubleclick.bid] {
billing_id: 67427969102
}
}
seat: "1912:1424:626226"
group: false
}
bidid: "38508qU5-957YGflD-M2rg-7B19HjXU00n2"
cur: "USD"
アプリ インタースティシャル
Google
例を表示
ad {
html_snippet: "<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>"
adslot {
id: 1
max_cpm_micros: 1079285
billing_id: 37034094959
currency: "TWD"
}
click_through_url: "google.com"
attribute: 105
attribute: 47
category: 7
buyer_creative_id: "test_creative_id_903208"
advertiser_name: "Google"
width: 398
height: 744
impression_tracking_url: "https://test.com/imp?id=123456"
impression_tracking_url: "https://test.com/imp?id=123456"
event_notification_token: "token"
skadn {
version: "4.0"
network: "41dEOEaD"
itunesitem: "151251861"
sourceapp: "500811620"
fidelities {
fidelity_type: VIEW_THROUGH_ADS
nonce: "0c9020f9-14c4-4dcd-8944-23ab140556a8"
timestamp: 1714094838257
signature: "p1f6bi578Q0jX163o5ws6n630p142H1v75rziXPtoak952g0Be18230732OkYu7epL9elCJ25078L09G5Mi6u7s7MyO2j5sI"
}
fidelities {
fidelity_type: STOREKIT_RENDERED_ADS
nonce: "0c9020f9-14c4-4dcd-8944-23ab140556a8"
timestamp: 1714094838257
signature: "JFtn495ab0EX97ci69Ru9c39ot9TWn5T0052F4439Y2a9u7zN2do7Q9AH4N584irpJmS8K877980K14iQgO74I33vgx231Cf"
}
skadn_options {
always_open_appstore: true
}
source_identifier: 72
}
}
processing_time_ms: 70
OpenRTB JSON
例を表示
{
"id": "BQig8glrLj2K7p818w3s0S",
"seatbid": [
{
"bid": [
{
"id": "v0x1j4q0B388Z5lv600",
"impid": "1",
"price": 0.25109,
"adid": "test_creative_id_654733",
"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"
],
"cid": "73848702501",
"crid": "test_creative_id_654733",
"w": 428,
"h": 846,
"ext": {
"skadn": {
"version": "4.0",
"network": "43D4r5x9",
"sourceidentifier": "6217",
"itunesitem": "950280085",
"sourceapp": "com.google.testapp",
"fidelities": [
{
"fidelity": 0,
"nonce": "0d223af6-1847-43aa-9f4f-963de4468b68",
"signature": "8fZn83e3d0742gU7E8Ra7Vif4v1vK61X899f7G7q9Dl998035Gq81Zd4r3032814bQ03HP49709yf38n6U35YY29D0w2Ac5B",
"timestamp": "1714058970102"
},
{
"fidelity": 1,
"nonce": "0d223af6-1847-43aa-9f4f-963de4468b68",
"signature": "zs0k0e335UoH9M6mp1V228I8JAl2526LCKF0dc2l8x7o4270lsQ37B12Cf91a770RcNqSG7Kl667xsw97Eo4nA23o41h3c0H",
"timestamp": "1714058970102"
}
]
},
"app_promotion_type": "INSTALLS",
"impression_tracking_url": [
"https://test.com/impression?id=123456",
"https://test.com/impression?id=123456"
]
}
}
],
"seat": "9150:1636:894279"
}
],
"bidid": "taiup4HY-42ggR62I-120u-3kyZ4831M9Yt"
}
OpenRTB プロトコル バッファ
例を表示
id: "wqZn032336g5U2Saroj8Lc"
seatbid {
bid {
id: "mTD7EYxAyF6n763v7pJ"
impid: "1"
price: 0.033932000398635864
adid: "test_creative_id_237493"
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"
adomain: "google.com"
cid: "42834631855"
crid: "test_creative_id_237493"
cat: "IAB2-18"
cat: "IAB20"
w: 360
h: 711
burl: "https://test.com/imp?id=123456"
[com.google.doubleclick.bid] {
impression_tracking_url: "https://test.com/impression?id=123456"
attribute: 8
event_notification_token {
payload: "token"
}
billing_id: 42834631855
}
}
}
bidid: "62i6224k-ada8764U-y4Fi-2z760VkR3s35"
cur: "USD"
アプリ インタースティシャル動画
Google
例を表示
ad {
adslot {
id: 1
max_cpm_micros: 5037989
billing_id: 82632801525
currency: "TWD"
}
click_through_url: "google.com"
attribute: 47
category: 7
buyer_creative_id: "test_creative_id_497252"
advertiser_name: "Google"
width: 720
height: 1280
video_vast_xml: "OMITTED_VAST_XML"
event_notification_token: "token"
advertised_app_id: "APP_ID_OMITTED"
app_promotion_type: INSTALLS
}
processing_time_ms: 70
OpenRTB プロトコル バッファ
例を表示
id: "cRPF1960K8WH788KM8ZT5k"
seatbid {
bid {
id: "99862J52T2r9f8n6hzY"
impid: "1"
price: 0.2873480215418293
adid: "test_creative_id_958969"
adm: "https://video.test.com/ads?id=123456&wprice=%%WINNING_PRICE%%"
adomain: "google.com"
cid: "80831705186"
crid: "test_creative_id_958969"
w: 480
h: 854
}
seat: "5731:4728:218110"
}
bidid: "dR2wx766-444e907U-Xpv0-634m58Wa5V73"
cur: "USD"
アプリ ネイティブ
Google
例を表示
ad {
adslot {
id: 1
max_cpm_micros: 1581987
billing_id: 32132054378
}
click_through_url: "google.com"
attribute: 47
attribute: 8
buyer_creative_id: "test_creative_id_285893"
advertiser_name: "Google"
native_ad {
headline: "Luxury Mars Cruises"
body: "Visit the planet in a luxury spaceship."
call_to_action: "Book today"
advertiser: "Galactic Luxury Cruises"
image {
url: "https://native.test.com/image?id=123456"
width: 800
height: 800
}
logo {
url: "https://native.test.com/logo?id=123456"
width: 200
height: 200
}
price: "\342\202\254106.40"
click_link_url: "https://www.google.com"
}
impression_tracking_url: "https://test.com/imp?id=123456"
impression_tracking_url: "https://test.com/imp?id=123456"
ad_choices_destination_url: "https://test.com/preferences"
event_notification_token: "token"
}
processing_time_ms: 20
OpenRTB JSON
例を表示
{
"id": "3u95d40fy46B0y3CEL73uy",
"seatbid": [
{
"bid": [
{
"id": "d501820Aa099K69Ia64",
"impid": "1",
"price": 1.63,
"burl": "https://test.com/imp?id=123456",
"adm": "{\"assets\": [{\"id\": 1, \"required\": 1, \"title\": {\"text\": \"Luxury Mars Cruises\"}}, {\"id\": 2, \"required\": 1, \"data\": {\"value\": \"Visit the planet in a luxury spaceship.\", \"label\": \"\"}}, {\"id\": 3, \"data\": {\"value\": \"Book today\", \"label\": \"\"}}, {\"id\": 4, \"required\": 1, \"data\": {\"value\": \"Galactic Luxury Cruises\", \"label\": \"\"}}, {\"id\": 5, \"required\": 1, \"img\": {\"url\": \"https://native.test.com/image?id=123456\", \"h\": 628, \"w\": 1200}}, {\"id\": 6, \"img\": {\"url\": \"https://native.test.com/logo?id=123456\", \"h\": 640, \"w\": 640}}], \"link\": {\"url\": \"https://www.google.com\", \"clicktrackers\": [\"https://native.test.com/click?id=123456\"]}, \"imptrackers\": [\"https://test.com/impression?id=123456&amt=${AUCTION_PRICE}\"], \"privacy\": \"\"}",
"adid": "test_creative_id_237765",
"adomain": [
"google.com"
],
"cid": "30567639040",
"crid": "test_creative_id_237765",
"cat": [
"IAB8"
],
"ext": {
"skadn": {
"version": "3.0",
"network": "345vh5bv",
"campaign": "62744790",
"itunesitem": "608550422",
"sourceapp": "com.google.testapp",
"fidelities": [
{
"fidelity": 0,
"nonce": "88db095e-1022-48bb-ad38-54a1075886aa",
"timestamp": "1714430552729",
"signature": "4063Vhn5W7oGEcJ202oj6k990Y3H7f9sJ6luK3O65RbQ3S9kp45VK84le4a424c6SU79384DTdXS1cHWcxl9SB98563Y38K9"
},
{
"fidelity": 1,
"nonce": "88db095e-1022-48bb-ad38-54a1075886aa",
"timestamp": "1714430552729",
"signature": "r1852LY7j0f25q2s868j1Ub7r07S16e607BC5909O272F8i528732r22W7D138t3706205Ez139N73Iho3vJKp257Pp4vmet"
}
]
},
"app_promotion_type": 1,
"event_notification_token": {
"payload": "token"
}
}
}
],
"seat": "3512:7802:295531"
}
],
"cur": "USD"
}
OpenRTB プロトコル バッファ
例を表示
id: "P3mh232944yQx803R73ayZ"
seatbid {
bid {
id: "79B1S3h454910R471JL"
impid: "1"
price: 0.044748470187187195
adomain: "google.com"
cid: "52078759229"
crid: "test_creative_id_537521"
cat: "IAB20"
burl: "https://test.com/imp?id=123456"
adm_native {
ver: "1.2"
assets {
id: 1
required: true
title {
text: "Luxury Mars Cruises"
}
}
assets {
id: 5
required: true
img {
url: "https://native.test.com/image?id=123456"
w: 1200
h: 627
type: MAIN
}
}
assets {
id: 6
required: false
img {
url: "https://native.test.com/logo?id=123456"
w: 100
h: 100
type: LOGO
}
}
assets {
id: 2
required: true
data {
value: "Visit the planet in a luxury spaceship."
type: DESC
}
}
assets {
id: 3
required: false
data {
value: "Book today"
type: CTATEXT
}
}
assets {
id: 4
required: true
data {
value: "Galactic Luxury Cruises"
type: SPONSORED
}
}
link {
url: "https://www.google.com"
clicktrackers: "https://native.test.com/click?id=123456"
}
eventtrackers {
event: IMPRESSION
method: IMG
url: "https://test.com/event?id=123456"
}
}
[com.google.doubleclick.bid] {
event_notification_token {
payload: "token"
}
billing_id: 52078759229
}
}
seat: "2237:7356:617887"
}
cur: "USD"
ウェブ動画
Google
例を表示
ad {
adslot {
id: 1
max_cpm_micros: 16000000
billing_id: 34223090460
deal_id: 17775265
}
click_through_url: "google.com"
attribute: 47
attribute: 8
video_url: "https://video.test.com/ads?id=123456&wprice=%%WINNING_PRICE%%"
buyer_creative_id: "test_creative_id_551392"
advertiser_name: "Google"
event_notification_token: "token"
}
processing_time_ms: 7
エクスチェンジ入札者向けのモバイルウェブバナー
OpenRTB プロトコル バッファ
例を表示
id: "878w58e050dSf05LS9l424"
seatbid {
bid {
id: "478u6K990C990n7FPTX"
impid: "1"
price: 0.03
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"
cid: "46483683815"
crid: "test_creative_id_527097"
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: 46483683815
}
}
seat: "6954:3639:781296"
}
bidid: "7a2CAWgt-IKR8mp06-0E3d-TPNq4zO9l767"
[com.google.doubleclick.bid_response] {
processing_time_ms: 120
}