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