/// <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;
        }