Proximity

Add a proximity target to a campaign

function addProximityTargets(campaignName) {
  const campaignIterator = AdsApp.campaigns()
      .withCondition(`campaign.name = "${campaignName}"`)
      .get();
  if (!campaignIterator.hasNext()) {
    throw new Error(`No campaign with name "${campaignName}" found`);
  }

  const campaign = campaignIterator.next();

  // Add a proximity target of 20 kilometers around Google New York office.
  // To obtain coordinates of a given point on Google Maps,
  // see https://support.google.com/maps/answer/18539
  campaign.addProximity(40.741144, -74.002086, 20, 'KILOMETERS');

  // You could also add proximity by an address. However, we don't validate
  // if the address you put matches the given latitude and longitude. It has
  // no functionality except to change what shows up in the Campaign
  // Management interface.

  // Add a proximity target of 10 kilometers around Google Mountain View
  // office.
  campaign.addProximity({
    latitude: 37.423021,
    longitude: -122.083739,
    radius: 10,
    radiusUnits: 'KILOMETERS',
    bidModifier: 0.75,
    address: {
      streetAddress: '1600 Amphitheatre Parkway',
      cityName: 'Mountain View',
      provinceName: 'California',
      provinceCode: 'CA',
      postalCode: '94043',
      countryCode: 'US'
    }
  });
}

Get the list of all proximity targets for a campaign

function getTargetedProximities(campaignName) {
  const campaignIterator = AdsApp.campaigns()
      .withCondition(`campaign.name = "${campaignName}"`)
      .get();
  if (!campaignIterator.hasNext()) {
    throw new Error(`No campaign with name "${campaignName}" found`);
  }

  const campaign = campaignIterator.next();
  return campaign.targeting().targetedProximities().get();
}