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

FieldTypeSinceStatus in 2.6
imp.bidfloorcurstring2.0Current

Go deeper

More questions on video, ctv, native, floors, deals, and macros

All 93 questions are listed in the OpenRTB FAQ.