public static void TweakCampaignStats(GameContext gameContext, CampaignStat stat) { GetCampaignStats(gameContext).Stats[stat]++; }
/// <summary> /// Fetches the campaign stats. /// </summary> /// <param name="user">The user.</param> /// <param name="startDate">The start date.</param> /// <param name="endDate">The end date.</param> /// <returns>A dictionary, with key as campaign ID, and value as the /// campaign details.</returns> public Dictionary <long, LocalCampaign> FetchCampaignStats(AdWordsUser user, string startDate, string endDate) { Dictionary <long, LocalCampaign> campaigns = new Dictionary <long, LocalCampaign>(); CsvFile csvFile = DownloadCampaignPerformanceReport(user, startDate, endDate); for (int i = 0; i < csvFile.Records.Count; i++) { var row = csvFile.Records[i]; long campaignId = long.Parse(row[0]); string campaignName = row[1]; long clicks = long.Parse(row[2]); long impressions = long.Parse(row[3]); long cost = long.Parse(row[4]); string searchBudgetLostIS = row[5]; string contentBudgetLostIS = row[6]; string searchIS = row[7]; string contentIS = row[8]; long totalBudget = long.Parse(row[9]); string network = row[10]; string averageCpc = row[11]; LocalCampaign campaign = null; if (!campaigns.TryGetValue(campaignId, out campaign)) { campaigns[campaignId] = campaign = new LocalCampaign() { BudgetAmount = totalBudget, CampaignId = campaignId, CampaignName = campaignName }; } CampaignStat campaignStat = null; campaignStat = campaign.Stats; if (network == "Display Network") { campaignStat.DisplayStats.Clicks = clicks; campaignStat.DisplayStats.Impressions = impressions; campaignStat.DisplayStats.Cost = cost; campaignStat.DisplayStats.BudgetLostImpressionShare = NormalizeImpressionShare(contentBudgetLostIS); campaignStat.DisplayStats.AverageCpc = long.Parse(averageCpc); campaignStat.DisplayStats.ImpressionShare = NormalizeImpressionShare(contentIS); } else { campaignStat.SearchStats.Clicks = clicks; campaignStat.SearchStats.Impressions = impressions; campaignStat.SearchStats.Cost = cost; campaignStat.SearchStats.BudgetLostImpressionShare = NormalizeImpressionShare(searchBudgetLostIS); campaignStat.SearchStats.AverageCpc = long.Parse(averageCpc); campaignStat.SearchStats.ImpressionShare = NormalizeImpressionShare(searchIS); } } return(campaigns); }