/// <summary> /// Creates a campaign ad extension for running further tests. /// </summary> /// <param name="user">The AdWords user.</param> /// <param name="campaignId">The campaign id for which extension is /// created.</param> /// <returns>The campaign ad extension id.</returns> public long CreateLocationExtension(AdWordsUser user, long campaignId) { CampaignAdExtensionService campaignExtensionService = (CampaignAdExtensionService) user.GetService(AdWordsService.v201406. CampaignAdExtensionService); CampaignAdExtensionOperation operation = new CampaignAdExtensionOperation(); operation.@operator = Operator.ADD; CampaignAdExtension extension = new CampaignAdExtension(); extension.campaignId = campaignId; extension.status = CampaignAdExtensionStatus.ENABLED; Address address = new Address(); address.streetAddress = "1600 Amphitheatre Pkwy, Mountain View"; address.countryCode = "US"; GeoLocation location = GetLocationForAddress(user, address); LocationExtension locationExtension = new LocationExtension(); // Note: Do not populate an address directly. Instead, use // GeoLocationService to obtain the location of an address, // and use the address as per the location it returns. locationExtension.address = location.address; locationExtension.geoPoint = location.geoPoint; locationExtension.encodedLocation = location.encodedLocation; locationExtension.source = LocationExtensionSource.ADWORDS_FRONTEND; extension.adExtension = locationExtension; operation.operand = extension; CampaignAdExtensionReturnValue retVal = campaignExtensionService.mutate(new CampaignAdExtensionOperation[] {operation}); return retVal.value[0].adExtension.id; }
/// <summary> /// Runs the code example. /// </summary> /// <param name="user">The AdWords user.</param> /// <param name="campaignId">Id of the campaign to which location /// extensions are added.</param> public void Run(AdWordsUser user, long campaignId) { // Get the CampaignAdExtensionService. CampaignAdExtensionService campaignExtensionService = (CampaignAdExtensionService) user.GetService(AdWordsService.v201406. 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.v201406.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.ENABLED; 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); } }