Why is my bid response being dropped by the exchange?

Answer

Check the contract fields first: BidResponse.id must echo the request id, every bid.impid must exactly match an imp.id from the request, price must be a JSON number (CPM), and the bid must carry markup in adm or a win-notice URL in nurl. After structure, the common filters are currency (cur must be one the request allows), bids under the floor, missing adomain or crid where the exchange requires them for audit, and creative attributes colliding with battr. Exchanges rarely explain a dropped response inline, so compare your sent-bid logs against the exchange's reported received bids, then work the list.

Fields in this answer

FieldTypeSinceStatus in 2.6
bid.impidstring2.0Current
imp.idstring2.0Current

Go deeper

More questions on debugging, no-bids, and validation

All 93 questions are listed in the OpenRTB FAQ.