# Open RTB 2.6 Bid Response Specifications

## BidResponse

The `BidResponse` object contains the following fields:



<table>
  <thead>
    <tr>
      <th>Field</th>
      <th>Description</th>
      <th>Notes</th>
    </tr>
  </thead>
  <tbody>
    
    <tr>
      <td><span style="font-family:Courier New">id</span></td>
      <td>Bidder-generated bid ID to assist with logging/tracking.</td>
      <td></td>
    </tr>
    
    <tr>
      <td><span style="font-family:Courier New">seatbid</span></td>
      <td>Array of objects containing seat &amp; bid information.</td>
      <td><strong>Required.</strong> We support only one bid per bid response.</td>
    </tr>
    
    <tr>
      <td><span style="font-family:Courier New">bidid</span></td>
      <td>Bidder-generated response ID to assist with logging/tracking.</td>
      <td></td>
    </tr>
    
    <tr>
      <td><span style="font-family:Courier New">cur</span></td>
      <td>Currency.</td>
      <td>Should always be set to <code class="language-plaintext highlighter-rouge">'USD'</code>.</td>
    </tr>
    
  </tbody>
</table>




## BidResponse.seatbid (Array[Object])



<table>
  <thead>
    <tr>
      <th>Field</th>
      <th>Description</th>
      <th>Notes</th>
    </tr>
  </thead>
  <tbody>
    
    <tr>
      <td><span style="font-family:Courier New">bid</span></td>
      <td>Array of bid objects containing details of the bid.</td>
      <td>Should contain a single bid object.</td>
    </tr>
    
    <tr>
      <td><span style="font-family:Courier New">seat</span></td>
      <td>Name of the client making the bid.</td>
      <td></td>
    </tr>
    
  </tbody>
</table>



## BidResponse.seatbid[].bid (Array[Object])



<table>
  <thead>
    <tr>
      <th>Field</th>
      <th>Description</th>
      <th>Notes</th>
    </tr>
  </thead>
  <tbody>
    
    <tr>
      <td><span style="font-family:Courier New">id</span></td>
      <td>Bidder-generated bid ID to assist with logging/tracking.</td>
      <td><strong>Required</strong></td>
    </tr>
    
    <tr>
      <td><span style="font-family:Courier New">impid</span></td>
      <td>Must match the <code class="language-plaintext highlighter-rouge">imp.id</code> from the auction’s bid request.</td>
      <td><strong>Required</strong></td>
    </tr>
    
    <tr>
      <td><span style="font-family:Courier New">price</span></td>
      <td>Bid price expressed as CPM.</td>
      <td><strong>Required</strong></td>
    </tr>
    
    <tr>
      <td><span style="font-family:Courier New">nurl</span></td>
      <td>Win notice URL called by the exchange if the bid wins. (not necessarily indicative of a delivered, viewed, or billable ad). Substitution macros are supported.</td>
      <td><strong>Optional</strong></td>
    </tr>
    
    <tr>
      <td><span style="font-family:Courier New">burl</span></td>
      <td>Notification URL to be called from device once impression is shown.</td>
      <td><strong>Required*</strong> OpenRTB macros are supported here. Either <code class="language-plaintext highlighter-rouge">burl</code> or <code class="language-plaintext highlighter-rouge">ext.imptrackers</code> must be provided for impression tracking.</td>
    </tr>
    
    <tr>
      <td><span style="font-family:Courier New">lurl</span></td>
      <td>Notification URL to be called from our server immediately following an auction, to notify of win/loss/error outcome of your bid. Substitution macros are supported.</td>
      <td><strong>Optional</strong></td>
    </tr>
    
    <tr>
      <td><span style="font-family:Courier New">adm</span></td>
      <td>Only supported method of sending payload.</td>
      <td><strong>Required</strong> OpenRTB macros are supported here.</td>
    </tr>
    
    <tr>
      <td><span style="font-family:Courier New">adid</span></td>
      <td>ID of a preloaded ad to be served if the bid wins.</td>
      <td><strong>Optional</strong></td>
    </tr>
    
    <tr>
      <td><span style="font-family:Courier New">adomain</span></td>
      <td>Advertiser domain for block list checking (e.g., “ford.com”).</td>
      <td><strong>Required</strong></td>
    </tr>
    
    <tr>
      <td><span style="font-family:Courier New">bundle</span></td>
      <td>Package id for Android or iTunes Store id for iOS of the advertised app.</td>
      <td><strong>Required*</strong> If your advertisement is for a Google Play Store or iTunes Store app, this field is required, else is it optional.</td>
    </tr>
    
    <tr>
      <td><span style="font-family:Courier New">cid</span></td>
      <td>Campaign ID.</td>
      <td><strong>Optional</strong></td>
    </tr>
    
    <tr>
      <td><span style="font-family:Courier New">crid</span></td>
      <td>Creative ID.  Recommendation: prefix with a DSP identifying string to enhance uniqueness of the id, e.g. “crid”:”acme_123” vs. “crid”:”123”.</td>
      <td><strong>Required</strong></td>
    </tr>
    
    <tr>
      <td><span style="font-family:Courier New">cat</span></td>
      <td>Array containing IAB content categories of the creative.</td>
      <td><strong>Highly Recommended</strong></td>
    </tr>
    
    <tr>
      <td><span style="font-family:Courier New">attr</span></td>
      <td>Creative attributes of the returned ad.</td>
      <td><strong>Optional*</strong> For User-Interactive ads, this field is required and the value should be <code class="language-plaintext highlighter-rouge">[13]</code>.</td>
    </tr>
    
    <tr>
      <td><span style="font-family:Courier New">apis</span></td>
      <td>List of supported APIs for the markup. If an API is not explicitly listed, it is assumed to be unsupported. Refer to <a href="https://github.com/InteractiveAdvertisingBureau/AdCOM/blob/master/AdCOM%20v1.0%20FINAL.md#list--api-frameworks-" target="_blank">List: API Frameworks</a> in AdCOM 1.0.</td>
      <td><strong>Required if markup applicable</strong></td>
    </tr>
    
    <tr>
      <td><span style="font-family:Courier New">api</span></td>
      <td>NOTE: Deprecated in favor of the apis integer array. API required by the markup if applicable. Refer to <a href="https://github.com/InteractiveAdvertisingBureau/AdCOM/blob/master/AdCOM%20v1.0%20FINAL.md#list--api-frameworks-" target="_blank">List: API Frameworks</a> in AdCOM 1.0.</td>
      <td><strong>Required if markup applicable</strong></td>
    </tr>
    
    <tr>
      <td><span style="font-family:Courier New">protocol</span></td>
      <td>Video response protocol of the markup if applicable. Refer to <a href="https://github.com/InteractiveAdvertisingBureau/AdCOM/blob/master/AdCOM%20v1.0%20FINAL.md#list--creative-subtypes---audiovideo-" target="_blank">List: Creative Subtypes - Audio/Video</a> in AdCOM 1.0.</td>
      <td><strong>Required if markup applicable</strong></td>
    </tr>
    
    <tr>
      <td><span style="font-family:Courier New">dealid</span></td>
      <td>String that references <code class="language-plaintext highlighter-rouge">deal.id</code> from the bid request if this bid pertains to a private marketplace direct deal.</td>
      <td><strong>Only Required for PMP Deals.</strong></td>
    </tr>
    
    <tr>
      <td><span style="font-family:Courier New">mtype</span></td>
      <td>Type of the creative markup so that it can properly be associated with the right sub-object of the BidRequest.Imp.Values: <code class="language-plaintext highlighter-rouge">1</code> = Banner, <code class="language-plaintext highlighter-rouge">2</code> = Video, <code class="language-plaintext highlighter-rouge">3</code> = Audio, <code class="language-plaintext highlighter-rouge">4</code> = Native</td>
      <td><strong>Highly Recommended</strong></td>
    </tr>
    
    <tr>
      <td><span style="font-family:Courier New">ext.imptrackers</span></td>
      <td>Array of URLs that will be hit from device when impression is shown on the screen.</td>
      <td><strong>Required*</strong>, OpenRTB macros are supported here. Either <code class="language-plaintext highlighter-rouge">burl</code> or <code class="language-plaintext highlighter-rouge">ext.imptrackers</code> must be provided for billable impression tracking.</td>
    </tr>
    
    <tr>
      <td><span style="font-family:Courier New">ext.crtype</span></td>
      <td>String which defines payload format.</td>
      <td><strong>Required</strong>. If bidding with a User-Interactive ad this value <strong>must</strong> be set to <code class="language-plaintext highlighter-rouge">"MRAID playable"</code> or the bid response will be rejected; else set to one of the following: <code class="language-plaintext highlighter-rouge">"VAST 2.0"</code>, <code class="language-plaintext highlighter-rouge">"VAST 3.0"</code>, <code class="language-plaintext highlighter-rouge">"MRAID 1.0"</code>, <code class="language-plaintext highlighter-rouge">"MRAID 2.0"</code>, <code class="language-plaintext highlighter-rouge">"MRAID 3.0"</code>, <code class="language-plaintext highlighter-rouge">"HTML"</code>.</td>
    </tr>
    
    <tr>
      <td><span style="font-family:Courier New">ext.buttonPlacement</span></td>
      <td>String to communicate which corner to display close button in an MRAID response. Accepted values are “top-right” or “top-left”.</td>
      <td><strong>Optional</strong></td>
    </tr>
    
  </tbody>
</table>



## Example Responses
DSPs can refer to the sample bid responses:

### Static/Banner ad response (HTML/MRAID)
```json
// Static/Banner ad response (HTML/MRAID)
{
  "id": "9d554579-f21a-4f6f-a33e-42c41b09b206",
  "bidid": "rtb-9d554579-f21a-4f6f-a33e-42c41b09b206",
  "cur": "USD",
  "seatbid": [
    {
      "seat": "foobar",
      "bid": [
        {
          "impid": "05f2322fee88b9bf6892e6257bfabea83939b4c4",
          "adomain": [
            "foobar.com"
          ],
          "attr": [],
          "mtype": 1,
          "bundle": "com.foobar.game",
          "id": "rtb-9d554579-f21a-4f6f-a33e-42c41b09b206",
          "crid": "foobar:190d3bfd",
          "cid": "190d3bfd",
          "cat": ["IAB9-30"],
          "price": 15.2625,
          "adid": "190d3bfd",
          "burl": "https://lb-www2.foobar.com/ads/notify.php?auction_id=${AUCTION_ID}&winning_price=${AUCTION_PRICE}",
          "lurl": "https://lb-www2.foobar.com/ads/notify.php?auction_id=${AUCTION_ID}&win_loss_other=${AUCTION_LOSS}&minbid=${MIN_BID_TO_WIN}",
          "adm": "<!DOCTYPE html><html lang=\"en\"><div id=\"foobarad\" style=\"background-color:black; position:relative; width:100%; height:100%;\"><a href=\"https://some.clickthrough.link\"><img style=\"position:absolute;top: 0;left: 0;bottom: 0;right: 0;margin:auto; max-width:100%; max-height:100%\" src=\"https://some.cdn/image.jpg\" alt=\"none\"></a></div>\n\n",
          "ext": {
            "imptrackers": [
              "https://lb-www2.foobar.com/ads/notify.php?auction_id=${AUCTION_ID}&winning_price=${AUCTION_PRICE}"
            ],
            "crtype": "MRAID 2.0"
          }
        }
      ]
    }
  ]
}
```

### MRAID Playable ad response

```json
// MRAID Playable ad response
{
  "id": "9d554579-f21a-4f6f-a33e-42c41b09b206",
  "bidid": "rtb-9d554579-f21a-4f6f-a33e-42c41b09b206",
  "cur": "USD",
  "seatbid": [
    {
      "seat": "foobar",
      "bid": [
        {
          "impid": "05f2322fee88b9bf6892e6257bfabea83939b4c4",
          "adomain": [
            "foobar.com"
          ],
          "attr": [13],
          "apis": [5],
          "mtype": 1,
          "bundle": "com.foobar.game",
          "id": "rtb-9d554579-f21a-4f6f-a33e-42c41b09b206",
          "crid": "foobar:190d3bfd",
          "cid": "190d3bfd",
          "cat": ["IAB9-30"],
          "price": 15.2625,
          "adid": "190d3bfd",
          "burl": "https://lb-www2.foobar.com/ads/notify.php?auction_id=${AUCTION_ID}&winning_price=${AUCTION_PRICE}",
          "lurl": "https://lb-www2.foobar.com/ads/notify.php?auction_id=${AUCTION_ID}&win_loss_other=${AUCTION_LOSS}&minbid=${MIN_BID_TO_WIN}",
          "adm": "<!DOCTYPE html><html lang=\"en\"><div id=\"foobarad\" style=\"background-color:black; position:relative; width:100%; height:100%;\"><a href=\"https://some.clickthrough.link\"><img style=\"position:absolute;top: 0;left: 0;bottom: 0;right: 0;margin:auto; max-width:100%; max-height:100%\" src=\"https://some.cdn/image.jpg\" alt=\"none\"></a></div>\n\n",
          "ext": {
            "imptrackers": [
              "https://lb-www2.foobar.com/ads/notify.php?auction_id=${AUCTION_ID}&winning_price=${AUCTION_PRICE}"
            ],
            "crtype": "MRAID playable",
            "buttonPlacement": "top-right"
          }
        }
      ]
    }
  ]
}
```

### Video ad response(VAST)

```json
// Video ad response(VAST)
{
  "id": "9d554579-f21a-4f6f-a33e-42c41b09b206",
  "bidid": "rtb-9d554579-f21a-4f6f-a33e-42c41b09b206",
  "cur": "USD",
  "seatbid": [
    {
      "seat": "foobar",
      "bid": [
        {
          "impid": "05f2322fee88b9bf6892e6257bfabea83939b4c4",
          "adomain": [
            "foobar.com"
          ],
          "attr": [],
          "apis": [8],
          "protocol": 3,
          "mtype": 2,
          "bundle": "com.foobar.game",
          "id": "rtb-9d554579-f21a-4f6f-a33e-42c41b09b206",
          "crid": "foobar:190d3bfd",
          "cid": "190d3bfd",
          "cat": ["IAB9-30"],
          "price": 15.2625,
          "adid": "190d3bfd",
          "burl": "https://lb-www2.foobar.com/ads/notify.php?auction_id=${AUCTION_ID}&winning_price=${AUCTION_PRICE}",
          "lurl": "https://lb-www2.foobar.com/ads/notify.php?auction_id=${AUCTION_ID}&win_loss_other=${AUCTION_LOSS}&minbid=${MIN_BID_TO_WIN}",
          "adm": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><VAST version=\"3.0\"><Ad id=\"idleheros-gp-001\"><InLine><AdSystem>Chartboost</AdSystem><Error></Error><AdTitle>idleheros-gp-001</AdTitle><Impression><![CDATA[https://testbid.chartboost.com/impression?ssp=cbbidder&creative_id=7&model_id=SM-N900T&cpi_price=10.0&exchange=chartboost&impression_id=05f2322fee88b9bf6892e6257bfabea83939b4c4&cpm_price=5.95&ip_address=73.84.99.99&app_bundle=com.foo.bar&city=West Palm Beach&country=USA&region=FL&cpm_bid=60.0&ssp_fields=%7B%22ad_group%22%3A%2232%22%7D&model=SM-N900T&identifier=7c0ffa99-9238-459e-82ff-9465634bb8a1&os=5.0]]></Impression><Creatives><Creative><Linear><Duration>00:00:29</Duration><MediaFiles><MediaFile bitrate=\"906\" delivery=\"progressive\" height=\"320\" maintainAspectRatio=\"true\" scalable=\"true\" type=\"video/mp4\" width=\"568\"><![CDATA[http://v.chartboost.com/videoads/5a2863cf55fbf70b8e3d35d0_568-1512596432.mp4]]></MediaFile></MediaFiles><VideoClicks><ClickThrough><![CDATA[https://testbid.chartboost.com/click?ssp=cbbidder&creative_id=7&model_id=SM-N900T&cpi_price=10.0&exchange=chartboost&impression_id=05f2322fee88b9bf6892e6257bfabea83939b4c4&cpm_price=5.95&ip_address=73.84.99.99&app_bundle=com.foo.bar&city=West Palm Beach&country=USA&region=FL&cpm_bid=60.0&ssp_fields=%7B%22ad_group%22%3A%2232%22%7D&model=SM-N900T&identifier=7c0ffa99-9238-459e-82ff-9465634bb8a1&os=5.0]]></ClickThrough></VideoClicks></Linear></Creative><Creative><CompanionAds><Companion assetHeight=\"473\" assetWidth=\"841\" height=\"473\" width=\"841\"><StaticResource creativeType=\"image/jpeg\"><![CDATA[https://a.chartboost.com/creatives/582e0b9ff6cd451685c344cc/3a079f4abd4b649aea509a81ebd3972992b3d18b.jpeg]]></StaticResource><CompanionClickThrough><![CDATA[https://testbid.chartboost.com/click?ssp=cbbidder&creative_id=7&model_id=SM-N900T&cpi_price=10.0&exchange=chartboost&impression_id=05f2322fee88b9bf6892e6257bfabea83939b4c4&cpm_price=5.95&ip_address=73.84.99.99&app_bundle=com.foo.bar&city=West Palm Beach&country=USA&region=FL&cpm_bid=60.0&ssp_fields=%7B%22ad_group%22%3A%2232%22%7D&model=SM-N900T&identifier=7c0ffa99-9238-459e-82ff-9465634bb8a1&os=5.0]]></CompanionClickThrough></Companion></CompanionAds></Creative></Creatives></InLine></Ad></VAST>",
          "ext": {
            "imptrackers": [
              "https://lb-www2.foobar.com/ads/notify.php?auction_id=${AUCTION_ID}&winning_price=${AUCTION_PRICE}"
            ],
          "crtype": "VAST 3.0"
          }
        }
      ]
    }
  ]
}
```