入札レスポンス
デマンドパートナーがオークションと広告配信の要件を満たす有効なレスポンスを構造体できるようにヘルプします。
読み終わるまでの所要時間 37 分最終更新 7日前
Unity は、入札反応データの JSON 形式をサポートしています。標準 JSON 表現の MIME タイプは で、 ヘッダーフィールドで次のように指定します。
application/jsonHTTPcontentType: application/json
アプリケーションは、専用エンドポイントへの入札リクエストを受信した後、最大 200 ミリ秒以内に入札反応を返すか、入札なしを示す必要があります。Unity はリクエストで承諾エンコード GZIP 圧縮を送信します。推奨されるベストプラクティスは、反応を圧縮することです。詳細については、OpenRTB 仕様のセクション 2.4 を参照してください。
反応オブジェクトとその属性については、次のセクションで説明します。Description (説明) フィールドは、必須の属性を示します。推奨されるベストプラクティスは、すべての属性を含めることです。
反応オブジェクト
入札リクエストに対する入札者の反応を示すオブジェクト クラス。
Attribute | 型 | 例 | 説明 |
|---|---|---|---|
| string | | Unity が生成した ID。入札リクエストとともに渡され、入札反応とともに返されます。 |
| string | | ISO 通貨コードを使用した通貨タイプUnity は米ドル ( |
| string | | 入札者が生成する反応 ID。ロギングと追跡に役立ちます。 |
| int | | 入札を拒否した理由。サポートされている値の完全なリストについては、OpenRTB API ガイド の 表 5.24 を参照してください。入札への回答なしのセクションも参照してください。 |
| object array | 詳細は、 | Unity Exchange では、1 つの反応に複数の |
seatbid オブジェクト
パートナーが複数のアカウントを代理して入札できるようにする オブジェクト配列を含むオブジェクト クラス。
bidAttribute | 型 | 例 | 説明 |
|---|---|---|---|
| object array | 詳細については、 | 1 つ以上の入札。複数の入札を行う場合は、オークション落札の可能性を最大限に高めるために、最も高いオファーを含めます。 |
| string | | 購入者シート、または入札を行う広告主または代理店の ID。 |
bid objects
購入者の入札に関する情報を含むオブジェクトクラス。
Attribute | 型 | 例 | 説明 |
|---|---|---|---|
| string | | 入札者が生成する入札 ID。ログ記録とトラッキングに役立ちます。 |
| string | | この入札に関連付けられているインプレッションの ID。この値は、入札リクエストで指定されたインプレッション ID と一致します。 |
| float | | 入札価格(インプレッション 1000 回あたりの単価、CPM)。Unity Exchange では、ゼロ以下の値や暗号化された値は無視されます。 |
| string | | 落札した場合に配信される、プリロードされた広告の入札者生成 ID。 |
| string | | 広告がユーザーにレンダリングされるときに Unity が ping する獲得通知 URL。この属性は、課金対象のインプレッションカウンターとしても機能します。 |
| string | | 落札者に課金が発生するときに Unity Exchange によって呼び出される課金通知 URL。これは取引所固有のビジネスポリシーに基づいています。置換マクロを含めることができます。 |
| string | | キャンペーンのコンテンツを表す画像へのキャッシュ バーストなしのURL(広告品質と安全性のチェック用)。 |
| string | | 入札者が生成するキャンペーン ID。広告品質チェックに役立ちます。 |
| string | | 広告の品質チェックを支援するためにパートナーから提供されるクリエイティブ ID。 |
| string | | 直接取引の一意の識別子(該当する場合)。 |
| string array | | クリエイティブに適用される IAB コンテンツカテゴリ。サポートされている値の完全なリストは、OpenRTB API ガイド の表 5.1 を参照してください。 |
| string | その他の例については、入札レスポンスの例 を参照してください。 | 入札が落札された場合に広告マークアップを伝える手段。 |
| string 配列 | 正解:
不正解:
| ブロック リスト チェックの広告主ドメイン。クリエイティブはローテーションできず、1 つのドメインのみが許可されます。形式はルートドメインのみで、プロトコルは指定しないでください("www" でない場合はサブドメインを含めることができます)。 |
| string | Google の例:
Apple の例:
| プラットフォーム固有のアプリケーション識別子(Apple App Store または Google 再生のストア ID)。宣伝対象のアプリケーションに一意のもので、エクスチェンジとは無関係です。この特徴は広告品質にも使用できます。 |
| int 配列 | | クリエイティブを説明する属性の配列。サポートされている値の完全なリストは、OpenRTB API ガイド の表 5.3 を参照してください。 |
| int | | デバイス非依存ピクセル(DIPS)でのクリエイティブの幅。 |
| int | | クリエイティブの高ささ (デバイス非依存ピクセル、DIPS)。 |
| int | | このインプレッションでサポートされる API フレームワーク。値 は、Open Measurement (OM) のサポートを |
bid.ext objects
bidAttribute | 型 | 例 | 説明 |
|---|---|---|---|
| string | | 宣伝対象のアプリケーションのアプリストア ID (該当する場合)。アプリストア ID の確認方法の詳細については、Unity Ads 収益化ダッシュボードのドキュメント ストア ID を参照してください。 |
| string | | 宣伝対象のアプリケーション名(該当する場合)。 |
| string | | 宣伝対象のアプリケーションのアプリストア URL(該当する場合)。 |
| string array |
| Unity が課金対象のインプレッションイベントを記録するときに一貫しサードパーテ。入札 |
| int | | ビデオの長さ(秒)(該当する場合)。 |
| string | | 広告アセットのクリエイティブタイプ。以下のタイプが有効です。
|
| 整数 | | SKOverlay を表示するかどうかを示します。
|
| 整数 | | SKOverlay の位置を示します。
|
| 整数 | | ユーザーがSKOverlayを削除できるかどうかを示します。
|
| 整数 | | SKOverlay が表示されるまでの遅延時間を秒単位で示します。0 は即時を意味します。
|
| String | | 詳細については、Apple の 複数のプロダクトページバージョンの設定 を参照してください。 |
| 整数 | | 自動 Storekit の異なるバージョンを示します。
|
| 整数 | | クリック可能な動画体験を有効にするかどうかを指定します。
|
入札レスポンスの例
Playable 反応
{ "id": "7jrUifdKuw3HDIR9dbqDVJ", "seatbid": [{ "bid": [{ "id": "1234567890123456789", "impid":"1", "price":0.78, "adid":"12345678", "nurl": "https://secure-datacenter.dsp.com/ab?e=wqT_3FL5gUgASotCQAAAQZjkxNjQ.\\u0026referrer=play.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.any.game\\u0026pp=${AUCTION_PRICE}\\u0026label=nurl", "burl": "https://secure-datacenter.dsp.com/ab?e=wqT_3FL5gUgASotCQAAAQZjkxNjQ.\\u0026referrer=play.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.any.game\\u0026pp=${AUCTION_PRICE}\\u0026pplabel=burl", "adm": "<img src=\"https://my.impression.com/custom/pixel?1234%3D\" style=\"ディスプレイ: none;\">\n <a href=\"https:/my.custom.click/event?&partner=myDSP\"><div style=\"position: fixed; top:0; left:0; width:100vw; 高さ:100vh; 背景位置: center; 背景画像: URL('https://ex_assets.com/ad_assets/files/000/897/403/original/.jpg?c=1595511733'); 背景サイズ: contain;\"> </Important>ript type=\"アプリケーション/JavaScript\"> bmTrackViewableChange=機能(e){mraid.addEventListener(\"viewableChange\",機能(){コンソール.log(\"空のviewableChange....イベント\")},e&bmSendImpression()},bmSubscribeViewableEvent=機能(){bmSendFill(),bmSubscribeClickEvent(),mraid.addEventListener(\"ready\",機能(){コンソール.log(\"空の準備完了イベント\")}),mraid.isViewable()?bmSendImpression():(mraid.addEventListener(\"viewableChange\",機能)(}),mraid.addEventListener(\"viewableChange\",機能), mbmSubscribeViewableEvent(), msubscribeViewableEvent=機能(){bmSendClickEvent(), mSubscribeViewer.addEvent=機能(), mmSendClickEvent(), msubscribeSubscribeViewableEvent(), msubscribeViewer.addEventListener(\"mClickEvent(), mbmSendEvent(), mSendEvent(), mAddEvent.AddEvent(), mmSendEvent(!); mraid.isViewable(), mraid.addEventListener(\"viewable\", msubscribeViewableEventListener\", mbmClickEvent(), msubscribeViewableEvent(!); mSendEvent(), mSendEvent(), mSendEvent.addEvent(), mraid.AddEvent(\");\n</script>", "adomain": ["viaplay.fi"], "bundle": "com.unityexample.game", "iurl": "https://secure-datacenter.dsp.com/cr?id=12345678", "cid":"1234", "crid":"12345678", "cat": ["IAB3-12"、"IAB3-8"、"IAB21-2"、"IAB10-9"、"IAB3"、"NEX3-101"、"IAB3-11"、"IAB3-10"、"NEX3-102"、"IAB3-5"、"IAB3-6"], "attr": [], "h":320, "w":480, "appcategory": ["Games"], "appsubcategory": ["Adventure", "Action"], "ext": { "appname":"サンプルゲーム", "storeurl": "https://play.google.com/store/apps/details?id=com.unityexample.game", "crtype":"PLAYABLE" } }], "seat":"1234" }], "bidid":"CHYr9b0ODI8OGLpedtfCpuCH", "cur":"USD",}
VAST response
{ "id": "7jrUifdKuw3HDIR9dbqDVJ", "bidid":"CHYr9b0ODI8OGLpedtfCpuCH", "cur":"USD", "seatbid": [{ "seat":"パートナーの例", "bid": [{ "impid":"1", "adomain": ["examplegame.com"], "iurl": "https://secure-datacenter.dsp.com/cr?id=12345678", "crid":"12345678", "cid":"1234", "adid":"87654321", "cat": ["IAB9-25", "IAB9-25"], "bundle": "com.unityexample.game", "attr": [], "h":568, "w":320, "id": "unrtb-com.unityexample.game-320x568-1ADJE5D8721B3-453S-9DYA-B0AVD69AA1A1", "price":15.04, "nurl": "https://secure-datacenter.dsp.com/ab?e=wqT_3FL5gUgASotCQAAAQZjkxNjQ.\\u0026referrer=play.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.any.game\\u0026pp=${AUCTION_PRICE}\\u0026label=nurl", "burl": "https://secure-datacenter.dsp.com/ab?e=wqT_3FL5gUgASotCQAAAQZjkxNjQ.\\u0026referrer=play.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.any.game\\u0026pp=${AUCTION_PRICE}\\u0026pplabel=burl", "adm": "<?xml version=\"1.0\"?><VAST version=\"2.0\"><Ad id=\"179e7ee9\"><InLine><AdSystem>yourdsp<![CDA</AdSystem><Error>TA[https://ads.yourdsp.com/ads/vast.php?appkey=unrtb-com.catchall.game-320x568&adid=179e7ee9&appid=1139609950&aid=1ABAE8D8-21B3-453D-9DEA-B9ABD69AA1A1&partnerkey=unrtb&campaignID=123184311&adgroupID=180968&ra=&code=err]]><!</Error><Impression>[CDATA[https://ads.yourdsp.com/ads/vast.php?appkey=unrtb-com.catchall.game-320x568&adid=179e7ee9&appid=1139609950&aid=1ABAE8D8-21B3-453D-9DEA-B9ABD69AA1A1&partnerkey=unrtb&campaignID=1234567890&adgroupID=180968&ra=&code=impression]]>00</Impression><Creatives><Creative AdID=\"179e7ee9\"><Linear><Duration>:00:15<![CDA</Duration><TrackingEvents><Tracking event=\"skip\">TA[https://ads.yourdsp.com/ads/vast.php?appkey=unrtb-com.catchall.game-320x568&adid=179e7ee9&appid=1139609950&aid=1ABAE8D8-21B3-453D-9DEA-B9ABD69AA1A1&partnerkey=unrtb&campaignID=123456789&adgroupID=180968&ra=&code=skip&s=]]><!</Tracking><Tracking event=\"engagedView\">[CDATA[https://ads.yourdsp.com/ads/vast.php?appkey=unrtb-com.catchall.game-320x568&adid=179e7ee9&appid=1139609950&aid=1ABAE8D8-21B3-453D-9DEA-B9ABD69AA1A1&partnerkey=unrtb&campaignID=123456789&adgroupID=180968&ra=&code=engagedView&s=]]><!</Tracking><Tracking event=\"creativeView\">[CDATA[https://ads.yourdsp.com/ads/vast.php?appkey=unrtb-com.catchall.game-320x568&adid=179e7ee9&appid=1139609950&aid=1ABAE8D8-21B3-453D-9DEA-B9ABD69AA1A1&partnerkey=unrtb&campaignID=123184311&adgroupID=180968&ra=&code=creativeView&s=]]><!</Tracking><Tracking event=\"start\">[CDATA[https://ads.yourdsp.com/ads/vast.php?appkey=unrtb-com.catchall.game-320x568&adid=179e7ee9&appid=1139609950&aid=1ABAE8D8-21B3-453D-9DEA-B9ABD69AA1A1&partnerkey=unrtb&campaignID=123184311&adgroupID=180968&ra=&code=start&s=]]><!</Tracking><Tracking event=\"firstQuartile\">[CDATA[https://ads.yourdsp.com/ads/vast.php?appkey=unrtb-com.catchall.game-320x568&adid=179e7ee9&appid=1139609950&aid=1ABAE8D8-21B3-453D-9DEA-B9ABD69AA1A1&partnerkey=unrtb&campaignID=123184311&adgroupID=180968&ra=&code=firstQuartile&s=]]><!</Tracking><Tracking event=\"midpoint\">[CDATA[https://ads.yourdsp.com/ads/vast.php?appkey=unrtb-com.catchall.game-320x568&adid=179e7ee9&appid=1139609950&aid=1ABAE8D8-21B3-453D-9DEA-B9ABD69AA1A1&partnerkey=unrtb&campaignID=123184311&adgroupID=180968&ra=&code=midpoint&s=]]><!</Tracking><Tracking event=\"thirdQuartile\">[CDATA[https://ads.yourdsp.com/ads/vast.php?appkey=unrtb-com.catchall.game-320x568&adid=179e7ee9&appid=1139609950&aid=1ABAE8D8-21B3-453D-9DEA-B9ABD69AA1A1&partnerkey=unrtb&campaignID=123184311&adgroupID=180968&ra=&code=thirdQuartile&s=]]><!</Tracking><Tracking event=\"complete\">[CDATA[https://ads.yourdsp.com/ads/vast.php?appkey=unrtb-com.catchall.game-320x568&adid=179e7ee9&appid=1139609950&aid=1ABAE8D8-21B3-453D-9DEA-B9ABD69AA1A1&partnerkey=unrtb&campaignID=123184311&adgroupID=180968&ra=&code=complete&s=]]><!</Tracking></TrackingEvents><VideoClicks><ClickThrough>[CDATA[https://c.yourdsp.com/ads/c.php?a=unrtb&b=unrtb-com.catchall.game-320x568&c=179e7ee9&d=1ABAE8D8-21B3-453D-9DEA-B9ABD69AA1A1&ct=0&nb=0&its=1499375139&gf=https%3A%2F%2Fcdngs.yourdsp.com%2F1028%2F768x1024_Unsub_NewGame_Video_All_ZHCN_MZCA02xbqA4.ipad_20170629_09_44_11_.mp4&f=&ra=&aid=1ABAE8D8-21B3-453D-9DEA-B9ABD69AA1A1&campaignID=123184311&adgroupID=180968&adgroup=NewGame_iOS_NL&defcpa=0&defcpc=0&appid=1186994231&creativeID=329c8ef3&adType=5&countrycode=NL&ccimpid=X96142d9408c8a40179e7ee907061405&accountid=1028&siteaccountid=4917655231945&pubappid=&sg=&it=&inf=0&price=0.04800847457627119&cg=New,Set&creativeID=329c8ef3]]><![</ClickThrough><ClickTracking>CDATA[https://ads.yourdsp.com/ads/vast.php?appkey=unrtb-com.catchall.game-320x568&adid=179e7ee9&appid=1139609950&aid=1ABAE8D8-21B3-453D-9DEA-B9ABD69AA1A1&partnerkey=unrtb&campaignID=123184311&adgroupID=180968&ra=&code=click]]><!</ClickTracking></VideoClicks><MediaFiles><MediaFile delivery=\"progressive\" type=\"video/mp4\" bitrate=\"500\" width=\"768\" height=\"1024\" scalable=\"true\" maintainAspectRatio=\"true\">[CDATA[https://cdngs.yourdsp.com/1028/768x1024_Unsub_NewGame_Video_All_ZHCN_MZCA02xbqA4.ipad_20170629_09_44_11_.mp4]]><!</MediaFile></MediaFiles></Linear></Creative><Creative AdID=\"179e7ee9\"><CompanionAds><Companion width=\"768\" height=\"1024\"><StaticResource creativeType=\"image/jpeg\"><![CDATA[]]></StaticResource><TrackingEvents><Tracking event=\"creativeView\">[CDATA[https://ads.yourdsp.com/ads/vast.php?appkey=unrtb-com.catchall.game-320x568&adid=179e7ee9&appid=1139609950&aid=1ABAE8D8-21B3-453D-9DEA-B9ABD69AA1A1&partnerkey=unrtb&campaignID=123184311&adgroupID=180968&ra=&code=engagedView]]><!</Tracking></TrackingEvents><CompanionClickThrough>[CDATA[https://c.yourdsp.com/ads/c.php?a=unrtb&b=unrtb-com.catchall.game-320x568&c=179e7ee9&d=1ABAE8D8-21B3-453D-9DEA-B9ABD69AA1A1&ct=0&nb=0&its=1499375139&gf=https%3A%2F%2Fcdngs.yourdsp.com%2F1028%2F768x1024_Unsub_NewGame_Video_All_ZHCN_MZCA02xbqA4.ipad_20170629_09_44_11_.mp4&f=&ra=&aid=1ABAE8D8-21B3-453D-9DEA-B9ABD69AA1A1&campaignID=123184311&adgroupID=180968&adgroup=NewGame_iOS_NL&defcpa=0&defcpc=0&appid=1186994231&creativeID=329c8ef3&adType=5&countrycode=NL&ccimpid=X96142d9408c8a40179e7ee907061405&accountid=1028&siteaccountid=4917655231945&pubappid=&sg=&it=&inf=0&price=0.04800847457627119&cg=New,Set&creativeID=329c8ef3]]>", </CompanionClickThrough></Companion></CompanionAds></Creative></Creatives></InLine></Ad></VAST>. "ext": { "advertisername":"One Cool Advertiser" "appid":"1234567890123", "appname":"サンプルゲーム", "storeurl": "https://itunes.apple.com/us/app/trash-dash/id1198634425?mt=8", "length":15, "crtype":"VAST" "clickablevideo":1, "deeplinking":1, "cta_text":"Shop Now" "skadn": { "ext": { "ask":2 }, "productpageid":"00d00d1e-ff93-67fc-653f-8ggd1eeghcdf", "skoverlay": { "show":1, "position":0, "dismissable":0, "video_delay":5, } } } }] }] }
入札レスポンスなし(NBR)
Unity Exchange は、入札なしの場合に複数の反応タイプをサポートします。これらの反応のいずれかを使用して、インプレッションに入札しないことを明示的に信号にすることが重要です。そうしないと、反応がタイムアウトエラーとして解釈される可能性があります。
Response | 例 |
|---|---|
| コンテンツなし | |
| 空の JSON オブジェクト | |
| 適切な形式の入札反応(理由コードあり/なし) | |
| その他 |
|
詳細については、OpenRTB 仕様のセクション 7.1 を参照してください。
NBR reason codes
値 | 説明 |
|---|---|
| 不明なエラー |
| テクニカル エラー |
| 無効なリクエスト |
| 既知のウェブ スパイダー |
| 非人的トラフィックの疑い |
| クラウド、データセンター、またはプロキシ IP |
| サポートされないデバイス |
| ブロックされたパブリッシャーまたはサイト |
| 不一致ユーザー |
価格難読化
nURL${AUCTION_PRICE:BF}方法論
データを難読化するために、Unity は ECB モードで Blowfish を使用し、PKCS5 パディング(8 バイトのブロック サイズの PKCS7 パディング)を入力データに適用します。データは base64 URL エンコードされ、バイナリデータは URL で有効になります。ソースコードは、トラブルシューティングのリクエストに応じて入手できます。
base64_URLEncode(blowfish_ecb_encrypt_pkcs5_padding(plaintext))
パラメーター | 値の例 |
|---|---|
| key | |
| plaintext | |
| 暗号化された、base64 URL エンコードされた | |
暗号解読
データを解読するには、入力文字列は base64 URL デコードされます。その後、暗号化されたデータから PKCS5 パディングが削除され、Blowfish ECB 暗号化が元に戻されます。
blowfish_ecb_decrypt_pkcs5_padding(base64_URLDecode(encodedtext))