Why are all my bids coming back below floor?
Answer
The usual cause is a currency mismatch: imp.bidfloorcur defaults to USD, so a floor of 200 intended as JPY but sent without bidfloorcur reads as a 200 USD CPM and nothing clears it. The inverse also happens when a bidder prices in its own currency and compares against the raw floor number without converting. Check three things: that bidfloorcur is set whenever the floor is not USD, that the bidder converts before comparing, and that deal floors carry their own bidfloorcur (Deal.bidfloorcur does not inherit from the imp, it defaults to USD independently). Loss notices with ${AUCTION_LOSS} = 100 confirm floor rejections.
Fields in this answer
| Field | Type | Since | Status in 2.6 |
|---|---|---|---|
imp.bidfloorcur | string | 2.0 | Current |
Go deeper
More questions on video, ctv, native, floors, deals, and macros
- How do I build an OpenRTB video bid request? Add an imp.video object to the impression; its presence is what marks the impression as video.
- What is plcmt in OpenRTB video? imp.video.plcmt declares the video placement subtype using AdCOM's Plcmt Subtypes list, which follows the updated IAB digital video guidelines.
- What plcmt value should I send for CTV inventory? Send imp.video.plcmt = 1 (instream) for CTV.
- Should I send placement or plcmt in a video bid request? Send both during the transition, but treat plcmt as authoritative.
- How does ad pod bidding work in OpenRTB 2.6? Each slot in the pod is its own imp, and a shared imp.video.podid ties them together.
- How do I signal server-side ad insertion (SSAI) in a bid request? Set imp.ssai, an integer added in OpenRTB 2.6 with default 0.
All 93 questions are listed in the OpenRTB FAQ.