Example #1
0
        private static void RestrictFeedItemToAdGroup(AdWordsUser user,
                                                      SitelinksDataHolder sitelinksData, long?adGroupId)
        {
            // Optional: Restrict the first feed item to only serve with ads for the
            // specified ad group ID.
            FeedItemAdGroupTarget adGroupTarget = new FeedItemAdGroupTarget()
            {
                feedId     = sitelinksData.FeedId,
                feedItemId = sitelinksData.FeedItemIds[0],
                adGroupId  = adGroupId.Value
            };

            using (FeedItemTargetService feedItemTargetService =
                       (FeedItemTargetService)user.GetService(
                           AdWordsService.v201809.FeedItemTargetService))
            {
                FeedItemTargetOperation operation = new FeedItemTargetOperation()
                {
                    @operator = Operator.ADD,
                    operand   = adGroupTarget
                };

                FeedItemTargetReturnValue retval = feedItemTargetService.mutate(
                    new FeedItemTargetOperation[]
                {
                    operation
                });
                FeedItemAdGroupTarget newAdGroupTarget = (FeedItemAdGroupTarget)retval.value[0];
                Console.WriteLine(
                    "Feed item target for feed ID {0} and feed item ID {1}" +
                    " was created to restrict serving to ad group ID {2}", newAdGroupTarget.feedId,
                    newAdGroupTarget.feedItemId, newAdGroupTarget.adGroupId);
            }
        }
        /// <summary>
        /// Restricts the feed items to work only with a specific ad group; this prevents the
        /// feed items from being used elsewhere and makes sure they are used only for
        /// customizing a specific ad group.
        /// </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="adGroupIds">The ad group IDs to bind the feed items to..</param>
        /// <param name="feedItemResourceNames">The resource names of the feed items.</param>
        private void CreateFeedItemTargets(GoogleAdsClient client,
                                           long customerId, long[] adGroupIds, List <string> feedItemResourceNames)
        {
            // Get the FeedItemTargetServiceClient.
            FeedItemTargetServiceClient feedItemTargetService =
                client.GetService(Services.V4.FeedItemTargetService);

            // Bind each feed item to a specific ad group to make sure it will only be used to
            // customize ads inside that ad group; using the feed item elsewhere will result
            // in an error.
            for (int i = 0; i < feedItemResourceNames.Count; i++)
            {
                string feedItemResourceName = feedItemResourceNames[i];
                long   adGroupId            = adGroupIds[i];

                FeedItemTarget feedItemTarget = new FeedItemTarget()
                {
                    AdGroup  = ResourceNames.AdGroup(customerId, adGroupId),
                    FeedItem = feedItemResourceName
                };

                FeedItemTargetOperation feedItemTargetOperation = new FeedItemTargetOperation()
                {
                    Create = feedItemTarget
                };

                MutateFeedItemTargetsResponse response =
                    feedItemTargetService.MutateFeedItemTargets(customerId.ToString(),
                                                                new[] { feedItemTargetOperation });

                string feedItemTargetResourceName = response.Results[0].ResourceName;
                Console.WriteLine($"Added feed item target with resource name " +
                                  $"'{response.Results[0].ResourceName}'.");
            }
        }
Example #3
0
        /// <summary>
        /// Restricts the feed item to an ad group.
        /// </summary>
        /// <param name="user">The user.</param>
        /// <param name="feedItem">The feed item.</param>
        /// <param name="adGroupId">The ad group ID.</param>
        private static void RestrictFeedItemToAdGroup(AdWordsUser user, FeedItem feedItem,
                                                      long?adGroupId)
        {
            FeedItemAdGroupTarget adGroupTarget = new FeedItemAdGroupTarget()
            {
                feedId     = feedItem.feedId,
                feedItemId = feedItem.feedItemId,
                adGroupId  = adGroupId.Value
            };

            using (FeedItemTargetService feedItemTargetService =
                       (FeedItemTargetService)user.GetService(
                           AdWordsService.v201802.FeedItemTargetService))
            {
                FeedItemTargetOperation operation = new FeedItemTargetOperation()
                {
                    @operator = Operator.ADD,
                    operand   = adGroupTarget
                };

                FeedItemTargetReturnValue retval = feedItemTargetService.mutate(
                    new FeedItemTargetOperation[]
                {
                    operation
                });
                FeedItemAdGroupTarget newAdGroupTarget = (FeedItemAdGroupTarget)retval.value[0];
                Console.WriteLine(
                    "Feed item target for feed ID {0} and feed item ID {1}" +
                    " was created to restrict serving to ad group ID {2}", newAdGroupTarget.feedId,
                    newAdGroupTarget.feedItemId, newAdGroupTarget.adGroupId);
            }
        }
        private static void RestrictFeedItemToGeoTarget(AdWordsUser user,
                                                        FeedItem feedItem, long locationId)
        {
            FeedItemCriterionTarget criterionTarget = new FeedItemCriterionTarget()
            {
                feedId     = feedItem.feedId,
                feedItemId = feedItem.feedItemId,
                // The IDs can be found in the documentation or retrieved with the
                // LocationCriterionService.
                criterion = new Location()
                {
                    id = locationId,
                }
            };

            using (FeedItemTargetService feedItemTargetService = (FeedItemTargetService)user.GetService(
                       AdWordsService.v201802.FeedItemTargetService)) {
                FeedItemTargetOperation operation = new FeedItemTargetOperation()
                {
                    @operator = Operator.ADD,
                    operand   = criterionTarget
                };


                FeedItemTargetReturnValue retval = feedItemTargetService.mutate(
                    new FeedItemTargetOperation[] { operation });
                FeedItemCriterionTarget newLocationTarget = (FeedItemCriterionTarget)retval.value[0];
                Console.WriteLine("Feed item target for feed ID {0} and feed item ID {1}" +
                                  " was created to restrict serving to location ID {2}",
                                  newLocationTarget.feedId, newLocationTarget.feedItemId,
                                  newLocationTarget.criterion.id);
            }
        }
 /// <summary>Snippet for MutateFeedItemTargets</summary>
 /// <remarks>
 /// This snippet has been automatically generated for illustrative purposes only.
 /// It may require modifications to work in your environment.
 /// </remarks>
 public void MutateFeedItemTargets()
 {
     // Create client
     FeedItemTargetServiceClient feedItemTargetServiceClient = FeedItemTargetServiceClient.Create();
     // Initialize request argument(s)
     string customerId = "";
     IEnumerable <FeedItemTargetOperation> operations = new FeedItemTargetOperation[]
     {
         new FeedItemTargetOperation(),
     };
     // Make the request
     MutateFeedItemTargetsResponse response = feedItemTargetServiceClient.MutateFeedItemTargets(customerId, operations);
 }
Example #6
0
        /// <summary>Snippet for MutateFeedItemTargetsAsync</summary>
        public async Task MutateFeedItemTargetsAsync()
        {
            // Snippet: MutateFeedItemTargetsAsync(string, IEnumerable<FeedItemTargetOperation>, CallSettings)
            // Additional: MutateFeedItemTargetsAsync(string, IEnumerable<FeedItemTargetOperation>, CancellationToken)
            // Create client
            FeedItemTargetServiceClient feedItemTargetServiceClient = await FeedItemTargetServiceClient.CreateAsync();

            // Initialize request argument(s)
            string customerId = "";
            IEnumerable <FeedItemTargetOperation> operations = new FeedItemTargetOperation[]
            {
                new FeedItemTargetOperation(),
            };
            // Make the request
            MutateFeedItemTargetsResponse response = await feedItemTargetServiceClient.MutateFeedItemTargetsAsync(customerId, operations);

            // End snippet
        }
Example #7
0
        /// <summary>
        /// Restrict a Feed Item to an AdGroup
        /// </summary>
        /// <param name="user">Adwords User Object</param>
        /// <param name="feedItem">Feed Item</param>
        /// <param name="adGroupId">Ad Group ID</param>
        /// <returns>FeedItemAdGroupTarget Object with Details of Updated SiteLink</returns>
        public FeedItemAdGroupTarget RestrictFeedItemToAdGroup(AdWordsUser user, FeedItem feedItem, long adGroupId)
        {
            FeedItemTargetService feedItemTargetService = (FeedItemTargetService)user.GetService(AdWordsService.v201809.FeedItemTargetService);

            FeedItemAdGroupTarget feedItemAdGroupTarget = new FeedItemAdGroupTarget();

            feedItemAdGroupTarget.feedId     = feedItem.feedId;
            feedItemAdGroupTarget.feedItemId = feedItem.feedItemId;
            feedItemAdGroupTarget.targetType = FeedItemTargetType.AD_GROUP;
            feedItemAdGroupTarget.adGroupId  = adGroupId;

            FeedItemTargetOperation feedItemTargetOperation = new FeedItemTargetOperation();

            feedItemTargetOperation.operand   = feedItemAdGroupTarget;
            feedItemTargetOperation.@operator = Operator.SET;

            try
            {
                FeedItemTargetReturnValue feedItemTargetReturnValue = feedItemTargetService.mutate(new[] { feedItemTargetOperation });
                if (feedItemTargetReturnValue.value != null && feedItemTargetReturnValue.value.Length > 0)
                {
                    FeedItemAdGroupTarget modifiedTargetItem = (FeedItemAdGroupTarget)feedItemTargetReturnValue.value[0];
                    Logger.Log(Logger.LogType.INFO, "Modification Successful for Feed(ID): " + feedItem.feedId + " with FeedItem(ID): " + feedItem.feedItemId);
                    return(modifiedTargetItem);
                }
                else
                {
                    Logger.Log(Logger.LogType.WARNING, "Nothing Modified for Feed(ID): " + feedItem.feedId + " with FeedItem(ID): " + feedItem.feedItemId);
                    return(null);
                }
            }
            catch (AdWordsApiException ex)
            {
                Logger.Log(Logger.LogType.EXCEPTION, Environment.NewLine + ex.Message + Environment.NewLine + ex.InnerException);
                return(null);
            }
        }
Example #8
0
        /// <summary>
        /// Targets the feed items to the given ad group.
        /// </summary>
        /// <param name="client">The Google Ads client.</param>
        /// <param name="customerId">The customer ID for which the call is made.</param>
        /// <param name="adGroupId">The ID of the Ad Group being targeted.</param>
        /// <param name="feedItem">The feed item that was added to the feed.</param>
        private void CreateAdGroupTargeting(GoogleAdsClient client, long customerId, long adGroupId,
                                            string feedItem)
        {
            FeedItemTargetServiceClient feedItemTargetServiceClient =
                client.GetService(Services.V4.FeedItemTargetService);

            FeedItemTarget feedItemTarget = new FeedItemTarget()
            {
                FeedItem = feedItem,
                AdGroup  = ResourceNames.AdGroup(customerId, adGroupId)
            };

            FeedItemTargetOperation operation = new FeedItemTargetOperation()
            {
                Create = feedItemTarget
            };

            MutateFeedItemTargetsResponse response = feedItemTargetServiceClient
                                                     .MutateFeedItemTargets(customerId.ToString(), new[] { operation });

            Console.WriteLine(
                $"Created feed item target '{response.Results.First().ResourceName}' " +
                $"for feed item '{feedItem}'.");
        }