Bid request and response examples

The following examples illustrate bid requests and responses using The Trade Desk Standard Adapter across many common ad formats: a podded video auction in a CTV app environment, a digital out-of-home auction for a screen in a public space, and a display banner auction on a desktop website. Each request-response pair demonstrates how key OpenRTB objects, including impression details, PMP deals, user identity signals, and supply chain data, are structured in the request and echoed in the response.

Dynamic podded bid request example

The following is a JSON example of a podded OpenRTB bid request for an instream video ad break in a CTV app environment. The imp.video object includes pod-level attributes (podid, poddur, and maxseq) that define the structure of the ad pod being auctioned. Four PMP deals with varying floor prices are declared in the imp.pmp field, with the private_auction value set to 1 to restrict bidding to those deals. The app object describes the CTV publisher and live sports content context, while the device object identifies the connected TV hardware and its advertising identifier. User identity is passed as a UID2 token in the user.eids array. The supply chain is declared in the source.schain object, and category and advertiser blocks are applied through the bcat and badv fields.

{
  "id": "0fd3796b-0000-0000-0000-3798249710f5",
  "imp": [
    {
      "id": "MIDROLL_01",
      "video": {
        "mimes": [
          "video/mp4"
        ],
        "linearity": 1,
        "minduration": 5,
        "maxduration": 121,
        "w": 1920,
        "h": 1080,
        "startdelay": -1,
        "protocols": [2, 3, 5, 6],
        "minbitrate": 10000,
        "maxbitrate": 40000,
        "skip": 0,
        "placement": 1,
        "podid": "5f0d5f36",
        "poddur": 121,
        "maxseq": 9,
        "plcmt": 1
      },
      "secure": 1,
      "ext": {
        "tid": "1234567890",
        "tidt": 1
      },
      "pmp": {
        "private_auction": 1,
        "deals": [
          {
            "id": "Deal1",
            "bidfloor": 17.8,
            "wseat": [1234],
            "at": 1
          },
          {
            "id": "Deal2",
            "bidfloor": 25,
            "wseat": [2345],
            "at": 1
          },
          {
            "id": "Deal3",
            "bidfloor": 27.78,
            "wseat": [3456],
            "at": 1
          },
          {
            "id": "Deal4",
            "bidfloor": 28.05,
            "wseat": [4567],
            "at": 1
          }
        ]
      }
    }
  ],
  "app": {
    "id": "com.publisher.app",
    "name": "Publisher",
    "domain": "myfavoritepublisher.com",
    "bundle": "123456789",
    "content": {
      "genre": "Sports",
      "prodq": 1,
      "contentrating": "Unrated",
      "livestream": 1
    },
    "publisher": {
      "id": "1234567",
      "name": "Publisher",
      "cat": [
        "Arts & Entertainment"
      ],
      "domain": "myfavoritepublisher.com"
    },
    "storeurl": "myfavoritepublisher.com"
  },
  "device": {
    "ua": "Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 WebAppManager",
    "ip": "50.86.215.0",
    "ifa": "e6640a32-a708-4a4e-93a2-d3c74example",
    "devicetype": 3,
    "make": "LG",
    "dnt": 0,
    "lmt": 0,
    "ext": {
      "ifa_type": "dpid"
    }
  },
  "user": {
    "eids": [
      {
        "source": "uidapi.com",
        "inserter": "publisher.com",
        "mm": 3,
        "uids": [
          {
            "id": "AgAAAAVacu1uAxgAxH+HJ8+Cl2rUTIAKPe98eZQ...",
            "atype": 3,
            "ext": {
              "rtiPartner": "UID2"
            }
          }
        ]
      }
    ]
  },
  "bcat": [
    "IAB23-1",
    "IAB7-28"
  ],
  "regs": {
    "coppa": 0,
    "us_privacy": "1YNN"
  },
  "badv": [
    "grandmasknittingneedles.com"
  ],
  "source": {
    "schain": {
      "complete": 1,
      "nodes": [
        {
          "asi": "exchange.com",
          "rid": "d29da37e-80e1-4c55-9b29-f780ff45bcd9",
          "sid": "publ-1a2b3c4d-5e6f-7890-abcd-ef1234567890"
        }
      ]
    }
  },
  "tmax": 350
}

Dynamic podded bid response example

The following is a JSON example of a dynamic podded bid response. To correlate the response with its originating request, the response.id value matches the request.id value. Multiple bids are returned within the same seatbid.bid array, each referencing the same impression in the impid field but targeting a different PMP deal via the dealid field. Each bid returns a VAST URL in the adm field and includes win and loss notification URLs in the nurl and lurl fields, using the ${AUCTION_PRICE} and ${AUCTION_LOSS} macros for runtime substitution. The dur field indicates the creative duration in seconds, and the mtype value of 2 identifies each bid as video ad markup.

{
  "id": "0fd3796b-0000-0000-0000-3798249710f5",
  "seatbid": [
    {
      "bid": [
        {
          "id": "MIDROLL_01",
          "impid": "MIDROLL_01",
          "price": 17.801046,
          "adm": "https://enduser.adsrvr.org/enduser/vast/wp=${AUCTION_PRICE}...",
          "nurl": "https://vam-bid.adsrvr.org/bid/feedback/wp=${AUCTION_PRICE}...",
          "cid": "123abcd",
          "crid": "abcd123",
          "adomain": [
            "myfavoriteadvertiser.com"
          ],
          "dealid": "Deal1",
          "w": 1920,
          "h": 1080,
          "cat": [
            "IAB7"
          ],
          "lurl": "https://vam-bid.adsrvr.org/bid/loss/loss=${AUCTION_LOSS}...",
          "mtype": 2,
          "dur": 75,
          "exp": 7200
        },
        {
          "id": "MIDROLL_01",
          "impid": "MIDROLL_01",
          "price": 19.8,
          "adm": "https://enduser.adsrvr.org/enduser/vast/wp=${AUCTION_PRICE}...",
          "nurl": "https://vam-bid.adsrvr.org/bid/feedback/wp=${AUCTION_PRICE}...",
          "cid": "567xzya",
          "crid": "5432cba",
          "adomain": [
            "myfavoriteadvertiser5.com"
          ],
          "dealid": "Deal2",
          "w": 1920,
          "h": 1080,
          "cat": [
            "IAB7"
          ],
          "lurl": "https://vam-bid.adsrvr.org/bid/loss/loss=${AUCTION_LOSS}...",
          "mtype": 2,
          "dur": 75,
          "exp": 7200
        }
      ],
      "seat": "4948"
    }
  ],
  "cur": "USD"
}

DOOH bid request example

The following is a JSON example of an OpenRTB bid request for a video ad on a digital out-of-home billboard at a public street venue. The imp.qty object expresses the DOOH impression multiplier that identifies the measurement vendor and indicates that the count is publisher-provided through the sourcetype field. The device object with a devicetype of 8 identifies the screen as an out-of-home device and provides its physical placement coordinates in the geo object. The dooh object describes the screen-level context, including the venue name (name), venue type according to the taxonomy reference (venuetypeid), venue taxonomy (venuetax), placement keywords (keywords), and the associated publisher and content objects.

{
  "id": "299b5195-a849-4f00-950b-4c6a389bfe65",
  "imp": [
    {
      "id": "display-0",
      "video": {
        "mimes": [
          "video/mp4"
        ],
        "minduration": 6,
        "maxduration": 90,
        "w": 1920,
        "h": 1080,
        "startdelay": 0,
        "protocols": [
          2
        ]
      },
      "bidfloor": 0.5,
      "secure": 1,
      "pmp": {
        "private_auction": 0,
        "deals": [
          {
            "id": "test-deal-12345789",
            "bidfloor": 10,
            "wseat": [],
            "at": 1
          }
        ]
      },
      "exp": 900,
      "qty": {
        "multiplier": 5,
        "vendor": "doohvendor",
        "sourcetype": 1
      }
    }
  ],
  "device": {
    "ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36",
    "ip": "193.201.244.209",
    "devicetype": 8,
    "geo": {
      "lat": 1.351616,
      "lon": 103.808053,
      "type": 3
    },
    "dnt": 0,
    "lmt": 0
  },
  "allimps": 1,
  "at": 1,
  "source": {
    "schain": {
      "complete": 1,
      "nodes": [
        {
          "asi": "ownerdomain.com",
          "sid": "publisherid12345"
        }
      ]
    }
  },
  "dooh": {
    "id": "SCREENID123",
    "name": "Main Street Digital Billboard",
    "venuetypeid": "202",
    "venuetax": 5,
    "keywords": "outdoor,transit,digital",
    "publisher": {
      "id": "publisherid12345"
    },
    "content": {
      "id": "content-001",
      "language": "en"
    }
  },
  "cattax": 6
}

DOOH bid response example

The following is a JSON example of a DOOH bid response. The response.id value matches the request.id value, and the bid.impid value references the impression ID from the request. The bid targets a PMP deal identified in the dealid field and returns a VAST URL in the adm field, with a win notification URL in the nurl field using the ${AUCTION_PRICE} macro for runtime substitution. The dur field indicates the creative duration in seconds, and the mtype value of 2 identifies the markup type as video ad markup. The w and h fields confirm the 1920×1080 creative dimensions, and the exp field specifies the bid expiration window in seconds.

{
  "id": "299b5195-a849-4f00-950b-4c6a389bfe65",
  "cur": "USD",
  "seatbid": [
    {
      "seat": "1",
      "bid": [
        {
          "id": "299b5195-a849-4f00-950b-4c6a389bfe65",
          "impid": "display-0",
          "price": 0.5,
          "cid": "123abcd",
          "crid": "abcd123",
          "dealid": "test-deal-12345789",
          "adomain": ["myfavoriteadvertiser.com"],
          "cat": ["596"],
          "cattax": 6,
          "mtype": 2,
          "dur": 15,
          "w": 1920,
          "h": 1080,
          "exp": 3600,
          "adm": "https://enduser.adsrvr.org/enduser/vast/wp=${AUCTION_PRICE}...",
          "nurl": "https://vam-bid.adsrvr.org/bid/feedback/wp=${AUCTION_PRICE}...",
          "ext": {
            "advid": "advertiser-id-001",
            "agid": "agency-id-001"
          }
        }
      ]
    }
  ]
}

Banner bid request example

The following is a JSON example of an OpenRTB bid request for a display banner impression on a desktop website. The imp.banner object specifies two accepted creative sizes in the format array (300×600 and 300×250) with the larger treated as the primary dimension. Two PMP deals with different floor prices are declared in the imp.pmpfield, with the private_auction value set to 0 to allow open auction bidding alongside deal-targeted bids. The site object describes the web publisher context, while the device object provides browser, OS, geo, and User-Agent Client Hints data via the sua filed. Multiple user identity signals are passed through the user.ext.eids array, including a LiveRamp IDL, a UID2 token, and a TDID. Privacy signals are declared in both the regs.us_privacy and regs.gpp fields, and the supply chain is provided in the source.ext.schain object.

{
  "id": "f2de2de0-d0cc-47db-9a8f-bc48f1418935_x27_1",
  "imp": [
    {
      "id": "1",
      "banner": {
        "w": 300,
        "h": 600,
        "pos": 3,
        "format": [
          {
            "w": 300,
            "h": 600
          },
          {
            "w": 300,
            "h": 250
          }
        ],
        "ext": {
          "bidfloor": 0.19
        }
      },
      "tagid": "123458999",
      "bidfloor": 0.19,
      "secure": 1,
      "pmp": {
        "private_auction": 0,
        "deals": [
          {
            "id": "PUBLISHER481927350614782903",
            "bidfloor": 2.63,
            "bidfloorcur": "USD",
            "at": 1
          },
          {
            "id": "SSPV481927350614782903",
            "bidfloor": 0.27,
            "bidfloorcur": "USD",
            "at": 1
          }
        ]
      },
      "ext": {
        "gpid": "us_yhp_ros_dt_mid_example",
        "tid": "12345098234"
      }
    }
  ],
  "site": {
    "id": "123458999",
    "domain": "www.example.com",
    "page": "https://www.example.com/creators/lifestyle/story",
    "cat": [
      "IAB19"
    ],
    "content": {
      "language": "en"
    },
    "publisher": {
      "id": "20"
    }
  },
  "device": {
    "ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36",
    "ip": "138.9.20.x",
    "language": "en",
    "devicetype": 2,
    "os": "Windows 10",
    "osv": "NT 10.0",
    "geo": {
      "lat": 37.98,
      "lon": -121.31,
      "country": "USA",
      "city": "STOCKTON",
      "zip": "95211",
      "type": 2,
      "region": "CA",
      "utcoffset": -420,
      "HasLatLon": true
    },
    "connectiontype": 1,
    "sua": {
      "browsers": [
        {
          "brand": "Google Chrome",
          "version": [
            "147"
          ]
        },
        {
          "brand": "Not.A/Brand",
          "version": [
            "8"
          ]
        },
        {
          "brand": "Chromium",
          "version": [
            "147"
          ]
        }
      ],
      "platform": {
        "brand": "Windows"
      },
      "mobile": 0,
      "source": 1
    }
  },
  "user": {
    "buyeruid": "08e757bd-7add-4fae-ade1-000000000000",
    "id": "YvPpxQTM4Uw.000000000000",
    "ext": {
      "eids": [
        {
          "source": "liveramp.com",
          "inserter": "example.com",
          "matcher": "liveramp.com",
          "mm": 3,
          "uids": [
            {
              "id": "XY3007J0PFD8ndH....",
              "atype": 3,
              "ext": {
                "rtiPartner": "idl"
              }
            }
          ]
        },
        {
          "source": "uidapi.com",
          "inserter": "example.com",
          "mm": 3,
          "uids": [
            {
              "id": "A4AAADIPmTB9PRwO5ehzEmYpW.....",
              "atype": 3,
              "ext": {
                "rtiPartner": "UID2"
              }
            }
          ]
        },
        {
          "source": "adserver.org",
          "inserter": "ssp.com",
          "mm": 1,
          "uids": [
            {
              "id": "08e757bd-7add-4fae-ade1-000000000000",
              "atype": 1,
              "ext": {
                "rtiPartner": "TDID"
              }
            }
          ]
        }
      ]
    }
  },
  "at": 1,
  "regs": {
    "coppa": 0,
    "us_privacy": "1YNN",
    "gpp": "AAAAAA~BVoIgACY.QA",
    "gpp_sid": [
      8
    ]
  },
  "source": {
    "pchain": "50b1c356f2c5c8fc:201422",
    "ext": {
      "schain": {
        "complete": 1,
        "nodes": [
          {
            "asi": "ssp.com",
            "rid": "f2de2de0-d0cc-47db-9a8f-000000000000",
            "sid": "20"
          }
        ]
      }
    }
  },
  "tmax": 400
}

Banner bid response example

The following is a JSON example of a banner bid response. The response.id value matches the request.id value, and the bid.impid value references the impression ID from the request. HTML display ad markup is returned directly in the adm field, including an impression tracker pixel and a click tag with a win notification URL containing the ${AUCTION_PRICE} macro. Since this bid wins through the open auction, no dealid value is present. A loss notification URL with the ${AUCTION_LOSS} and ${AUCTION_MIN_TO_WIN} macros is provided in the lurl field. The mtype value of 1 identifies the markup type as banner, and the w and h fields confirm the 300×600 creative dimensions.

{
  "id": "f2de2de0-d0cc-47db-9a8f-bc48f1418935_x27_1",
  "seatbid": [
    {
      "bid": [
        {
          "id": "1",
          "impid": "1",
          "price": 0.21923694,
          "adm": "<img src=\"https://usw-ca2.adsrvr.org/bid/feedback/wp=${AUCTION_PRICE}....\" width=\"1\" height=\"1\" style=\"display: none;\"/><ins data-dcm-click-tracker='https://insight.adsrvr.org/track/clk?&wp=${AUCTION_PRICE}...></script></span>",
          "cid": "g5mg00z",
          "crid": "bjhr00aq",
          "adomain": [
            "advertiser.com"
          ],
          "w": 300,
          "h": 600,
          "cat": [
            "IAB7"
          ],
          "lurl": "https://usw-ca2.adsrvr.org/bid/loss/loss=${AUCTION_LOSS}&mbid=${AUCTION_MIN_TO_WIN}...",
          "mtype": 1,
          "exp": 3600,
          "ext": {
            "advid": "10on009",
            "agid": "paa00tw"
          }
        }
      ],
      "seat": "1"
    }
  ],
  "cur": "USD"
}