public void Run(AdWordsUser user, long campaignId)
{
// Get the CampaignAdExtensionService.
CampaignAdExtensionService campaignExtensionService =
(CampaignAdExtensionService) user.GetService(AdWordsService.v201306.
CampaignAdExtensionService);
// Add location 1: 1600 Amphitheatre Pkwy, Mountain View, US.
Address address1 = new Address();
address1.streetAddress = "1600 Amphitheatre Parkway";
address1.cityName = "Mountain View";
address1.provinceCode = "CA";
address1.postalCode = "94043";
address1.countryCode = "US";
// Add location 2: 38 avenue de l'Opéra, 75002 Paris, FR.
Address address2 = new Address();
address2.streetAddress = "38 avenue de l'Opéra";
address2.cityName = "Paris";
address2.postalCode = "75002";
address2.countryCode = "FR";
// Get the GeoLocationService.
GeoLocationService geoService =
(GeoLocationService) user.GetService(AdWordsService.v201306.GeoLocationService);
// Create the selector.
GeoLocationSelector selector = new GeoLocationSelector();
selector.addresses = new Address[] {address1, address2};
// Retrieve the locations.
GeoLocation[] locations = geoService.get(selector);
List<CampaignAdExtensionOperation> operations = new List<CampaignAdExtensionOperation>();
// Phone numbers for US and FR offices.
string[] phoneNumbers = new string[] {"(650) 253-0000", "(0)1 42 68 53 00"};
int index = 0;
// Create a location extension for each geo location returned by the
// server.
foreach (GeoLocation location in locations) {
LocationExtension locationExtension = new LocationExtension();
locationExtension.address = location.address;
locationExtension.geoPoint = location.geoPoint;
locationExtension.encodedLocation = location.encodedLocation;
locationExtension.source = LocationExtensionSource.ADWORDS_FRONTEND;
// Optional: Set the company name.
locationExtension.companyName = "ACME Inc.";
// Optional: Set the phone number.
locationExtension.phoneNumber = phoneNumbers[index];
index++;
CampaignAdExtension extension = new CampaignAdExtension();
extension.campaignId = campaignId;
extension.status = CampaignAdExtensionStatus.ACTIVE;
extension.adExtension = locationExtension;
CampaignAdExtensionOperation operation = new CampaignAdExtensionOperation();
operation.@operator = Operator.ADD;
operation.operand = extension;
operations.Add(operation);
}
try {
CampaignAdExtensionReturnValue retVal =
campaignExtensionService.mutate(operations.ToArray());
// Display the results.
if (retVal != null && retVal.value != null && retVal.value.Length > 0) {
foreach (CampaignAdExtension campaignExtension in retVal.value) {
Console.WriteLine("Created a location extension with id = \"{0}\" and " +
"status = \"{1}\"", campaignExtension.adExtension.id, campaignExtension.status);
}
} else {
Console.WriteLine("No location extensions were created.");
}
} catch (Exception ex) {
throw new System.ApplicationException("Failed to add location extension.", ex);
}
}