private void BindAgeAndGender(DateTime startDate, DateTime endDate) { var param = new GoogleAnalyticsSearchParams { IsStageSite = true, FromDate = startDate, ToDate = endDate, GoogleAnalyticsDimensions = new List <Dimension> { GoogleAnalyticsDimensions.AgeDimension, GoogleAnalyticsDimensions.GenderDimension }, ViewId = GoogleAnalyticsViewId.DayAxeAllWebsiteDataStage, LoginEmailAddress = "*****@*****.**" }; var ageAndGenderResult = GoogleAnalyticsHelper.GetData(param); var female = ageAndGenderResult.Where(x => string.Join(",", x.Dimensions).Contains("female")).ToList(); var male = ageAndGenderResult.Except(female).ToList(); DemographicsMale = string.Format("[{0}]", string.Join(",", male.Select(x => x.Values.First()))); DemographicsFemale = string.Format("[{0}]", string.Join(",", female.Select(x => string.Format("-{0}", x.Values.First())))); AgeAndGenderCategories = string.Format("[{0}]", string.Join(",", male.Select(x => string.Format("'{0}'", x.Dimensions[0])))); }
public static List <GoogleAnalyticsSearchResult> GetData(GoogleAnalyticsSearchParams param) { var credential = GetCredential(param.IsStageSite); using (var svc = new AnalyticsReportingService( new BaseClientService.Initializer { HttpClientInitializer = credential, ApplicationName = "Google Analytics API Console", })) { var dateRange = new DateRange { StartDate = param.FromDate.ToString("yyyy-MM-dd"), EndDate = param.ToDate.ToString("yyyy-MM-dd") }; var sessions = new Metric { Expression = "ga:sessions", Alias = "Sessions" }; var reportRequest = new ReportRequest { DateRanges = new List <DateRange> { dateRange }, Dimensions = param.GoogleAnalyticsDimensions, Metrics = new List <Metric> { sessions }, ViewId = param.ViewId }; var getReportsRequest = new GetReportsRequest { ReportRequests = new List <ReportRequest> { reportRequest } }; var batchRequest = svc.Reports.BatchGet(getReportsRequest); var response = batchRequest.Execute(); var result = new List <GoogleAnalyticsSearchResult>(); if (response != null) { var report = response.Reports.FirstOrDefault(); if (report != null && report.Data != null && report.Data.Rows != null && report.Data.Rows.Any()) { foreach (var x in report.Data.Rows) { result.Add(new GoogleAnalyticsSearchResult { Dimensions = x.Dimensions, Values = x.Metrics.First().Values }); } } } return(result); } }