Exemple #1
0
        /// <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.v201402.
                                                            CampaignAdExtensionService);

            CampaignAdExtensionOperation operation = new CampaignAdExtensionOperation();

            operation.@operator = Operator.ADD;

            CampaignAdExtension extension = new CampaignAdExtension();

            extension.campaignId = campaignId;
            extension.status     = CampaignAdExtensionStatus.ACTIVE;

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