Reach customers near a location

Show specific offers or products to people that are close to a certain location using the Proximity Targeting rule. Proximity targeting allows you to set a radius around a location. For example, an airline can show a customized message promoting available flight deals to users that are near a specific airport.

To target a location, add a column to your feed that contains a list of canonical names from the Google Ads API (AdWords API) for the locations you want to target. When you set up the feed rules in your profile, you'll select Proximity Targeting, and set a radius around the location. You can choose one of the default radius settings or set a custom radius from a minimum of 1 km to a maximum of 2,000 km.

When the ad is served, the server will select matching feed content within that radius. If there's more than one match, feed rows will be selected in order from nearest to farthest.

Create your feed

  1. Start with a feed template. See this sample feed to use as a starting point.
  2. Fill out the feed. Learn more
  3. Add the geo-targeting column. Add a column to the feed to hold canonical names from the Google Ads API (AdWords API). Enter the appropriate geographic value for each row of content. Make sure to format values exactly as they appear in the Google Ads API (AdWords API). See formatting guidelines for more details. 
Because every row of the geo-targeting column must have a value, default rows shouldn't be used with proximity targeting. Instead of creating default rows, create one or more rows with broader geographic targeting to show to people who are outside the targeted geographic areas. 
For example, if you're targeting a list of airports in Canada, include a content row meant for anyone in Canada. This row will serve the Canada creative content outside of the airport areas.

Create your Studio profile

  1. Upload the feed to your Studio profile.
  2. Go to Step 2: Manage Data. In the Data types and filters section, select the appropriate field type for each of the columns in the feed. For the column containing canonical names, select Accurate geographic type.
    Setting data types - accurate geographic type
  3. In the Special fields section, find the "Proximity targeting" field. Select the column containing canonical names (the same column name from step 2).
  4. Go to Step 3: Manage Rules. Confirm that the rule type is set to "Proximity Targeting" and the Summary displays "Proximity targeting rule". Optimized is the only rotation type supported for proximity targeting.
  5. Click Manage to set the radius to target around each location in the feed.
    1. Select a radius
    2. (Optional) If you need more precise control, select Custom radius.
      1. Select your preferred units (kilometers or miles).
      2. Enter a distance greater than 1 mile (or 1 km) and less than 1,242 miles (or 2,000 km). Round to the nearest whole number (decimals are not allowed).
      3. Click OK.
  6. In Step 4: Generate Code, the dynamic code is generated. 
    1. If you're using Google Web Designer, this code is not needed, just connect your Studio profile to bind data in your creative
    2. If you're using another HTML editor, add the dynamic code into the creative files.
  7. Publish from Google Web Designer or upload your completed creative to Studio.
  8. Go to Step 5: Preview, select or enter a location to filter by, then click Apply. You can also choose a city or postal code within the defined radius and make sure the correct content is shown. For example, if one of your locations is Paris Charles de Gaulle Airport, add Roissy-en-France as a location, and you should see Charles de Gaulle airport content.
  9. Publish your profile.

Frequently asked questions

Are latitude and longitude coordinates supported?

No. Only canonical location names are supported at this time.

Can I randomly rotate creative content with proximity targeting?

Yes. To randomly rotate content, use dependent selection. The feed used in the proximity targeting rule is the parent feed. Create a child feed with the content you want to rotate, and use a controlling column in both parent and child feeds to select the content you want to rotate. 

In my test report, each location showed the same content despite multiple available content variations per location. What happened?

Optimized rotation will take a couple of weeks to kick in for proximity targeting campaigns (depending on number of impressions). In the beginning, you might see the same row for each location selected in ad serving and reporting. After the creatives have served for a while, the server starts selecting random rows. Later, the server selects the row with the best performance.

If you want randomization to appear sooner, use dependent selection with two feeds. For example, use a parent feed with proximity targeting to select an airport. Then, use a child feed with a column that matches that airport to select random content for that airport.

Is it possible to change the radius based on the feed row?

No, it is not possible. The radius is always the same for the entire feed. To target certain locations with a different radius, use a separate feed for each radius.

Can I mix proximity targeting with other dynamic rules?

Proximity targeting cannot be mixed with other rules on one feed. You can't filter by proximity and then again by another column. However, you can use dependent selection to apply rules to child feeds.

What types of locations are available when using canonical names? Can I use postal codes? Cities? Airports?

The  Google Ads API (AdWords API) supports more than 20 different area types, including postal codes, cities, airports, universities, DMA regions, and more. See the full list of target types for more.

Which row does the system choose if there are two locations within the person's radius?

The system chooses the closest location. For example, if a person is 50 km away from Airport 1 and 80 km from Airport 2, they'll see the content for Airport 1.

Why are some locations reported as “Unknown”?

Sometimes an exact location isn't available, and in this case, the location will be appear as “Unknown” in reports.
Was this helpful?
How can we improve it?