/// <summary> /// Adds a web page criterion to target Dynamic Search Ads. /// </summary> /// <param name="user">The AdWords user.</param> /// <param name="adGroupId">The ad group ID.</param> /// <returns>The newly created web page criterion.</returns> private static BiddableAdGroupCriterion AddWebPageCriteria(AdWordsUser user, long adGroupId) { using (AdGroupCriterionService adGroupCriterionService = (AdGroupCriterionService)user.GetService( AdWordsService.v201705.AdGroupCriterionService)) { // Create a webpage criterion for special offers for mars cruise. WebpageParameter param = new WebpageParameter(); param.criterionName = "Special offers for mars"; WebpageCondition urlCondition = new WebpageCondition(); urlCondition.operand = WebpageConditionOperand.URL; urlCondition.argument = "/marscruise/special"; WebpageCondition titleCondition = new WebpageCondition(); titleCondition.operand = WebpageConditionOperand.PAGE_TITLE; titleCondition.argument = "Special Offer"; param.conditions = new WebpageCondition[] { urlCondition, titleCondition }; Webpage webpage = new Webpage(); webpage.parameter = param; // Create biddable ad group criterion. BiddableAdGroupCriterion biddableAdGroupCriterion = new BiddableAdGroupCriterion(); biddableAdGroupCriterion.adGroupId = adGroupId; biddableAdGroupCriterion.criterion = webpage; biddableAdGroupCriterion.userStatus = UserStatus.PAUSED; // Optional: set a custom bid. BiddingStrategyConfiguration biddingStrategyConfiguration = new BiddingStrategyConfiguration(); CpcBid bid = new CpcBid() { bid = new Money() { microAmount = 10000000L } }; biddingStrategyConfiguration.bids = new Bids[] { bid }; biddableAdGroupCriterion.biddingStrategyConfiguration = biddingStrategyConfiguration; // Create the operation. AdGroupCriterionOperation operation = new AdGroupCriterionOperation(); operation.@operator = Operator.ADD; operation.operand = biddableAdGroupCriterion; try { AdGroupCriterionReturnValue result = adGroupCriterionService.mutate( new AdGroupCriterionOperation[] { operation }); BiddableAdGroupCriterion newCriterion = (BiddableAdGroupCriterion)result.value[0]; Console.WriteLine("Webpage criterion with ID = '{0}' was added to ad group ID '{1}'.", newCriterion.criterion.id, newCriterion.adGroupId); return(newCriterion); } catch (Exception e) { throw new System.ApplicationException("Failed to create webpage criterion.", e); } } }
/// <summary> /// Set custom targeting for the page feed URLs based on a list of labels. /// </summary> /// <param name="user">The AdWords user.</param> /// <param name="adGroupId">Ad group ID.</param> /// <param name="labelName">The label name.</param> /// <returns>The newly created webpage criterion.</returns> private static BiddableAdGroupCriterion AddDsaTargeting(AdWordsUser user, long adGroupId, string labelName) { using (AdGroupCriterionService adGroupCriterionService = (AdGroupCriterionService)user.GetService( AdWordsService.v201802.AdGroupCriterionService)) { // Create a webpage criterion. Webpage webpage = new Webpage(); WebpageParameter parameter = new WebpageParameter(); parameter.criterionName = "Test criterion"; webpage.parameter = parameter; // Add a condition for label=specified_label_name. WebpageCondition condition = new WebpageCondition(); condition.operand = WebpageConditionOperand.CUSTOM_LABEL; condition.argument = labelName; parameter.conditions = new WebpageCondition[] { condition }; BiddableAdGroupCriterion criterion = new BiddableAdGroupCriterion(); criterion.adGroupId = adGroupId; criterion.criterion = webpage; // Set a custom bid for this criterion. BiddingStrategyConfiguration biddingStrategyConfiguration = new BiddingStrategyConfiguration(); biddingStrategyConfiguration.bids = new Bids[] { new CpcBid() { bid = new Money() { microAmount = 1500000 } } }; criterion.biddingStrategyConfiguration = biddingStrategyConfiguration; AdGroupCriterionOperation operation = new AdGroupCriterionOperation(); operation.operand = criterion; operation.@operator = Operator.ADD; try { AdGroupCriterionReturnValue retval = adGroupCriterionService.mutate( new AdGroupCriterionOperation[] { operation }); BiddableAdGroupCriterion newCriterion = (BiddableAdGroupCriterion)retval.value[0]; Console.WriteLine("Web page criterion with ID = {0} and status = {1} was created.", newCriterion.criterion.id, newCriterion.userStatus); return(newCriterion); } catch (Exception e) { throw new System.ApplicationException("Failed to create webpage criterion for " + "custom page feed label.", e); } } }