BidRequest.device.geo
Geo
Location, either as coordinates or as administrative codes, with a field saying where the data came from.
Fields
| Field | Type | Level | Description |
|---|---|---|---|
| type | integer | recommended | Source of the location data. |
| accuracy | integer | recommended | Accuracy in metres, for GPS-derived locations. |
| lat | float | optional | Latitude, -90.0 to +90.0. |
| lon | float | optional | Longitude, -180.0 to +180.0. |
| country | string | optional | Country code, ISO-3166-1-alpha-3. |
| region | string | optional | Region code, ISO-3166-2. |
| city | string | optional | City, using UN/LOCODE. |
| zip | string | optional | Postal or ZIP code. |
| metro | string | optional | Metro or DMA code. |
Example
{
"lat": 40.7128,
"lon": -74.0060,
"type": 1,
"accuracy": 50,
"country": "USA",
"region": "NY",
"city": "New York"
}What matters in practice
The type field is the one that matters and the one most often ignored. It distinguishes a GPS fix from an IP-derived guess, and those are not comparable: IP geolocation is reliable at country level, roughly right at region level, and frequently wrong at city level — particularly on mobile carriers, where an IP can resolve to a gateway hundreds of kilometres from the user. A city-level targeting rule built on IP-derived geo is buying a much fuzzier audience than the report suggests. Note also that country is the three-letter code, not the two-letter one most systems use elsewhere.
Related objects
Field names, types and requirement levels from the IAB Tech Lab OpenRTB 2.6 specification (2.6-202211), verified 30 July 2026. The practice notes are not spec text.