Example #1
0
        /// <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);
        }
Example #2
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
 };
Example #3
0
        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());
        }