Пример #1
0
        /// <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);
                }
            }
        }
Пример #2
0
        /// <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);
                }
            }
        }