/// <summary> /// Runs the code example. /// </summary> /// <param name="user">The AdWords user.</param> /// <param name="adId">Id of the ad for which the location extension is /// overridden.</param> /// <param name="locationExtensionId">Id of the location extension to be /// overridden.</param> public void Run(AdWordsUser user, long adId, long locationExtensionId) { // Get the AdExtensionOverrideService. AdExtensionOverrideService adExtensionOverrideService = (AdExtensionOverrideService) user.GetService(AdWordsService.v201306. AdExtensionOverrideService); // Create the address. Address address = new Address(); address.streetAddress = "1600 Amphitheatre Parkway"; address.cityName = "Mountain View"; address.provinceCode = "CA"; address.postalCode = "94043"; address.countryCode = "US"; // Get the GeoLocationService. GeoLocationService geoService = (GeoLocationService) user.GetService(AdWordsService.v201306.GeoLocationService); GeoLocationSelector selector = new GeoLocationSelector(); selector.addresses = new Address[] {address}; // Get the geo location for the address. GeoLocation location = geoService.get(selector)[0]; // Create the location extension. LocationExtension extension = new LocationExtension(); extension.id = locationExtensionId; extension.address = location.address; extension.geoPoint = location.geoPoint; extension.encodedLocation = location.encodedLocation; extension.source = LocationExtensionSource.ADWORDS_FRONTEND; // Optional: Set the company name. extension.companyName = "ACME Inc."; // Optional: Set the phone number. extension.phoneNumber = "(650) 253-0000"; // Optional: Set image and icon media id. // extension.imageMediaId = ...; // extension.iconMediaId = ...; AdExtensionOverride locationExtensionOverride = new AdExtensionOverride(); locationExtensionOverride.adExtension = extension; locationExtensionOverride.adId = adId; // Optional: Set the override info. OverrideInfo overrideInfo = new OverrideInfo(); overrideInfo.Item = new LocationOverrideInfo(); overrideInfo.Item.radius = 5; overrideInfo.Item.radiusUnits = LocationOverrideInfoRadiusUnits.MILES; locationExtensionOverride.overrideInfo = overrideInfo; // Create the operation. AdExtensionOverrideOperation operation = new AdExtensionOverrideOperation(); operation.@operator = Operator.ADD; operation.operand = locationExtensionOverride; try { // Create the location extension override. AdExtensionOverrideReturnValue retVal = adExtensionOverrideService.mutate( new AdExtensionOverrideOperation[] {operation}); // Display the results. if (retVal != null && retVal.value != null && retVal.value.Length > 0) { AdExtensionOverride adExtensionOverride = retVal.value[0]; Console.WriteLine("Overrode location extension with id = \"{0}\" in Ad id = \"{1}\"", adExtensionOverride.adExtension.id, adExtensionOverride.adId); } else { Console.WriteLine("No location extensions were overridden."); } } catch (Exception ex) { throw new System.ApplicationException("Failed to override location extension.", ex); } }
/// <summary> /// Creates an ad extension override for running further tests. /// </summary> /// <param name="user">The AdWords user.</param> /// <param name="campaignAdExtensionId">The campaign ad extension id to be /// overridden.</param> /// <param name="adId">The ad for which the ad extension should be /// overridden.</param> /// <param name="location">The overridden address.</param> /// <returns>The override id.</returns> public long CreateLocationExtensionOverride(AdWordsUser user, long campaignAdExtensionId, long adId, GeoLocation location) { AdExtensionOverrideService adExtensionOverrideService = (AdExtensionOverrideService)user.GetService( AdWordsService.v201306.AdExtensionOverrideService); AdExtensionOverrideOperation operation = new AdExtensionOverrideOperation(); operation.@operator = Operator.ADD; operation.operand = new AdExtensionOverride(); operation.operand.adId = adId; LocationExtension locationExtension = new LocationExtension(); locationExtension.id = campaignAdExtensionId; // 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; // Optional: Apply this override within 20 kms. operation.operand.overrideInfo = new OverrideInfo(); operation.operand.overrideInfo.Item = new LocationOverrideInfo(); operation.operand.overrideInfo.Item.radius = 20; operation.operand.overrideInfo.Item.radiusUnits = LocationOverrideInfoRadiusUnits.KILOMETERS; operation.operand.adExtension = locationExtension; AdExtensionOverrideReturnValue retVal = adExtensionOverrideService.mutate( new AdExtensionOverrideOperation[] {operation}); return retVal.value[0].adExtension.id; }