/// <summary> /// Creates the extension setting fo a list of feed items. /// </summary> /// <param name="user">The user for which extension settings are created. /// </param> /// <param name="feedItems">The list of all feed items.</param> /// <param name="campaignId">ID of the campaign to which extension settings /// are added.</param> /// <param name="feedItemIds">IDs of the feed items for which extension /// settings should be created.</param> /// <param name="platformRestrictions">The platform restrictions for the /// extension setting.</param> private static void CreateExtensionSetting(AdWordsUser user, Dictionary<long, SiteLinkFromFeed> feedItems, long campaignId, List<long> feedItemIds, ExtensionSettingPlatform platformRestrictions) { CampaignExtensionSetting extensionSetting = new CampaignExtensionSetting() { campaignId = campaignId, extensionType = FeedType.SITELINK, extensionSetting = new ExtensionSetting() { } }; List<ExtensionFeedItem> extensionFeedItems = new List<ExtensionFeedItem>(); foreach (long feedItemId in feedItemIds) { SiteLinkFromFeed feedItem = feedItems[feedItemId]; SitelinkFeedItem newFeedItem = new SitelinkFeedItem() { sitelinkText = feedItem.Text, sitelinkUrl = feedItem.Url, sitelinkFinalUrls = feedItem.FinalUrls, sitelinkFinalMobileUrls = feedItem.FinalMobileUrls, sitelinkTrackingUrlTemplate = feedItem.TrackingUrlTemplate, sitelinkLine2 = feedItem.Line2, sitelinkLine3 = feedItem.Line3, scheduling = feedItem.Scheduling }; extensionFeedItems.Add(newFeedItem); } extensionSetting.extensionSetting.extensions = extensionFeedItems.ToArray(); extensionSetting.extensionSetting.platformRestrictions = platformRestrictions; extensionSetting.extensionType = FeedType.SITELINK; CampaignExtensionSettingService campaignExtensionSettingService = (CampaignExtensionSettingService) user.GetService( AdWordsService.v201506.CampaignExtensionSettingService); CampaignExtensionSettingOperation operation = new CampaignExtensionSettingOperation() { operand = extensionSetting, @operator = Operator.ADD }; campaignExtensionSettingService.mutate(new CampaignExtensionSettingOperation[] { operation }); return; }