예제 #1
0
        /// <summary>
        /// Creates a test campaign for running further tests.
        /// </summary>
        /// <param name="user">The AdWords user.</param>
        /// <param name="biddingStrategy">The bidding strategy to be used.</param>
        /// <returns>The campaign id.</returns>
        public long CreateCampaign(AdWordsUser user, AdvertisingChannelType channelType,
                                   BiddingStrategyType strategyType)
        {
            CampaignService campaignService =
                (CampaignService)user.GetService(AdWordsService.v201406.CampaignService);

            BiddingStrategyConfiguration biddingConfig = new BiddingStrategyConfiguration();

            biddingConfig.biddingStrategyType = strategyType;

            CampaignOperation campaignOperation = new CampaignOperation();

            campaignOperation.@operator    = Operator.ADD;
            campaignOperation.operand      = new Campaign();
            campaignOperation.operand.name =
                string.Format("Campaign {0}", DateTime.Now.ToString("yyyy-M-d H:m:s.ffffff"));
            campaignOperation.operand.advertisingChannelType = channelType;
            campaignOperation.operand.status = CampaignStatus.PAUSED;
            campaignOperation.operand.biddingStrategyConfiguration = biddingConfig;
            campaignOperation.operand.budget                    = new Budget();
            campaignOperation.operand.budget.budgetId           = CreateBudget(user);
            campaignOperation.operand.budget.period             = BudgetBudgetPeriod.DAILY;
            campaignOperation.operand.budget.amount             = new Money();
            campaignOperation.operand.budget.amount.microAmount = 100000000;
            campaignOperation.operand.budget.deliveryMethod     = BudgetBudgetDeliveryMethod.STANDARD;

            List <Setting>      settings     = new List <Setting>();
            KeywordMatchSetting matchSetting = new KeywordMatchSetting();

            matchSetting.optIn = true;
            settings.Add(matchSetting);

            if (channelType == AdvertisingChannelType.SHOPPING)
            {
                // All Shopping campaigns need a ShoppingSetting.
                ShoppingSetting shoppingSetting = new ShoppingSetting();
                shoppingSetting.salesCountry     = "US";
                shoppingSetting.campaignPriority = 0;
                shoppingSetting.merchantId       = (user.Config as AdWordsAppConfig).MerchantCenterId;

                settings.Add(shoppingSetting);
            }
            campaignOperation.operand.settings = settings.ToArray();

            CampaignReturnValue retVal =
                campaignService.mutate(new CampaignOperation[] { campaignOperation });

            return(retVal.value[0].id);
        }
        /// <summary>
        /// Creates the shopping campaign.
        /// </summary>
        /// <param name="budgetId">The budget id.</param>
        /// <param name="merchantId">The Merchant Center id.</param>
        /// <param name="campaignService">The CampaignService instance.</param>
        /// <returns>The Shopping campaign.</returns>
        private static Campaign CreateCampaign(long budgetId, long merchantId,
                                               CampaignService campaignService)
        {
            // Create campaign.
            Campaign campaign = new Campaign();

            campaign.name = "Shopping campaign #" + ExampleUtilities.GetRandomString();
            // The advertisingChannelType is what makes this a Shopping campaign.
            campaign.advertisingChannelType = AdvertisingChannelType.SHOPPING;

            // Set shared budget (required).
            campaign.budget          = new Budget();
            campaign.budget.budgetId = budgetId;

            // Set bidding strategy (required).
            BiddingStrategyConfiguration biddingStrategyConfiguration =
                new BiddingStrategyConfiguration();

            biddingStrategyConfiguration.biddingStrategyType = BiddingStrategyType.MANUAL_CPC;

            campaign.biddingStrategyConfiguration = biddingStrategyConfiguration;

            // Set keyword matching setting (required).
            KeywordMatchSetting keywordMatchSetting = new KeywordMatchSetting();

            keywordMatchSetting.optIn = false;

            // All Shopping campaigns need a ShoppingSetting.
            ShoppingSetting shoppingSetting = new ShoppingSetting();

            shoppingSetting.salesCountry     = "US";
            shoppingSetting.campaignPriority = 0;
            shoppingSetting.merchantId       = merchantId;
            campaign.settings = new Setting[] { keywordMatchSetting, shoppingSetting };

            // Create operation.
            CampaignOperation campaignOperation = new CampaignOperation();

            campaignOperation.operand   = campaign;
            campaignOperation.@operator = Operator.ADD;

            // Make the mutate request.
            CampaignReturnValue retval = campaignService.mutate(
                new CampaignOperation[] { campaignOperation });

            return(retval.value[0]);
        }
예제 #3
0
        /// <summary>
        /// Creates the campaign with a shared bidding strategy.
        /// </summary>
        /// <param name="campaignService">The campaign service.</param>
        /// <param name="name">The campaign name.</param>
        /// <param name="biddingStrategyId">The bidding strategy id.</param>
        /// <param name="sharedBudgetId">The shared budget id.</param>
        /// <returns>The campaign object.</returns>
        private Campaign CreateCampaignWithBiddingStrategy(CampaignService campaignService, string name,
                                                           long biddingStrategyId, long sharedBudgetId)
        {
            // Create campaign.
            Campaign campaign = new Campaign();

            campaign.name = name;
            campaign.advertisingChannelType = AdvertisingChannelType.SEARCH;

            // Set the budget.
            campaign.budget          = new Budget();
            campaign.budget.budgetId = sharedBudgetId;

            // Set bidding strategy (required).
            BiddingStrategyConfiguration biddingStrategyConfiguration =
                new BiddingStrategyConfiguration();

            biddingStrategyConfiguration.biddingStrategyId = biddingStrategyId;

            campaign.biddingStrategyConfiguration = biddingStrategyConfiguration;

            // Set keyword matching setting (required).
            KeywordMatchSetting keywordMatchSetting = new KeywordMatchSetting();

            keywordMatchSetting.optIn = true;
            campaign.settings         = new Setting[] { keywordMatchSetting };

            // Set network targeting (recommended).
            NetworkSetting networkSetting = new NetworkSetting();

            networkSetting.targetGoogleSearch   = true;
            networkSetting.targetSearchNetwork  = true;
            networkSetting.targetContentNetwork = true;
            campaign.networkSetting             = networkSetting;

            // Create operation.
            CampaignOperation operation = new CampaignOperation();

            operation.operand   = campaign;
            operation.@operator = Operator.ADD;

            return(campaignService.mutate(new CampaignOperation[] { operation }).value[0]);
        }
예제 #4
0
        /// <summary>
        /// Runs the code example.
        /// </summary>
        /// <param name="user">The AdWords user.</param>
        public void Run(AdWordsUser user)
        {
            // Get the CampaignService.
            BudgetService budgetService =
                (BudgetService)user.GetService(AdWordsService.v201402.BudgetService);

            // Get the CampaignService.
            CampaignService campaignService =
                (CampaignService)user.GetService(AdWordsService.v201402.CampaignService);

            // Create the campaign budget.
            Budget budget = new Budget();

            budget.name               = "Interplanetary Cruise Budget #" + ExampleUtilities.GetRandomString();
            budget.period             = BudgetBudgetPeriod.DAILY;
            budget.deliveryMethod     = BudgetBudgetDeliveryMethod.STANDARD;
            budget.amount             = new Money();
            budget.amount.microAmount = 500000;

            BudgetOperation budgetOperation = new BudgetOperation();

            budgetOperation.@operator = Operator.ADD;
            budgetOperation.operand   = budget;

            try {
                BudgetReturnValue budgetRetval = budgetService.mutate(new BudgetOperation[] { budgetOperation });
                budget = budgetRetval.value[0];
            } catch (Exception ex) {
                throw new System.ApplicationException("Failed to add shared budget.", ex);
            }

            List <CampaignOperation> operations = new List <CampaignOperation>();

            for (int i = 0; i < NUM_ITEMS; i++)
            {
                // Create the campaign.
                Campaign campaign = new Campaign();
                campaign.name   = "Interplanetary Cruise #" + ExampleUtilities.GetRandomString();
                campaign.status = CampaignStatus.PAUSED;
                campaign.advertisingChannelType = AdvertisingChannelType.SEARCH;

                BiddingStrategyConfiguration biddingConfig = new BiddingStrategyConfiguration();
                biddingConfig.biddingStrategyType = BiddingStrategyType.MANUAL_CPM;

                // Optional: also provide matching bidding scheme.
                biddingConfig.biddingScheme = new ManualCpmBiddingScheme();

                campaign.biddingStrategyConfiguration = biddingConfig;

                // Set the campaign budget.
                campaign.budget          = new Budget();
                campaign.budget.budgetId = budget.budgetId;

                // Set targetContentNetwork true. Other network targeting is not available
                // for Ad Exchange Buyers.
                campaign.networkSetting = new NetworkSetting();
                campaign.networkSetting.targetGoogleSearch         = false;
                campaign.networkSetting.targetSearchNetwork        = false;
                campaign.networkSetting.targetContentNetwork       = true;
                campaign.networkSetting.targetPartnerSearchNetwork = false;

                // Enable campaign for Real-time bidding.
                RealTimeBiddingSetting rtbSetting = new RealTimeBiddingSetting();
                rtbSetting.optIn = true;

                // Set the campaign settings for near-exact and near-phrase matches.
                KeywordMatchSetting keywordSetting = new KeywordMatchSetting();
                keywordSetting.optIn = false;

                campaign.settings = new Setting[] { rtbSetting, keywordSetting };

                // Optional: Set the start date.
                campaign.startDate = DateTime.Now.AddDays(1).ToString("yyyyMMdd");

                // Optional: Set the end date.
                campaign.endDate = DateTime.Now.AddYears(1).ToString("yyyyMMdd");

                // Optional: Set the campaign ad serving optimization status.
                campaign.adServingOptimizationStatus = AdServingOptimizationStatus.ROTATE;

                // Optional: Set the frequency cap.
                FrequencyCap frequencyCap = new FrequencyCap();
                frequencyCap.impressions = 5;
                frequencyCap.level       = Level.ADGROUP;
                frequencyCap.timeUnit    = TimeUnit.DAY;
                campaign.frequencyCap    = frequencyCap;

                // Create the operation.
                CampaignOperation operation = new CampaignOperation();
                operation.@operator = Operator.ADD;
                operation.operand   = campaign;

                operations.Add(operation);
            }

            try {
                // Add the campaign.
                CampaignReturnValue retVal = campaignService.mutate(operations.ToArray());

                // Display the results.
                if (retVal != null && retVal.value != null && retVal.value.Length > 0)
                {
                    foreach (Campaign newCampaign in retVal.value)
                    {
                        Console.WriteLine("Campaign with name = '{0}' and id = '{1}' was added.",
                                          newCampaign.name, newCampaign.id);
                    }
                }
                else
                {
                    Console.WriteLine("No campaigns were added.");
                }
            } catch (Exception ex) {
                throw new System.ApplicationException("Failed to add campaigns.", ex);
            }
        }