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.
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
aton 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.
| Versions | Type in the spec | Required | Deprecated |
|---|---|---|---|
| 2.0 | int n, default 2 umbered over | No | No |
| 2.1 | int, default 2 | No | No |
| 2.2 | int p p t e E n | No | No |
| 2.3 to 2.5 | integer, default 2 | No | No |
| 2.6-202210 to 2.6-202606 | integer, default 2 | No | No |
Related fields
Other BidRequest fields
acatallimpsappbadvbappbcatbseatcattaxcurdevicedoohextidimpregssitesourcetesttmaxuserwlangwlangbwseat
For a walkthrough of the whole object, read Bid request anatomy.