BidRequest.at

The auction type: 1 for first price, 2 for second price plus. Defaults to 2 when omitted, and 2.6 reserves values of 500 and above for exchange-specific auction types.

CurrentintegerOptionalSince 2.0

Field facts

Path
at
Object
BidRequest
Type
integer
Default
2
Requirement
Optional
Added
OpenRTB 2.0
Spec section
3.2.1

How it is used

Open auctions moved largely to first price around 2019, so an exchange that runs first price must send 1 explicitly; an absent field still means second price. In a first price auction the bid is what the buyer pays, which is why bidders shade their bids. A deal can override the request-level type with Deal.at. Versions 2.0 to 2.5 put custom auction types above 500 rather than at 500 and above.

Allowed values

1, 2, and exchange-specific values from 500.

Example

Where the field sits in a payload, with everything else left out:

{
  "id": "req-1",
  "at": 1
}

Common mistakes

  • Omitting at on a first price exchange. The request then claims second price, and bidders that trust the field bid without shading.
  • Sending the string "1" instead of the integer 1 is a type mismatch.

Version history

Added in OpenRTB 2.0, and present in the latest snapshot. The table shows how each version's spec text types the field.

VersionsType in the specRequiredDeprecated
2.0int n, default 2 umbered overNoNo
2.1int, default 2NoNo
2.2int p p t e E nNoNo
2.3 to 2.5integer, default 2NoNo
2.6-202210 to 2.6-202606integer, default 2NoNo

Related fields

Other BidRequest fields

For a walkthrough of the whole object, read Bid request anatomy.