入札レスポンス
サイズ
入札レスポンスの最大サイズは4KBです。
入札なし
入札なしのレスポンスを返すには、204のステータスコードで空のレスポンスを渡します。
獲得/損失/請求通知
AppLovin RTBは、リクエストのnurl
、lurl
、burl
のフィールドに、リクエスト者が提供する獲得、損失、請求通知のURLをそれぞれ呼び出します。
AppLovin RTBは、オークションが完了し、AppLovinがデバイスに広告を送信すると、獲得URLを呼び出します。また、オークション中に関連広告が適切にロードされなかった場合や、競り勝った別の広告がロードされた後に、損失URLを呼び出します。
デバイスが動画広告の再生を開始した時や、デバイスが広告の画像を表示した時に、請求URLを呼び出します。
リクエスト者は、これらの通知URLの仕様にマクロを埋め込むことができます。 AppLovin RTBでは、URLをリクエストする前に、URL内のマクロを適切な値に置き換えます。 以下は、リクエスト者がURLに埋め込むことができるマクロの一覧です。
これらのマクロは大文字と小文字を区別しますが、すべて大文字で指定します。
これらのマクロを${…}
の形式で記載します(例:${AUCTION_ID}
)。
マクロ | 説明 |
---|---|
AUCTION_BID_ID | BidResponse.bidid アトリビュートからの入札のID。 |
AUCTION_ID | BidRequest.id アトリビュートからの入札リクエストのID |
AUCTION_LOSS | OpenRTB Specification 2.5のセクション5.25の表にある、損失理由のコード。lurl でのみ送信されます。 |
AUCTION_MINIMUM_BID_TO_WIN | 2番目に高い入札価格。これはnurl で送信されますが、lurl を経由して送信される場合もあります。lurl インスタンスは無視されます。入札が獲得した入札1つだけの場合、渡される値は0 です。 |
AUCTION_PRICE | オークションクリアリング価格。入札と同じ通貨とユニットを使用します。小数点以下を6桁まで指定できます。 |
マクロを含む獲得入札URLの例
https://example.com/endpoint/auction=${AUCTION_ID}&price=${AUCTION_PRICE}
広告マークアップの標準
DSPビッダーは、入札レスポンスに広告マークアップを含める必要があります。 AppLovin RTBは、獲得通知に応じて広告マークアップを返すことをサポートしていません。
広告マークアップは、AppLovin RTBの広告マークアップ基準に準拠する必要があります。 AppLovin RTBサーバーは入札を受信すると、すぐに広告マークアップのコンプライアンスを確認します。 次に、広告マークアップで以下のサニティーチェックを行います。
- 広告マークアップは適切にエスケープされている。
- 広告マークアップは、VAST広告を除いてURLエンコードされている。
- 広告マークアップのHTMLはスニペットである。
- リッチメディア広告で入札する場合は、ノードのコンテンツを
CDATA
構成に配置します。XMLのCDATA
の場合、エンコードは一切必要ありません。 ただし、JSONコンテキストでXMLドキュメントを渡す場合は、JSONの構文とエスケープルールを以下のように適用する必要があります。- 二重引用符はすべて
\"
でエスケープされます。 - アポストロフィはエスケープされません。
- XMLドキュメントからは、すべてのタブ文字と改行文字が削除されます。以下のVAST広告マークアップの例は、読みやすいフォーマットにされています。 実際の広告マークアップには、余分な空白を含めないでください。
- 二重引用符はすべて
広告キャンペーンのスニペットが有効なJSONコンテンツであることをCDATA
とともに確認するには、オンラインのJSONLint検証ツールでスニペットを確認します。
すべてのクリエイティブはSDKを介して表示されるため、広告マークアップをSDKビッダーに渡す必要はありません。
SDKビッダーは、admarkup
フィールドを使用してカスタムデータを渡すことが可能です。このデータは、アダプターを介してロード時にSDKに返すように設定できます。
入札レスポンスのコンポーネント
入札レスポンスには3つのコンポーネントがあります。
bidresponse
- トップレベルオブジェクト
seatbid
- 特定のシートに代わってビッダーが作成した入札の集合
bid
- 特定のビジネス条件下での特定のインプレッション購入オファー
入札レスポンスオブジェクト
アトリビュート | タイプ | 説明 | 必要 |
---|---|---|---|
bidid | 文字列 | ログ/トラッキングを支援する、ビッダーによって生成されたレスポンスID。 | いいえ |
cur | 文字列 | 現在はデフォルトの"USD" のみが使用可能。 | いいえ |
id | 文字列 | レスポンスとなる入札リクエストのID。bidrequest.id と一致する必要があります。 | はい |
nbr | 整数 | 入札しない理由。OpenRTB Specification 2.5のセクション5.24の表を参照してください。 | 推奨 |
seatbid | オブジェクト配列 | seatbidオブジェクトの配列。1つの入札に対し、1つ以上が必要です。 | はい |
seatbidオブジェクト
アトリビュート | タイプ | 説明 | 必要 |
---|---|---|---|
bid | オブジェクト配列 | 入札オブジェクトの配列。1つの入札に対し、1つ以上が必要です。 | はい |
seat | 文字列 | この入札を代理で行うビッダーシートのID。入札レスポンスには、複数の「シート」からの複数の入札、または同じ「シート」からの複数の入札が含まれる場合があります。最大40文字の英数字である必要があります。8文字以上が推奨されます。現在サポートされていません。 | いいえ |
入札オブジェクト
アトリビュート | 説明 | 必要 |
---|---|---|
adid (文字列) | 入札が成功した場合に配信されるプリロード広告のID。 | いいえ |
adm (文字列) | 入札が成功した場合の広告マークアップを伝える主な手段。獲得通知にもマークアップが含まれている場合は、獲得通知に優先します。代用マクロが含まれる場合があります。サポート対象のマクロを参照してください。ネイティブ広告フォーマットでは adm_native がサポートされます。 | はい |
adomain (整数配列) | 広告主ドメイン名の配列。AppLovin RTBは、配列の最初のドメインのみを使用します。広告主ドメインは、完全なランディングページURLではなく、広告主ランディングページのトップレベルドメイン名と一致させる必要があります。App Storeランディングページのadomain は、完全なアプリストアURLではなく、アプリ所有者のトップレベルのドメイン名と一致させる必要があります。adomain の値には、「http:// 」、「https:// 」、または「/ 」(スラッシュ)を含めることはできません。例:yourapp.com (yourapp.com/something およびhttps://yourapp.com は不可)。 | はい |
api (整数) | OpenRTB Specification 2.5のセクション5.6の表を参照してください。 | いいえ |
apis (整数配列) | このインプレッションでサポートされるAPIフレームワークの一覧。次のいずれか1つ:
| |
attr (整数配列) | 該当する場合は必須。クリエイティブアトリビュート。このリストから取得した値の配列:
| 推奨 |
bundle (文字列) | 広告主のアプリケーションのiTunes IDまたはAndroidのパッケージ名。アプリケーションインストールを促す広告でない場合、このフィールドは空白のままにしてください。パブリッシャーのダウンロードバンドルを渡さないと、AppLovin RTBはレスポンスを拒否します。例:Androidではcom.example.app 、iOSでは628677149 。 | ext.skadn がある場合は必須だが、それ以外の場合でも推奨 |
burl (文字列) | 獲得した入札が請求可能になったときにエクスチェンジが呼び出す請求通知URL。DSPは、インプレッションと支出のトラッキングにburl を使用する必要があります。AppLovinは、burl がトラッキングに使用された場合にのみ、不一致に関する調査を行います。 | はい |
cat (整数配列) | クリエイティブのIABコンテンツカテゴリー。OpenRTB Specification 2.5のセクション5.1を参照してください。 | はい |
cid (文字列) | 広告品質チェックを支援するためのキャンペーンID。iurl で表されるクリエイティブの集合です。 | 推奨 |
crid (文字列) | キャンペーンのクリエイティブを一意に識別します。同じクリエイティブが新しいインプレッションに表示されるという理由だけで、新しいクリエイティブIDを割り当てないでください。 | はい |
dealid (文字列) | この入札がインベントリパッケージに関連している場合、入札リクエストのdeal.id を参照します。インベントリパッケージに対する入札でない限り、これを渡さないでください。 | インベントリパッケージには必要 |
ext (オブジェクト) | OpenRTBへのビッダー固有の拡張機能のプレースホルダー。 | いいえ |
ext.crtype (文字列) | このフィールドでは、配信する広告のタイプを説明します。有効な値:
crtype を1つだけ購入した場合にcrtype をハードコーディングします。ご希望の場合は、AppLovinアカウントマネージャーまでお問い合わせください。bid.crtype でcrtype を渡すこともサポートされています。 | 推奨 |
ext.clicktrackers (整数配列) | AppLovinがクリックイベントを記録する際、継続してトラッキングされるクリックトラッキングURL(ファーストパーティおよびサードパーティ)。ネイティブに適用されません。 | HTML広告とSKAD(SKAdNetwork)を運用している場合 |
ext.duration (整数) | 動画の長さ(秒単位)。 | CTVインベントリの場合 |
ext.imptrackers (整数配列) | サードパーティーのトラッキングに使用するインプレッショントラッキングURLネイティブに適用されません。ネイティブオブジェクトeventtrackers を参照してください。 | いいえ |
ext.skadn (オブジェクト) | AppleのSKAdNetworkアトリビューションAPIをloadProduct() 経由でサポートするために必要なパラメーター。 | いいえ |
ext.skadn.campaign (文字列) | キャンペーンID(2.0~3.0)またはソースID(4.0以降)。SKAdNetworkバージョン2.0~3.0の場合は1~100、バージョン4.0以降の場合は0〜9999の範囲の整数を文字列で指定します。 | ext.skadn がある場合 |
ext.skadn.fidelities[] (オブジェクト配列) | SKAdNetwork v2.2で導入された複数のfidelity-typeをサポートします。 | ext.skadn がある場合 |
….fidelities[«n»].fidelity (整数) | トラッキングするアトリビューションのfidelity-type。 | ext.skadn がある場合 |
….fidelities[«n»].nonce (文字列) | 各広告レスポンスに固有のID。適切なUUIDフォーマットの要件については、Appleのドキュメントを参照してください。 | ext.skadn がある場合 |
….fidelities[«n»].signature (文字列) | Appleによって指定されたSKAdNetworkシグネチャー。 | ext.skadn がある場合 |
….fidelities[«n»].timestamp (文字列) | signature 利用時に使用されるUnix時間(ミリ秒単位)の文字列。 | ext.skadn がある場合 |
ext.skadn.itunesitem (文字列) | AppleのApp Storeにある広告主のアプリのID。BidResponse.seatbid.bid.bundle に一致する必要があります。 | ext.skadn がある場合 |
ext.skadn.network (文字列) | シグネチャーに使用されるアドネットワークの識別子。リクエストのskadnetids 配列のいずれかの項目に一致する必要があります。 | ext.skadn がある場合 |
ext.skadn.nonce (文字列) | 各広告レスポンスに固有のID。適切なUUIDフォーマットの要件については、Appleのドキュメントを参照してください。**注:**SKAdNetwork v2.2のリリースに伴い、このフィールドは廃止され、複数のfidelity-typeをサポートするext.skadn.fidelities[«n»].nonce がこれに代わります。 | ext.skadn がある場合 |
ext.skadn.productpage (文字列) | カスタムの製品ページID。 | いいえ |
ext.skadn.signature (文字列) | Appleによって指定されたSKAdNetworkシグネチャー。注**SKAdNetwork 2.2のリリースに伴い、このフィールドは廃止され、複数のfidelity-typeをサポートするext.skadn.fidelities[«n»].signature が優先されます。 | ext.skadn がある場合 |
ext.skadn.skoverlay (オブジェクト) | 潜在的なSKOverlayを制御するパラメーター。オーバーレイは、動画の開始後、コンパニオン広告がレンダリングされた場合、またはユーザーがオーバーレイを解除したが広告が開いたままの場合にトリガーされます(遅延あり。0 を指定する場合は遅延なし)。**注:**Appleはクリックコールバックを提供しないため、AppLovinはSKOverlayのクリックを計測しません。 | いいえ |
….skoverlay.position (整数) | オーバーレイの位置。0 =「bottom」、1 =「bottomRaised」。デフォルトは0 です。 | いいえ |
….skoverlay.dismissable (整数) | ユーザーがオーバーレイを解除できるかどうか。1 は解除でき、0 は画面上に固定されます。デフォルトは1 です。 | いいえ |
….skoverlay.video_delay (整数) | 動画のオーバーレイ表示を開始した後の経過時間(秒単位)。動画の開始時にトリガーしないようにするには、これを-1 に設定します。 | ext.skadn.skoverlay がある場合 |
….skoverlay.companion_delay (整数) | コンパニオン広告がレンダリングされてからオーバーレイが表示されるまでの時間(秒単位)。コンパニオン広告のレンダリング時にトリガーしないようにするには、これを-1 に設定します。 | ext.skadn.skoverlay がある場合 |
….skoverlay.sk_dismiss_delay (整数) | 表示されたStoreKitの画面が閉じてからオーバーレイが表示されるまでの時間(秒単位)。StoreKitの解除時にトリガーしないようにするには、これを-1 に設定します。 | ext.skadn.skoverlay がある場合 |
ext.skadn.sourceapp (文字列) | パブリッシャーのアプリがAppleのApp Storeに登録されている際のアプリID。BidRequest.imp.ext.skad.sourceapp と一致している必要があります。 | ext.skadn がある場合 |
ext.skadn.timestamp (文字列) | signature 利用時に使用されるUnix時間(ミリ秒単位)の文字列。**注:**SKAdNetwork 2.2のリリースに伴い、このフィールドは廃止され、複数のfidelity-typeをサポートするext.skadn.fidelities[«n»].timestamp がこれに代わります。 | ext.skadn がある場合 |
ext.skadn.version (文字列) | 使用するSKAdNetworkのバージョン。2.0以降である必要があります。 | ext.skadn がある場合 |
ext.vendor (整数配列) | 表示された広告のビューアビリティーを計測するビューアビリティーベンダーの名前。インプレッションのビューアビリティー計測を収集する場合は、入札レスポンスでビューアビリティーベンダーのみを宣言してください。Integral Ad Science(IAS)は"ias" に、Moatは"moat" に設定してください。ビューアビリティーの表示キャンペーンを返した場合、バイヤーは入札レスポンスでベンダーに応答する必要があります。Open Measurementのビューアビリティには適用されません。 | ビューアビリティーを計測するキャンペーン向け |
h (整数) | 画像密度に依存しないクリエイティブの高さ(ピクセル単位)。 | 推奨 |
id (文字列) | ビッダーが生成する入札IDは、ログの記録とトラッキングをサポートします。 | はい |
impid (文字列) | 関連する入札リクエストのインプレッションオブジェクトのID。 | はい |
lurl (文字列) | 入札に成功しなかった場合にエクスチェンジが呼び出す損失通知URL。代用マクロが含まれる場合があります。サポート対象のマクロを参照してください。 | いいえ |
nurl (文字列) | 入札でインプレッションの機会を獲得した場合に、エクスチェンジによって呼び出される獲得通知URL。 | 推奨 |
price (浮動小数点数) | 入札価格はCPMで表されますが、実際のトランザクションはユニットのインプレッションのみです。注:タイプは浮動小数点数ですが、通貨を扱う場合は整数演算を強く推奨します。(例:JavaではBigDecimal )。 | はい |
protocol (整数) | 該当する場合、マークアップの動画レスポンスプロトコル。詳細は、OpenRTB Specification 2.5のセクション5.8の表を参照してください。 | いいえ |
w (整数) | 画像密度に依存しないクリエイティブの幅(ピクセル単位)。 | 推奨 |
トラッキングフィールド
次の表は、デマンドサイドプラットフォームで利用可能なトラッキングフィールドとその推奨される用途を示しています。
bidresponse.bid. トラッカー | メソッド | 推奨される用途 |
---|---|---|
.adm |
|
|
.adm.native.eventtrackers | クライアント側で実行 |
img とjs のタグは、Open RTB Dynamic Native Ads API Specification v1.2のセクション7.7「Event Tracking Methods」の表で定義されているようにサポートされます。DSPには、native.eventtrackers の使用が推奨されます。native.imptrackers やnative.jstracker フィールドはIABによって非推奨となる予定であり、代わりにeventtrackers が推奨されているためです。 |
.adm.native.imptrackers | クライアント側で実行(廃止され、eventtrackers がこれに代わる) | 無効なトラフィック(IVT)の計測 |
.adm.native.jstracker | クライアント側で実行(廃止され、eventtrackers がこれに代わる) | Open Measurement SDK(OMSDK) |
.adm.native.link.clicktrackers | クライアント側で実行 | クリック計測(オプション) |
.burl | サーバー側で発生。X-Device-IP とX-Device-User-Agent は、サーバー間コールバックでヘッダーとして送信されます。
| バイヤー(DSP)のインプレッションおよび広告費用のトラッキング |
.ext.imptrackers | サーバー側で発生。X-Device-IP とX-Device-User-Agent は、サーバー間コールバックでヘッダーとして送信されます。
| パートナーによるインプレッション計測 |
入札レスポンスの例
{ "id": "5e1eb292d6b7ea9cf3da74ddb385996a62d3a6e9", "seatbid": [ { "bid": [ { "id": "8JxH4DHN4KMF21Vd", "impid": "1", "price": 15, "adid": "1093919", "adm": "<a href=\"https://click.url/click/8JxH4DHN4KMF21Vd?uid=05D02DC6-0132-4C2C-A879-79BB026BE3F8&partner=applovin&ts=2018-07-09T18-19-01Z&ad=1093919\"><img src=\"https://assets.dsp.io/ad_assets/files/320x50.png\" height=\"50\" width=\"320\" alt=\"\"/></a>", "adomain": [ "advertiser.com" ], "bundle": "123123123", "iurl": "https://assets.dsp.io/ad_assets/files/320x50.png", "cid": "12345", "crid": "crid123", "cat": [ "IAB22-2" ], "h": 50, "w": 320, "ext": { "crtype": "HTML", "imptrackers": [ "https://example.dsp.events/win/8JxH4DHN4KMF21Vd?ts=2018-07-09T18-19-01Z&ad=1093919&uid=05D02DC6-0132-4C2C-A879-79BB026BE3F8&auction=${AUCTION_ID}&price=${AUCTION_PRICE}&partner=applovin" ] } } ] } ], "bidid": "8JxH4DHN4KMF21Vd", "cur": "USD"}
ネイティブ広告レスポンスの例
{ "bidid":"9aa2a2950894c95b9b02476a5ba5438dc6de8dc1", "cur":"USD", "id":"65de6af36e6fb32778afa94a996ec4c2b514145d", "seatbid":[ { "bid":[ { "adm":"{\"native\":{\"assets\":[{\"id\":100,\"title\":{\"text\":\"Test Ad\"}},{\"id\":200},{\"id\":300,\"img\":{\"h\":null,\"url\":\"https://assets.com/main_image.png_\",\"w\":null}},{\"id\":310,\"img\":{\"h\":80,\"url\":\"https://assets.com/icon_image.png\",\"w\":80}},{\"data\":{\"value\":\"Test Ad Subline\"},\"id\":420},{\"data\":{\"value\":\"Continue\"},\"id\":430},{\"data\":{\"value\":\"4.5\"},\"id\":410}],\"imptrackers\":[\"https://adserver.com/impression_tracker\"],\"link\":{\"url\":\"https://adserver.com/click_destination\"}}}\n", "adomain":[ "somegame.com" ], "bundle":"com.game.example", "cat":[ "IAB1" ], "crid":"74650.0!3ILDTypkALKe8xfw2WJLmxfNOftiOg2u3yeGIKEULAU*", "ext": { "crtype":"native" }, "id": "1", "impid": "1", "iurl": "https://assets.com/preview.png", "price": 1.0 } ], "seat":"A00000001" } ]}