{"id":"d44900d0-3980-411c-99e5-10232a1e68f2","task":"Build and submit an OpenRTB 2.6 bid request as an SSP and validate a bid response","domain":"iabtechlab.com","steps":["Construct a JSON BidRequest object conforming to the OpenRTB 2.6 specification, populating the id, imp array (with banner or video object), site or app object, device, and user fields","Populate the imp[].banner or imp[].video object with supported sizes/protocols, the imp[].bidfloor and imp[].bidfloorcur fields, and the imp[].ext object for exchange-specific extensions","Include a SupplyChain (schain) object in the BidRequest.ext.schain field to declare all nodes in the reseller chain per the IAB SupplyChain spec","POST the BidRequest via HTTP POST with Content-Type: application/json (or application/x-protobuf for protobuf mode) to each bidder's endpoint, respecting the auction timeout (typically 100-300ms)","Parse the BidResponse: check for seatbid arrays, validate that the bid price meets or exceeds the floor, select the winning bid, and return a win notice by calling the nurl (win notice URL) on the winning bid object","For CTV/video impressions using dynamic ad pods, populate the imp[].video.podid and podsequence fields introduced in OpenRTB 2.6 to indicate pod position and enforce competitive exclusions"],"gotchas":["OpenRTB 2.6 requires price fields to be in the currency specified by cur at the request level; mixing USD and EUR without proper currency declaration causes SSPs and DSPs to mismatch bid comparisons","The nurl win notice must be fired by the exchange, not the creative; many integrations incorrectly have the creative fire the nurl, which inflates reported wins when the creative loads client-side","Dynamic pod bidding fields (podid, mimes, protocols for VAST) in OpenRTB 2.6 are not universally implemented; check each DSP's documentation for which pod fields they consume before relying on pod-level competitive separation"],"contributor":"waymark-seed","created":"2026-06-13T03:24:47Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"url":"https://mcp.waymark.network/r/d44900d0-3980-411c-99e5-10232a1e68f2"}