Proximity

Add a proximity target to a campaign

function targetCampaignByProximity() {
  var campaignIterator = AdsApp.campaigns()
      .withCondition('Name = "INSERT_CAMPAIGN_NAME_HERE"')
      .get();
  if (campaignIterator.hasNext()) {
    var 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() {
  var campaignIterator = AdsApp.campaigns()
      .withCondition('Name = "INSERT_CAMPAIGN_NAME_HERE"')
      .get();
  if (campaignIterator.hasNext()) {
    var campaign = campaignIterator.next();
    var locationIterator = campaign.targeting().targetedProximities().get();

    while (locationIterator.hasNext()) {
      var targetedProximity = locationIterator.next();
      Logger.log(targetedProximity.getRadius() +
            targetedProximity.getRadiusUnits() +
            ' around (' +
            targetedProximity.getLatitude() +
            targetedProximity.getLongitude() + ')');
    }
  }
}