예제 #1
0
        /// <summary>
        /// Creates feed items with the values to use in ad customizations for each
        /// ad group in <code>adGroupIds</code>.
        /// </summary>
        /// <param name="user">The AdWords user.</param>
        /// <param name="adGroupIds">IDs of adgroups to which ad customizations are
        /// made.</param>
        /// <param name="adCustomizerFeed">The ad customizer feed.</param>
        private static void CreateCustomizerFeedItems(AdWordsUser user, long[] adGroupIds,
                                                      AdCustomizerFeed adCustomizerFeed)
        {
            using (FeedItemService feedItemService =
                       (FeedItemService)user.GetService(AdWordsService.v201809.FeedItemService))
            {
                List <FeedItemOperation> feedItemOperations = new List <FeedItemOperation>();

                DateTime marsDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
                feedItemOperations.Add(CreateFeedItemAddOperation(adCustomizerFeed, "Mars",
                                                                  "$1234.56", marsDate.ToString("yyyyMMdd HHmmss")));

                DateTime venusDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 15);
                feedItemOperations.Add(CreateFeedItemAddOperation(adCustomizerFeed, "Venus",
                                                                  "$1450.00", venusDate.ToString("yyyyMMdd HHmmss")));

                FeedItemReturnValue feedItemReturnValue =
                    feedItemService.mutate(feedItemOperations.ToArray());

                foreach (FeedItem addedFeedItem in feedItemReturnValue.value)
                {
                    Console.WriteLine("Added feed item with ID {0}", addedFeedItem.feedItemId);
                }

                // Add feed item targeting to restrict the feed item to specific ad groups.
                RestrictFeedItemToAdGroup(user, feedItemReturnValue.value[0], adGroupIds[0]);
                RestrictFeedItemToAdGroup(user, feedItemReturnValue.value[1], adGroupIds[1]);
            }
        }
예제 #2
0
        /// <summary>
        /// Runs the code example.
        /// </summary>
        /// <param name="user">The AdWords user.</param>
        /// <param name="adGroupId1">Id of the first adgroup to which ads with ad
        /// customizers are added.</param>
        /// <param name="adGroupId2">Id of the second adgroup to which ads with ad
        /// customizers are added.</param>
        /// <param name="feedName">Name of the feed to be created.</param>
        public void Run(AdWordsUser user, long adGroupId1, long adGroupId2, string feedName)
        {
            try
            {
                // Create a customizer feed. One feed per account can be used for all ads.
                AdCustomizerFeed adCustomizerFeed = CreateCustomizerFeed(user, feedName);

                // Add feed items containing the values we'd like to place in ads.
                CreateCustomizerFeedItems(user, new long[]
                {
                    adGroupId1,
                    adGroupId2
                }, adCustomizerFeed);

                // All set! We can now create ads with customizations.
                CreateAdsWithCustomizations(user, new long[]
                {
                    adGroupId1,
                    adGroupId2
                }, feedName);
            }
            catch (Exception e)
            {
                throw new System.ApplicationException("Failed to add ad customizers.", e);
            }
        }
        /// <summary>
        /// Creates FeedItems with the values to use in ad customizations for each
        /// ad group in <code>adGroupIds</code>.
        /// </summary>
        /// <param name="user">The AdWords user.</param>
        /// <param name="adGroupIds">IDs of adgroups to which ad customizations are
        /// made.</param>
        /// <param name="adCustomizerFeed">The ad customizer feed.</param>
        private static void CreateCustomizerFeedItems(AdWordsUser user, long[] adGroupIds,
                                                      AdCustomizerFeed adCustomizerFeed)
        {
            // Get the FeedItemService.
            FeedItemService feedItemService = (FeedItemService)user.GetService(
                AdWordsService.v201605.FeedItemService);

            List <FeedItemOperation> feedItemOperations = new List <FeedItemOperation>();

            DateTime marsDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);

            feedItemOperations.Add(CreateFeedItemAddOperation(adCustomizerFeed, "Mars", "$1234.56",
                                                              marsDate.ToString("yyyyMMdd HHmmss"), adGroupIds[0]));

            DateTime venusDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 15);

            feedItemOperations.Add(CreateFeedItemAddOperation(adCustomizerFeed, "Venus", "$1450.00",
                                                              venusDate.ToString("yyyyMMdd HHmmss"), adGroupIds[1]));

            FeedItemReturnValue feedItemReturnValue = feedItemService.mutate(
                feedItemOperations.ToArray());

            foreach (FeedItem addedFeedItem in feedItemReturnValue.value)
            {
                Console.WriteLine("Added feed item with ID {0}", addedFeedItem.feedItemId);
            }
        }
예제 #4
0
        /// <summary>
        /// Creates a new Feed for ad customizers.
        /// </summary>
        /// <param name="user">The AdWords user.</param>
        /// <param name="feedName">Name of the feed to be created.</param>
        /// <returns>A new Ad customizer feed.</returns>
        private static AdCustomizerFeed CreateCustomizerFeed(AdWordsUser user, string feedName)
        {
            using (AdCustomizerFeedService adCustomizerFeedService =
                       (AdCustomizerFeedService)user.GetService(AdWordsService.v201809
                                                                .AdCustomizerFeedService))
            {
                AdCustomizerFeed feed = new AdCustomizerFeed()
                {
                    feedName       = feedName,
                    feedAttributes = new AdCustomizerFeedAttribute[]
                    {
                        new AdCustomizerFeedAttribute()
                        {
                            name = "Name",
                            type = AdCustomizerFeedAttributeType.STRING
                        },
                        new AdCustomizerFeedAttribute()
                        {
                            name = "Price",
                            type = AdCustomizerFeedAttributeType.PRICE
                        },
                        new AdCustomizerFeedAttribute()
                        {
                            name = "Date",
                            type = AdCustomizerFeedAttributeType.DATE_TIME
                        },
                    }
                };

                AdCustomizerFeedOperation feedOperation = new AdCustomizerFeedOperation()
                {
                    operand   = feed,
                    @operator = (Operator.ADD)
                };

                AdCustomizerFeed addedFeed = adCustomizerFeedService.mutate(
                    new AdCustomizerFeedOperation[]
                {
                    feedOperation
                }).value[0];

                Console.WriteLine(
                    "Created ad customizer feed with ID = {0} and name = '{1}' and " +
                    "attributes: ", addedFeed.feedId, addedFeed.feedName);

                foreach (AdCustomizerFeedAttribute feedAttribute in addedFeed.feedAttributes)
                {
                    Console.WriteLine("  ID: {0}, name: '{1}', type: {2}", feedAttribute.id,
                                      feedAttribute.name, feedAttribute.type);
                }

                return(addedFeed);
            }
        }
        /// <summary>
        /// Runs the code example.
        /// </summary>
        /// <param name="user">The AdWords user.</param>
        /// <param name="adGroupId1">Id of the first adgroup to which ads with ad
        /// customizers are added.</param>
        /// <param name="adGroupId2">Id of the second adgroup to which ads with ad
        /// customizers are added.</param>
        /// <param name="feedName">Name of the feed to be created.</param>
        public void Run(AdWordsUser user, long adGroupId1, long adGroupId2, string feedName)
        {
            // Create a customizer feed. One feed per account can be used for all ads.
            AdCustomizerFeed adCustomizerFeed = CreateCustomizerFeed(user, feedName);

            // Add feed items containing the values we'd like to place in ads.
            CreateCustomizerFeedItems(user, new long[] { adGroupId1, adGroupId2 }, adCustomizerFeed);

            // All set! We can now create ads with customizations.
            CreateAdsWithCustomizations(user, new long[] { adGroupId1, adGroupId2 }, feedName);
        }
        /// <summary>
        /// Creates a FeedItemOperation that will create a FeedItem with the
        /// specified values and ad group target when sent to
        /// FeedItemService.mutate.
        /// </summary>
        /// <param name="adCustomizerFeed">The ad customizer feed.</param>
        /// <param name="name">The value for the name attribute of the FeedItem.
        /// </param>
        /// <param name="price">The value for the price attribute of the FeedItem.
        /// </param>
        /// <param name="date">The value for the date attribute of the FeedItem.
        /// </param>
        /// <param name="adGroupId">The ID of the ad group to target with the
        /// FeedItem.</param>
        /// <returns>A new FeedItemOperation for adding a FeedItem.</returns>
        private static FeedItemOperation CreateFeedItemAddOperation(
            AdCustomizerFeed adCustomizerFeed, string name, string price, string date,
            long adGroupId)
        {
            FeedItem feedItem = new FeedItem()
            {
                feedId = adCustomizerFeed.feedId,

                // FeedAttributes appear in the same order as they were created
                // - Name, Price, Date. See CreateCustomizerFeed method for details.
                attributeValues = new FeedItemAttributeValue[]
                {
                    new FeedItemAttributeValue()
                    {
                        feedAttributeId = adCustomizerFeed.feedAttributes[0].id,
                        stringValue     = name
                    },

                    new FeedItemAttributeValue()
                    {
                        feedAttributeId = adCustomizerFeed.feedAttributes[1].id,
                        stringValue     = price
                    },

                    new FeedItemAttributeValue()
                    {
                        feedAttributeId = adCustomizerFeed.feedAttributes[2].id,
                        stringValue     = date
                    }
                },

                adGroupTargeting = new FeedItemAdGroupTargeting()
                {
                    TargetingAdGroupId = adGroupId
                }
            };

            return(new FeedItemOperation()
            {
                operand = feedItem,
                @operator = Operator.ADD
            });
        }
        /// <summary>
        /// Creates a new Feed for ad customizers.
        /// </summary>
        /// <param name="user">The AdWords user.</param>
        /// <param name="feedName">Name of the feed to be created.</param>
        /// <returns>A new Ad customizer feed.</returns>
        private static AdCustomizerFeed CreateCustomizerFeed(AdWordsUser user, string feedName)
        {
            AdCustomizerFeedService adCustomizerFeedService = (AdCustomizerFeedService)user.GetService(
                AdWordsService.v201605.AdCustomizerFeedService);

            AdCustomizerFeed feed = new AdCustomizerFeed()
            {
                feedName       = feedName,
                feedAttributes = new AdCustomizerFeedAttribute[] {
                    new AdCustomizerFeedAttribute()
                    {
                        name = "Name",
                        type = AdCustomizerFeedAttributeType.STRING
                    },
                    new AdCustomizerFeedAttribute()
                    {
                        name = "Price",
                        type = AdCustomizerFeedAttributeType.PRICE
                    },
                    new AdCustomizerFeedAttribute()
                    {
                        name = "Date",
                        type = AdCustomizerFeedAttributeType.DATE_TIME
                    },
                }
            };

            AdCustomizerFeedOperation feedOperation = new AdCustomizerFeedOperation();

            feedOperation.operand   = feed;
            feedOperation.@operator = (Operator.ADD);

            AdCustomizerFeed addedFeed = adCustomizerFeedService.mutate(
                new AdCustomizerFeedOperation[] { feedOperation }).value[0];

            Console.WriteLine("Created ad customizer feed with ID = {0} and name = '{1}'.",
                              addedFeed.feedId, addedFeed.feedName);

            return(addedFeed);
        }
        /// <summary>
        /// Creates a FeedItemOperation that will create a FeedItem with the
        /// specified values and ad group target when sent to
        /// FeedItemService.mutate.
        /// </summary>
        /// <param name="adCustomizerFeed">The ad customizer feed.</param>
        /// <param name="name">The value for the name attribute of the FeedItem.
        /// </param>
        /// <param name="price">The value for the price attribute of the FeedItem.
        /// </param>
        /// <param name="date">The value for the date attribute of the FeedItem.
        /// </param>
        /// <param name="adGroupId">The ID of the ad group to target with the
        /// FeedItem.</param>
        /// <returns>A new FeedItemOperation for adding a FeedItem.</returns>
        private static FeedItemOperation CreateFeedItemAddOperation(AdCustomizerFeed adCustomizerFeed,
                                                                    string name, string price, String date, long adGroupId)
        {
            FeedItem feedItem = new FeedItem();

            feedItem.feedId = adCustomizerFeed.feedId;
            List <FeedItemAttributeValue> attributeValues = new List <FeedItemAttributeValue>();

            // FeedAttributes appear in the same order as they were created
            // - Name, Price, Date. See CreateCustomizerFeed method for details.
            FeedItemAttributeValue nameAttributeValue = new FeedItemAttributeValue();

            nameAttributeValue.feedAttributeId = adCustomizerFeed.feedAttributes[0].id;
            nameAttributeValue.stringValue     = name;
            attributeValues.Add(nameAttributeValue);

            FeedItemAttributeValue priceAttributeValue = new FeedItemAttributeValue();

            priceAttributeValue.feedAttributeId = adCustomizerFeed.feedAttributes[1].id;
            priceAttributeValue.stringValue     = price;
            attributeValues.Add(priceAttributeValue);

            FeedItemAttributeValue dateAttributeValue = new FeedItemAttributeValue();

            dateAttributeValue.feedAttributeId = adCustomizerFeed.feedAttributes[2].id;
            dateAttributeValue.stringValue     = date;
            attributeValues.Add(dateAttributeValue);

            feedItem.attributeValues = attributeValues.ToArray();

            feedItem.adGroupTargeting = new FeedItemAdGroupTargeting();
            feedItem.adGroupTargeting.TargetingAdGroupId = adGroupId;

            FeedItemOperation feedItemOperation = new FeedItemOperation();

            feedItemOperation.operand   = feedItem;
            feedItemOperation.@operator = Operator.ADD;

            return(feedItemOperation);
        }
        /// <summary>
        /// Creates a FeedItemOperation that will create a FeedItem with the
        /// specified values and ad group target when sent to
        /// FeedItemService.mutate.
        /// </summary>
        /// <param name="adCustomizerFeed">The ad customizer feed.</param>
        /// <param name="name">The value for the name attribute of the FeedItem.
        /// </param>
        /// <param name="price">The value for the price attribute of the FeedItem.
        /// </param>
        /// <param name="date">The value for the date attribute of the FeedItem.
        /// </param>
        /// <param name="adGroupId">The ID of the ad group to target with the
        /// FeedItem.</param>
        /// <returns>A new FeedItemOperation for adding a FeedItem.</returns>
        private static FeedItemOperation CreateFeedItemAddOperation(AdCustomizerFeed adCustomizerFeed,
        string name, string price, String date, long adGroupId)
        {
            FeedItem feedItem = new FeedItem();
              feedItem.feedId = adCustomizerFeed.feedId;
              List<FeedItemAttributeValue> attributeValues = new List<FeedItemAttributeValue>();

              // FeedAttributes appear in the same order as they were created
              // - Name, Price, Date. See CreateCustomizerFeed method for details.
              FeedItemAttributeValue nameAttributeValue = new FeedItemAttributeValue();
              nameAttributeValue.feedAttributeId = adCustomizerFeed.feedAttributes[0].id;
              nameAttributeValue.stringValue = name;
              attributeValues.Add(nameAttributeValue);

              FeedItemAttributeValue priceAttributeValue = new FeedItemAttributeValue();
              priceAttributeValue.feedAttributeId = adCustomizerFeed.feedAttributes[1].id;
              priceAttributeValue.stringValue = price;
              attributeValues.Add(priceAttributeValue);

              FeedItemAttributeValue dateAttributeValue = new FeedItemAttributeValue();
              dateAttributeValue.feedAttributeId = adCustomizerFeed.feedAttributes[2].id;
              dateAttributeValue.stringValue = date;
              attributeValues.Add(dateAttributeValue);

              feedItem.attributeValues = attributeValues.ToArray();

              feedItem.adGroupTargeting = new FeedItemAdGroupTargeting();
              feedItem.adGroupTargeting.TargetingAdGroupId = adGroupId;

              FeedItemOperation feedItemOperation = new FeedItemOperation();
              feedItemOperation.operand = feedItem;
              feedItemOperation.@operator = Operator.ADD;

              return feedItemOperation;
        }
        /// <summary>
        /// Creates FeedItems with the values to use in ad customizations for each
        /// ad group in <code>adGroupIds</code>.
        /// </summary>
        /// <param name="user">The AdWords user.</param>
        /// <param name="adGroupIds">IDs of adgroups to which ad customizations are
        /// made.</param>
        /// <param name="adCustomizerFeed">The ad customizer feed.</param>
        private static void CreateCustomizerFeedItems(AdWordsUser user, long[] adGroupIds,
        AdCustomizerFeed adCustomizerFeed)
        {
            // Get the FeedItemService.
              FeedItemService feedItemService = (FeedItemService) user.GetService(
              AdWordsService.v201601.FeedItemService);

              List<FeedItemOperation> feedItemOperations = new List<FeedItemOperation>();

              DateTime marsDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
              feedItemOperations.Add(CreateFeedItemAddOperation(adCustomizerFeed, "Mars", "$1234.56",
              marsDate.ToString("yyyyMMdd HHmmss"), adGroupIds[0]));

              DateTime venusDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 15);
              feedItemOperations.Add(CreateFeedItemAddOperation(adCustomizerFeed, "Venus", "$1450.00",
              venusDate.ToString("yyyyMMdd HHmmss"), adGroupIds[1]));

              FeedItemReturnValue feedItemReturnValue = feedItemService.mutate(
              feedItemOperations.ToArray());

              foreach (FeedItem addedFeedItem in feedItemReturnValue.value) {
            Console.WriteLine("Added feed item with ID {0}", addedFeedItem.feedItemId);
              }
        }
        /// <summary>
        /// Creates a new Feed for ad customizers.
        /// </summary>
        /// <param name="user">The AdWords user.</param>
        /// <param name="feedName">Name of the feed to be created.</param>
        /// <returns>A new Ad customizer feed.</returns>
        private static AdCustomizerFeed CreateCustomizerFeed(AdWordsUser user, string feedName)
        {
            AdCustomizerFeedService adCustomizerFeedService = (AdCustomizerFeedService) user.GetService(
              AdWordsService.v201601.AdCustomizerFeedService);

              AdCustomizerFeed feed = new AdCustomizerFeed() {
            feedName = feedName,
            feedAttributes = new AdCustomizerFeedAttribute[] {
              new AdCustomizerFeedAttribute() {
            name = "Name",
            type = AdCustomizerFeedAttributeType.STRING
              },
              new AdCustomizerFeedAttribute() {
            name = "Price",
            type = AdCustomizerFeedAttributeType.PRICE
              },
              new AdCustomizerFeedAttribute() {
            name = "Date",
            type = AdCustomizerFeedAttributeType.DATE_TIME
              },
            }
              };

              AdCustomizerFeedOperation feedOperation = new AdCustomizerFeedOperation();
              feedOperation.operand = feed;
              feedOperation.@operator = (Operator.ADD);

              AdCustomizerFeed addedFeed = adCustomizerFeedService.mutate(
              new AdCustomizerFeedOperation[] { feedOperation }).value[0];

              Console.WriteLine("Created ad customizer feed with ID = {0} and name = '{1}'.",
              addedFeed.feedId, addedFeed.feedName);

              return addedFeed;
        }