Google provides geolocation information through the
[`Geo`](https://developers.google.com/authorized-buyers/rtb/openrtb-guide#geo) object. This document
describes higher-level details of how Google populates geolocation in bid
requests and suggests best practices for its use.

> [!NOTE]
> **Note:** The `BidRequest.device.geo.ext.geo_criteria_id` field is deprecated; we encourage using the `Geo` object instead.

## How the Geo object is populated

Google only supports geolocation information describing the location of the
device on which the ad would be rendered, which is exposed in
`BidRequest.device.geo`. This location information is only obtained from IP
geolocation, never from GPS or other sources.

## Privacy protections

In order to protect user privacy, Google only provides a coarse geolocation that
is shared by a sufficiently large number of users, generalizing detected
location as necessary.

## Location representations

The `Geo` object supports two separate representations of location -- civil
location and geographical coordinates.

Civil locations are represented by the following fields:

- `country`
- `region`
- `metro`
- `city`
- `zip`

Geographical coordinates are represented by the following fields:

- `lat`
- `lon`
- `accuracy`

Both representations contain the same location and accuracy. For example, if a
bid request populates `BidRequest.device.geo` with city-level precision, then
the `lat` and `lon` fields will contain the latitude and longitude of the
centerpoint of the identified city, and `accuracy` will be the radius of a
circle with the same area as that city. Google also limits the precision of the
`lat` and `lon` fields to 0.01 degrees.

### Best practices for geolocation targeting

For bidders that need custom geolocation data we recommend using the approximate
`lat`, `lon` and `accuracy` fields for performing spatial geolocation lookups.
We don't recommend the use of the `BidRequest.device.ip` field for geolocation,
since the IP address may be truncated or redacted. The use of truncated IP
addresses for geolocation can result in less accurate results.

## The Geo Table (Deprecated)

> [!CAUTION]
> **Caution:** Google strongly recommends using `BidRequest.device.geo` instead. Support for the geo criteria ID has been temporarily added with the `BidRequest.device.geo.ext.geo_criteria_id` extension in order to simplify migration from the obsolete Google RTB protocol. Support for this extension can be removed at any time after May 1st, 2025.

The `BidRequest.device.geo.ext.geo_criteria_id` field represents geolocation as
a numeric identifier, which is mapped to a geolocation in **geo-table.csv**
available for download in the
[Reference tables section](https://developers.google.com/authorized-buyers/rtb/data#reference-tables-click-to-download-csvs)
of the Protos \& Reference Data page. **This field and the corresponding table
are now deprecated** . You can use `BidRequest.device.geo` to get similar
geolocation information.

As an example, if a bid request populates `geo` with city-level precision, then
the `geo_criteria_id` will contain the code for the corresponding city. You can
use that ID to locate a record in the geo table.

### Columns

Criteria ID
:   Unique and persistent assigned ID. In the API, these criteria are of type
    [`Location`](https://developers.google.com/adwords/api/docs/reference/latest/CampaignCriterionService.Location).

Name
:   Best available English name of the geo target.

Canonical Name
:   The constructed fully qualified English name consisting of the target's own
    name, and that of its parent and country. This field is meant only for
    disambiguating similar target names--it's not supported in
    [LocationCriterionService](https://developers.google.com/adwords/api/docs/reference/latest/LocationCriterionService)
    (use location names or criteria IDs instead).

Parent ID
:   The criteria ID of a parent. This field is included for legacy support,
    and the IDs may not be consistent across datasets. Canonical names is the
    preferred method of constructing hierarchies.

Region Code
:   The ISO 3166-2 region code for the state or province target, if one exists.

Country Code
:   The ISO-3166-1 alpha-2 country code that is associated with the target.

Target Type

:   Allowable values:

    - Airport
    - Arrondissement
    - Autonomous Community
    - Borough
    - Canton
    - City
    - City Region
    - Congressional District
    - Country
    - County
    - Department
    - District
    - DMA region
    - Governorate
    - Metro
    - Municipality
    - National Park
    - Neighborhood
    - Okrug
    - Other
    - Postal Code
    - Prefecture
    - Province
    - Region
    - State
    - Territory
    - TV Region
    - Union Territory
    - University

### Non-targetable locations

> [!NOTE]
> **Note:** Some countries or territories are not targetable, but may appear in reports based on the user's area of interest or physical location.

Due to advertising regulations and laws of the People's Republic of China, you
may be asked to provide certificates and licenses if you are advertising certain
categories of products in China. You do not need to submit certificates until
after your account has been activated. Once your account is active, you will be
provided with information on how to submit certificates to Google.