/// <summary>Snippet for MutateFeedsAsync</summary> /// <remarks> /// This snippet has been automatically generated for illustrative purposes only. /// It may require modifications to work in your environment. /// </remarks> public async Task MutateFeedsRequestObjectAsync() { // Create client FeedServiceClient feedServiceClient = await FeedServiceClient.CreateAsync(); // Initialize request argument(s) MutateFeedsRequest request = new MutateFeedsRequest { CustomerId = "", Operations = { new FeedOperation(), }, PartialFailure = false, ValidateOnly = false, ResponseContentType = ResponseContentTypeEnum.Types.ResponseContentType.Unspecified, }; // Make the request MutateFeedsResponse response = await feedServiceClient.MutateFeedsAsync(request); }
/// <summary>Snippet for MutateFeeds</summary> public void MutateFeedsRequestObject() { // Snippet: MutateFeeds(MutateFeedsRequest, CallSettings) // Create client FeedServiceClient feedServiceClient = FeedServiceClient.Create(); // Initialize request argument(s) MutateFeedsRequest request = new MutateFeedsRequest { CustomerId = "", Operations = { new FeedOperation(), }, PartialFailure = false, ValidateOnly = false, ResponseContentType = ResponseContentTypeEnum.Types.ResponseContentType.Unspecified, }; // Make the request MutateFeedsResponse response = feedServiceClient.MutateFeeds(request); // End snippet }
/// <summary> /// Creates a feed, which acts as a table to store data. /// </summary> /// <param name="client">The Google Ads client.</param> /// <param name="customerId">The customer ID for which the call is made.</param> /// <returns>The newly created feed.</returns> private Feed CreateFeed(GoogleAdsClient client, long customerId) { FeedServiceClient feedServiceClient = client.GetService(Services.V4.FeedService); GoogleAdsServiceClient googleAdsService = client.GetService( Services.V4.GoogleAdsService); Feed feed = new Feed() { Name = $"Sitelinks Feed {ExampleUtilities.GetRandomString()}", Origin = FeedOriginEnum.Types.FeedOrigin.User, // Specify the column name and data type. This is just raw data at this point, and // not yet linked to any particular purpose. The names are used to help us remember // what they are intended for later. Attributes = { CreateFeedAttribute("Link Text", FeedAttributeType.String), CreateFeedAttribute("Link Final URL", FeedAttributeType.UrlList), CreateFeedAttribute("Line 1", FeedAttributeType.String), CreateFeedAttribute("Line 2", FeedAttributeType.String) } }; FeedOperation operation = new FeedOperation() { Create = feed }; MutateFeedsResponse response = feedServiceClient.MutateFeeds( customerId.ToString(), new[] { operation }); string feedResourceName = response.Results[0].ResourceName; Console.WriteLine($"Created feed with resource name '{feedResourceName}'."); // After we create the feed, we need to fetch it so we can determine the // attribute IDs, which will be required when populating feed items. return(googleAdsService.Search( customerId.ToString(), $"SELECT feed.attributes FROM feed WHERE feed.resource_name = '{feedResourceName}'" ).First().Feed); }
/// <summary>Snippet for MutateFeedsAsync</summary> public async Task MutateFeedsRequestObjectAsync() { // Snippet: MutateFeedsAsync(MutateFeedsRequest, CallSettings) // Additional: MutateFeedsAsync(MutateFeedsRequest, CancellationToken) // Create client FeedServiceClient feedServiceClient = await FeedServiceClient.CreateAsync(); // Initialize request argument(s) MutateFeedsRequest request = new MutateFeedsRequest { CustomerId = "", Operations = { new FeedOperation(), }, PartialFailure = false, ValidateOnly = false, }; // Make the request MutateFeedsResponse response = await feedServiceClient.MutateFeedsAsync(request); // End snippet }
public async Task MutateFeedsAsync() { Mock <FeedService.FeedServiceClient> mockGrpcClient = new Mock <FeedService.FeedServiceClient>(MockBehavior.Strict); MutateFeedsRequest expectedRequest = new MutateFeedsRequest { CustomerId = "customerId-1772061412", Operations = { }, PartialFailure = true, ValidateOnly = false, }; MutateFeedsResponse expectedResponse = new MutateFeedsResponse(); mockGrpcClient.Setup(x => x.MutateFeedsAsync(expectedRequest, It.IsAny <CallOptions>())) .Returns(new Grpc.Core.AsyncUnaryCall <MutateFeedsResponse>(Task.FromResult(expectedResponse), null, null, null, null)); FeedServiceClient client = new FeedServiceClientImpl(mockGrpcClient.Object, null); string customerId = "customerId-1772061412"; IEnumerable <FeedOperation> operations = new List <FeedOperation>(); bool partialFailure = true; bool validateOnly = false; MutateFeedsResponse response = await client.MutateFeedsAsync(customerId, operations, partialFailure, validateOnly); Assert.AreEqual(expectedResponse, response); mockGrpcClient.VerifyAll(); }
/// <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); }
/// <summary> /// Creates the Google My Business feed. /// </summary> /// <param name="client">The Google Ads client.</param> /// <param name="customerId">The customer ID for which the call is made.</param> /// <param name="gmbEmailAddress">The Google My Business login email address.</param> /// <param name="businessAccountId">The Google My Business account ID.</param> /// <param name="gmbAccessToken">The OAuth2 access token for The Google My Business /// account.</param> /// <returns>ID of the newly created Google My Business feed.</returns> private static string CreateGMBFeed(GoogleAdsClient client, long customerId, string gmbEmailAddress, string businessAccountId, string gmbAccessToken) { // Optional: Delete all existing location extension feeds. This is an optional step, // and is required for this code example to run correctly more than once. // 1. Google Ads only allows one location extension feed per email address. // 2. A Google Ads account cannot have a location extension feed and an affiliate // location extension feed at the same time. DeleteLocationExtensionFeeds(client, customerId); // Get the FeedServiceClient. FeedServiceClient feedService = client.GetService(Services.V3.FeedService); // Creates a feed that will sync to the Google My Business account specified by // gmbEmailAddress. Do not add FeedAttributes to this object as Google Ads will add // them automatically because this will be a system generated feed. Feed gmbFeed = new Feed() { Name = "Google My Business feed #" + ExampleUtilities.GetRandomString(), PlacesLocationFeedData = new PlacesLocationFeedData() { EmailAddress = gmbEmailAddress, // If the EmailAddress is for a GMB manager instead of the GMB // account owner, then set BusinessAccountId to the Google+ Page ID of // a location for which the manager has access. This information is available // through the Google My Business API. See // https://developers.google.com/my-business/reference/rest/v4/accounts.locations#locationkey // for details. BusinessAccountId = string.IsNullOrEmpty(businessAccountId) ? null : businessAccountId, // Used to filter Google My Business listings by labels. If entries exist in // label_filters, only listings that have at least one of the labels set are // candidates to be synchronized into FeedItems. If no entries exist in // label_filters, then all listings are candidates for syncing. LabelFilters = { "Stores in New York" }, // Sets the authentication info to be able to connect Google Ads to the GMB // account. OauthInfo = new OAuthInfo() { HttpMethod = "GET", HttpRequestUrl = GOOGLE_ADS_SCOPE, HttpAuthorizationHeader = $"Bearer {gmbAccessToken}" }, }, // Since this feed's feed items will be managed by Google, // you must set its origin to GOOGLE. Origin = FeedOrigin.Google }; FeedOperation operation = new FeedOperation() { Create = gmbFeed }; // Adds the feed. MutateFeedsResponse response = feedService.MutateFeeds(customerId.ToString(), new[] { operation }); // Displays the results. string gmbFeedResourceName = response.Results[0].ResourceName; Console.WriteLine($"GMB feed created with resource name: {gmbFeedResourceName}."); return(gmbFeedResourceName); }