Device.geo
Where the device is, as a Geo object, which buyers read as the user's current location. Recommended since 2.3; versions 2.0 to 2.2 recommended it when no IP address was sent.
Field facts
- Path
device.geo- Object
- Device
- Type
- object
- Requirement
- Recommended
- Added
- OpenRTB 2.0
- Spec section
- 3.2.18
How it is used
Most exchanges fill it from an IP lookup with Geo.type set to 2, and add GPS coordinates with Geo.type 1 only when the app has location permission. Precision is a privacy choice as well as a targeting one: coordinates can point to a home or workplace, so sellers often round or drop lat and lon when consent is missing or regs.coppa is 1, keeping country, region, or postal code. Compare user.geo, which describes the user's home base rather than where the device is now.
Example
Where the field sits in a payload, with everything else left out:
{
"id": "req-1",
"device": {
"geo": {
"country": "USA",
"region": "CA",
"zip": "94105",
"type": 2,
"ipservice": 3
}
}
}Common mistakes
- Putting the device's current location only in
user.geo. Buyers looking for current location readdevice.geo. - Sending GPS-precision coordinates when the request's consent signals do not support precise location.
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 to 2.2 | object | No | No |
| 2.3 to 2.3.1 | object | Recommended | No |
| 2.4 | object | Recommended | No |
| 2.5 to 2.6-202606 | object | Recommended | No |
Versioned rules that name this field
openrtb.2.0.device.geoOpenRTB 2.0 improved geographic data handling across mobile and desktop transactions.