/// <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;
// 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];
}