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