/// <inheritdoc /> public int GetTotalPageViews(PageViewsRequest request) { if (!File.Exists(request.ServiceAccountCredentialFile)) { throw new ArgumentException($"Invalid credential file path {request.ServiceAccountCredentialFile}", nameof(request.ServiceAccountCredentialFile)); } GoogleCredential credential = GoogleCredential .FromFile(request.ServiceAccountCredentialFile) .CreateScoped(AnalyticsReportingService.Scope.AnalyticsReadonly); BaseClientService.Initializer initializer = new BaseClientService.Initializer { HttpClientInitializer = credential }; GetReportsResponse response = GetAnalyticsResponse(initializer, request); return(response.Reports.FirstOrDefault()?.Data.Totals.Sum(t => int.Parse(t.Values.FirstOrDefault() ?? "0")) ?? 0); }
/// <summary> /// Gets the report request. /// </summary> /// <param name="request">The request.</param> /// <returns> /// New instance of <see cref="ReportRequest"/> object. /// </returns> public static ReportRequest GetReportRequest(PageViewsRequest request) => new ReportRequest { DateRanges = new List <DateRange> { new DateRange { StartDate = request.StartDateString, EndDate = request.EndDateString } }, Metrics = new List <Metric> { new Metric { Expression = Constants.PageVisitsExpression, FormattingType = Constants.MetricsFormattingType } }, ViewId = request.ViewId };
private GetReportsResponse GetAnalyticsResponse(BaseClientService.Initializer initializer, PageViewsRequest request) { AnalyticsReportingService service = new AnalyticsReportingService(initializer); GetReportsRequest reportRequest = new GetReportsRequest { ReportRequests = new List <ReportRequest> { RequestBuilders.GetReportRequest(request) } }; ReportsResource.BatchGetRequest batchGetRequest = service.Reports.BatchGet(reportRequest); if (exceptionHandler != null) { batchGetRequest.AddExceptionHandler(exceptionHandler); } if (unsuccessfulResponseHandler != null) { batchGetRequest.AddUnsuccessfulResponseHandler(unsuccessfulResponseHandler); } return(batchGetRequest.Execute()); }