public void Run(AdWordsUser user)
{
// Get the BudgetService.
BudgetService budgetService =
(BudgetService) user.GetService(AdWordsService.v201306.BudgetService);
// Get the CampaignService.
CampaignService campaignService =
(CampaignService) user.GetService(AdWordsService.v201306.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;
BiddingStrategyConfiguration biddingConfig = new BiddingStrategyConfiguration();
biddingConfig.biddingStrategyType = BiddingStrategyType.MANUAL_CPC;
// Optional: provide BiddingScheme.
ManualCpcBiddingScheme biddingScheme = new ManualCpcBiddingScheme();
biddingScheme.enhancedCpcEnabled = true;
biddingConfig.biddingScheme = biddingScheme;
campaign.biddingStrategyConfiguration = biddingConfig;
campaign.budget = new Budget();
campaign.budget.budgetId = budget.budgetId;
// Set the campaign network options.
campaign.networkSetting = new NetworkSetting();
campaign.networkSetting.targetGoogleSearch = true;
campaign.networkSetting.targetSearchNetwork = true;
campaign.networkSetting.targetContentNetwork = false;
campaign.networkSetting.targetPartnerSearchNetwork = false;
// Set the campaign settings for Advanced location options.
GeoTargetTypeSetting geoSetting = new GeoTargetTypeSetting();
geoSetting.positiveGeoTargetType = GeoTargetTypeSettingPositiveGeoTargetType.DONT_CARE;
geoSetting.negativeGeoTargetType = GeoTargetTypeSettingNegativeGeoTargetType.DONT_CARE;
// Set the campaign settings for near-exact and near-phrase matches.
KeywordMatchSetting keywordSetting = new KeywordMatchSetting();
keywordSetting.optIn = false;
campaign.settings = new Setting[] {geoSetting, 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);
}
}