private FeedAttribute GetGenericFeedAttribute( CombinedAsset <FeedAttribute> feedAsset, IDictionary <Type, ExternalSystemAttribute> externalSystems) { FeedAttribute genericFeedAttribute = null; if (feedAsset.AssetAttributes.Count() == 1) { FeedAttribute singleAttribute = feedAsset.AssetAttributes.Single(); if (singleAttribute.SourceSystem != null && singleAttribute.EntityTypes.Count() > 0) { this.ValidateExternalSystem( singleAttribute.SourceSystem, externalSystems); genericFeedAttribute = singleAttribute; } } if (genericFeedAttribute == null) { throw new InvalidOperationException(string.Format( Resources.InvalidGenericFeedAttribute, feedAsset.AssetType.FullName)); } return(genericFeedAttribute); }
private IEnumerable <FeedAttribute> GetFeedAttributes( Type assetType, Type entityType, FeedAttribute defaultAttribute, IDictionary <Type, FeedAttribute> entityTypeFeedAttributes) { var feedAttributes = new List <FeedAttribute>(); if (entityTypeFeedAttributes.TryGetValue( entityType, out FeedAttribute feedAttribute)) { feedAttributes.Add(feedAttribute); entityTypeFeedAttributes.Remove(entityType); } if (defaultAttribute != null) { feedAttributes.Add(defaultAttribute); } if (feedAttributes.Count == 0) { throw new InvalidOperationException(string.Format( Resources.NoFeedAttributeForEntityType, assetType.FullName, entityType.FullName)); } return(feedAttributes); }
/// <summary> /// Creates the feed for DSA page URLs. /// </summary> /// <param name="user">The AdWords User.</param> /// <returns>The feed details.</returns> private static DSAFeedDetails CreateFeed(AdWordsUser user) { using (FeedService feedService = (FeedService)user.GetService(AdWordsService.v201802.FeedService)) { // Create attributes. FeedAttribute urlAttribute = new FeedAttribute { type = FeedAttributeType.URL_LIST, name = "Page URL" }; FeedAttribute labelAttribute = new FeedAttribute { type = FeedAttributeType.STRING_LIST, name = "Label" }; // Create the feed. Feed sitelinksFeed = new Feed { name = "DSA Feed " + ExampleUtilities.GetRandomString(), attributes = new FeedAttribute[] { urlAttribute, labelAttribute }, origin = FeedOrigin.USER }; // Create operation. FeedOperation operation = new FeedOperation { operand = sitelinksFeed, @operator = Operator.ADD }; try { // Add the feed. FeedReturnValue result = feedService.mutate(new FeedOperation[] { operation }); Feed savedFeed = result.value[0]; return(new DSAFeedDetails { feedId = savedFeed.id, urlAttributeId = savedFeed.attributes[0].id, labelAttributeId = savedFeed.attributes[1].id, }); } catch (Exception e) { throw new System.ApplicationException("Failed to create DSA feed.", e); } } }
private static void createSitelinksFeed(AdWordsUser user, SitelinksDataHolder sitelinksData, string feedName) { // Get the FeedService. FeedService feedService = (FeedService)user.GetService(AdWordsService.v201702.FeedService); // Create attributes. FeedAttribute textAttribute = new FeedAttribute(); textAttribute.type = FeedAttributeType.STRING; textAttribute.name = "Link Text"; FeedAttribute finalUrlAttribute = new FeedAttribute(); finalUrlAttribute.type = FeedAttributeType.URL_LIST; finalUrlAttribute.name = "Link Final URLs"; FeedAttribute line2Attribute = new FeedAttribute(); line2Attribute.type = FeedAttributeType.STRING; line2Attribute.name = "Line 2"; FeedAttribute line3Attribute = new FeedAttribute(); line3Attribute.type = FeedAttributeType.STRING; line3Attribute.name = "Line 3"; // Create the feed. Feed sitelinksFeed = new Feed(); sitelinksFeed.name = feedName; sitelinksFeed.attributes = new FeedAttribute[] { textAttribute, finalUrlAttribute, line2Attribute, line3Attribute }; sitelinksFeed.origin = FeedOrigin.USER; // Create operation. FeedOperation operation = new FeedOperation(); operation.operand = sitelinksFeed; operation.@operator = Operator.ADD; // Add the feed. FeedReturnValue result = feedService.mutate(new FeedOperation[] { operation }); Feed savedFeed = result.value[0]; sitelinksData.FeedId = savedFeed.id; FeedAttribute[] savedAttributes = savedFeed.attributes; sitelinksData.LinkTextFeedAttributeId = savedAttributes[0].id; sitelinksData.LinkFinalUrlFeedAttributeId = savedAttributes[1].id; sitelinksData.Line2FeedAttributeId = savedAttributes[2].id; sitelinksData.Line3FeedAttributeId = savedAttributes[3].id; Console.WriteLine("Feed with name {0} and ID {1} with linkTextAttributeId {2}, " + "linkFinalUrlAttributeId {3}, line2AttributeId {4} and line3AttributeId {5} " + "was created.", savedFeed.name, savedFeed.id, savedAttributes[0].id, savedAttributes[1].id, savedAttributes[2].id, savedAttributes[3].id); }
/// <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 CustomizersDataHolder, populated with the feed ID and /// attribute IDs of the new Feed.</returns> private static CustomizersDataHolder CreateCustomizerFeed(AdWordsUser user, string feedName) { // Get the FeedService. FeedService feedService = (FeedService)user.GetService(AdWordsService.v201406.FeedService); Feed customizerFeed = new Feed(); customizerFeed.name = feedName; FeedAttribute nameAttribute = new FeedAttribute(); nameAttribute.name = "Name"; nameAttribute.type = FeedAttributeType.STRING; FeedAttribute priceAttribute = new FeedAttribute(); priceAttribute.name = "Price"; priceAttribute.type = FeedAttributeType.STRING; FeedAttribute dateAttribute = new FeedAttribute(); dateAttribute.name = "Date"; dateAttribute.type = FeedAttributeType.DATE_TIME; customizerFeed.attributes = new FeedAttribute[] { nameAttribute, priceAttribute, dateAttribute }; FeedOperation feedOperation = new FeedOperation(); feedOperation.operand = customizerFeed; feedOperation.@operator = (Operator.ADD); Feed addedFeed = feedService.mutate(new FeedOperation[] { feedOperation }).value[0]; CustomizersDataHolder dataHolder = new CustomizersDataHolder(); dataHolder.FeedId = addedFeed.id; dataHolder.NameFeedAttributeId = addedFeed.attributes[0].id; dataHolder.PriceFeedAttributeId = addedFeed.attributes[1].id; dataHolder.DateFeedAttributeId = addedFeed.attributes[2].id; Console.WriteLine("Feed with name '{0}' and ID {1} was added with:\n", addedFeed.name, dataHolder.FeedId); Console.WriteLine(" Name attribute ID {0}\n", dataHolder.NameFeedAttributeId); Console.WriteLine(" Price attribute ID {0}\n", dataHolder.PriceFeedAttributeId); Console.WriteLine(" Date attribute ID {0}\n", dataHolder.DateFeedAttributeId); return(dataHolder); }
/// <summary> /// Creates a feed to be used for ad customization. /// </summary> /// <param name="client">The Google Ads client.</param> /// <param name="customerId">The Google Ads customer ID for which the call is made.</param> /// <param name="feedName">Name of the feed.</param> /// <returns>The resource name of the newly created feed.</returns> private string CreateAdCustomizerFeed(GoogleAdsClient client, long customerId, string feedName) { // Get the FeedServiceClient. FeedServiceClient feedService = client.GetService(Services.V4.FeedService); // Creates three feed attributes: a name, a price and a date. The attribute names // are arbitrary choices and will be used as placeholders in the ad text fields. FeedAttribute nameAttribute = new FeedAttribute() { Name = "Name", Type = FeedAttributeType.String }; FeedAttribute priceAttribute = new FeedAttribute() { Name = "Price", Type = FeedAttributeType.String }; FeedAttribute dateAttribute = new FeedAttribute() { Name = "Date", Type = FeedAttributeType.DateTime }; Feed adCustomizerFeed = new Feed() { Name = feedName, Attributes = { nameAttribute, priceAttribute, dateAttribute } }; FeedOperation feedOperation = new FeedOperation() { Create = adCustomizerFeed }; MutateFeedsResponse response = feedService.MutateFeeds(customerId.ToString(), new[] { feedOperation }); string feedResourceName = response.Results[0].ResourceName; Console.WriteLine($"Added feed with resource name '{feedResourceName}'."); return(feedResourceName); }
/// <summary> /// Creates the feed. /// </summary> /// <param name="client">The Google Ads client.</param> /// <param name="customerId">The Google Ads customer ID for which the call is made.</param> /// <returns>The resource name of the newly created feed.</returns> private string CreateFeed(GoogleAdsClient client, long customerId) { // Get the FeedService. FeedServiceClient feedService = client.GetService(Services.V3.FeedService); // Create a URL attribute. FeedAttribute urlAttribute = new FeedAttribute() { Type = FeedAttributeType.UrlList, Name = "Page URL" }; // Create a label attribute. FeedAttribute labelAttribute = new FeedAttribute() { Type = FeedAttributeType.StringList, Name = "Label" }; // Create the feed. Feed feed = new Feed() { Name = "DSA Feed #" + ExampleUtilities.GetRandomString(), Attributes = { urlAttribute, labelAttribute } }; // Create the operation. FeedOperation operation = new FeedOperation() { Create = feed }; // Add the feed. MutateFeedsResponse response = feedService.MutateFeeds(customerId.ToString(), new[] { operation }); string feedResourceName = response.Results[0].ResourceName; // Display the result. Console.WriteLine($"Feed with resource name '{feedResourceName}' was created."); return(feedResourceName); }
private static void createSiteLinksFeed( AdWordsUser user, SiteLinksDataHolder siteLinksData) { // Get the FeedService. FeedService feedService = (FeedService)user.GetService(AdWordsService.v201409.FeedService); // Create attributes. FeedAttribute textAttribute = new FeedAttribute(); textAttribute.type = FeedAttributeType.STRING; textAttribute.name = "Link Text"; FeedAttribute urlAttribute = new FeedAttribute(); urlAttribute.type = FeedAttributeType.URL; urlAttribute.name = "Link URL"; // Create the feed. Feed siteLinksFeed = new Feed(); siteLinksFeed.name = "Feed For Site Links"; siteLinksFeed.attributes = new FeedAttribute[] { textAttribute, urlAttribute }; siteLinksFeed.origin = FeedOrigin.USER; // Create operation. FeedOperation operation = new FeedOperation(); operation.operand = siteLinksFeed; operation.@operator = Operator.ADD; // Add the feed. FeedReturnValue result = feedService.mutate(new FeedOperation[] { operation }); Feed savedFeed = result.value[0]; siteLinksData.SiteLinksFeedId = savedFeed.id; FeedAttribute[] savedAttributes = savedFeed.attributes; siteLinksData.LinkTextFeedAttributeId = savedAttributes[0].id; siteLinksData.LinkUrlFeedAttributeId = savedAttributes[1].id; Console.WriteLine("Feed with name {0} and ID {1} with linkTextAttributeId {2}" + " and linkUrlAttributeId {3} was created.", savedFeed.name, savedFeed.id, savedAttributes[0].id, savedAttributes[1].id); }
private void ProcessGenericFeed( HashSet <Feed> feeds, CombinedAsset <FeedAttribute> feedAsset, IDictionary <Type, ExternalSystemAttribute> externalSystems, EntityTypeSuite entityTypes) { FeedAttribute genericFeedAttribute = this.GetGenericFeedAttribute(feedAsset, externalSystems); foreach (Type entityType in genericFeedAttribute.EntityTypes) { this.ValidateEntityType(entityType, entityTypes); this.AddFeed( feeds, new Feed( genericFeedAttribute.SourceSystem, entityType, feedAsset.AssetType, new[] { genericFeedAttribute })); } }
/// <summary> /// Creates the feed for DSA page URLs. /// </summary> /// <param name="user">The AdWords User.</param> /// <returns>The feed details.</returns> private static DSAFeedDetails CreateFeed(AdWordsUser user) { // Get the FeedService. FeedService feedService = (FeedService)user.GetService(AdWordsService.v201705.FeedService); // Create attributes. FeedAttribute urlAttribute = new FeedAttribute(); urlAttribute.type = FeedAttributeType.URL_LIST; urlAttribute.name = "Page URL"; FeedAttribute labelAttribute = new FeedAttribute(); labelAttribute.type = FeedAttributeType.STRING_LIST; labelAttribute.name = "Label"; // Create the feed. Feed sitelinksFeed = new Feed(); sitelinksFeed.name = "DSA Feed " + ExampleUtilities.GetRandomString(); sitelinksFeed.attributes = new FeedAttribute[] { urlAttribute, labelAttribute }; sitelinksFeed.origin = FeedOrigin.USER; // Create operation. FeedOperation operation = new FeedOperation(); operation.operand = sitelinksFeed; operation.@operator = Operator.ADD; // Add the feed. FeedReturnValue result = feedService.mutate(new FeedOperation[] { operation }); Feed savedFeed = result.value[0]; return(new DSAFeedDetails { feedId = savedFeed.id, urlAttributeId = savedFeed.attributes[0].id, labelAttributeId = savedFeed.attributes[1].id, }); }
private void ProcessNonGenericFeedAsset( HashSet <Feed> feeds, CombinedAsset <FeedAttribute> feedAsset, IDictionary <Type, ExternalSystemAttribute> externalSystems, EntityTypeSuite entityTypes) { FeedAttribute defaultAttribute = this.GetDefaultFeedAttribute(feedAsset); IDictionary <Type, FeedAttribute> entityTypeFeedAttributes = this.GetEntityTypeFeedAttributes(feedAsset); foreach (Type feedImplementation in this.GetInterfaceImplementations(feedAsset.AssetType, typeof(IFeed <>))) { Type entityType = this.ExtractEntityType(feedImplementation); this.ValidateEntityType(entityType, entityTypes); IEnumerable <FeedAttribute> feedAttributes = this.GetFeedAttributes( feedAsset.AssetType, entityType, defaultAttribute, entityTypeFeedAttributes); Type sourceSystem = this.GetFeedSourceSystem( feedAsset.AssetType, entityType, feedAttributes, externalSystems); this.AddFeed( feeds, new Feed( sourceSystem, entityType, feedAsset.AssetType, feedAttributes)); } this.VerifyEachEntityTypeHasMatchingInterfaceImplementation( feedAsset.AssetType, entityTypeFeedAttributes); }
/// <summary> /// Creates the feed. /// </summary> /// <param name="client">The Google Ads client.</param> /// <param name="customerId">The Google Ads customer ID for which the real estate feed is /// added.</param> /// <returns>Resource name of the newly created feed.</returns> private string CreateFeed(GoogleAdsClient client, long customerId) { // Get the FeedService. FeedServiceClient feedService = client.GetService(Services.V3.FeedService); // Creates a Listing ID attribute. FeedAttribute listingIdAttribute = new FeedAttribute() { Type = FeedAttributeType.String, Name = "Listing ID" }; // Creates a Listing Name attribute. FeedAttribute listingNameAttribute = new FeedAttribute() { Type = FeedAttributeType.String, Name = "Listing Name" }; // Creates a Final URLs attribute. FeedAttribute finalUrlsAttribute = new FeedAttribute() { Type = FeedAttributeType.UrlList, Name = "Final URLs" }; // Creates an Image URL attribute FeedAttribute imageUrlAttribute = new FeedAttribute() { Type = FeedAttributeType.Url, Name = "Image URL" }; // Creates a Contextual Keywords attribute FeedAttribute contextualKeywordsAttribute = new FeedAttribute() { Type = FeedAttributeType.StringList, Name = "Contextual Keywords" }; // Creates the feed. Feed feed = new Feed() { Name = "Real Estate Feed #" + ExampleUtilities.GetRandomString(), Attributes = { listingIdAttribute, listingNameAttribute, finalUrlsAttribute, imageUrlAttribute, contextualKeywordsAttribute } }; // Creates the operation. FeedOperation operation = new FeedOperation() { Create = feed }; // Adds the feed. MutateFeedsResponse response = feedService.MutateFeeds(customerId.ToString(), new[] { operation }); string feedResourceName = response.Results[0].ResourceName; // Displays the result. Console.WriteLine($"Feed with resource name '{feedResourceName}' was created."); return(feedResourceName); }
/// <summary> /// Creates the feed. /// </summary> /// <param name="client">The Google Ads client.</param> /// <param name="customerId">The Google Ads customer ID for which the flights feed is /// added.</param> /// <returns>Resource name of the newly created feed.</returns> private string CreateFeed(GoogleAdsClient client, long customerId) { // Get the FeedService. FeedServiceClient feedService = client.GetService(Services.V5.FeedService); // Creates a Flight Description attribute. FeedAttribute flightDescriptionAttribute = new FeedAttribute() { Type = FeedAttributeType.String, Name = "Flight Description" }; // Creates a Destination ID attribute. FeedAttribute destinationIdAttribute = new FeedAttribute() { Type = FeedAttributeType.String, Name = "Destination ID" }; // Creates a Flight Price attribute. FeedAttribute flightPriceAttribute = new FeedAttribute() { Type = FeedAttributeType.String, Name = "Flight Price" }; // Creates a Flight Sale Price attribute. FeedAttribute flightSalesPriceAttribute = new FeedAttribute() { Type = FeedAttributeType.String, Name = "Flight Sale Price" }; // Creates a Final URLs attribute. FeedAttribute finalUrlsAttribute = new FeedAttribute() { Type = FeedAttributeType.UrlList, Name = "Final URLs" }; // Creates the feed. Feed feed = new Feed() { Name = "Flights Feed #" + ExampleUtilities.GetRandomString(), Attributes = { flightDescriptionAttribute, destinationIdAttribute, flightPriceAttribute, flightSalesPriceAttribute, finalUrlsAttribute } }; // Creates the operation. FeedOperation operation = new FeedOperation() { Create = feed }; // Adds the feed. MutateFeedsResponse response = feedService.MutateFeeds(customerId.ToString(), new[] { operation }); string feedResourceName = response.Results[0].ResourceName; // Displays the result. Console.WriteLine($"Feed with resource name '{feedResourceName}' was created."); return(feedResourceName); }
private static void createSitelinksFeed(AdWordsUser user, SitelinksDataHolder sitelinksData, string feedName) { // Get the FeedService. FeedService feedService = (FeedService) user.GetService(AdWordsService.v201509.FeedService); // Create attributes. FeedAttribute textAttribute = new FeedAttribute(); textAttribute.type = FeedAttributeType.STRING; textAttribute.name = "Link Text"; FeedAttribute finalUrlAttribute = new FeedAttribute(); finalUrlAttribute.type = FeedAttributeType.URL_LIST; finalUrlAttribute.name = "Link URL"; // Create the feed. Feed sitelinksFeed = new Feed(); sitelinksFeed.name = feedName; sitelinksFeed.attributes = new FeedAttribute[] {textAttribute, finalUrlAttribute}; sitelinksFeed.origin = FeedOrigin.USER; // Create operation. FeedOperation operation = new FeedOperation(); operation.operand = sitelinksFeed; operation.@operator = Operator.ADD; // Add the feed. FeedReturnValue result = feedService.mutate(new FeedOperation[] {operation}); Feed savedFeed = result.value[0]; sitelinksData.FeedId = savedFeed.id; FeedAttribute[] savedAttributes = savedFeed.attributes; sitelinksData.LinkTextFeedAttributeId = savedAttributes[0].id; sitelinksData.LinkFinalUrlFeedAttributeId = savedAttributes[1].id; Console.WriteLine("Feed with name {0} and ID {1} with linkTextAttributeId {2}" + " and linkFinalUrlAttributeId {3} was created.", savedFeed.name, savedFeed.id, savedAttributes[0].id, savedAttributes[1].id); }