0

在网上搜索一个只会检索一个数据结果的方法后,我开始失去希望,甚至可以。目前,我正在提取整个月的数据,将它们加在一起并除以当月的天数以检索平均值。或者,把它们全部加在一起。谷歌分析报告方法,检索单个值

比方说,我想只是一个从谷歌分析类似值:

PageViews

我只是想该值。这将如何完成?

下面是我的代码的每一天,检索和他们的页面访问量:

double totalPageViews = 0; 
     try 
     { 
      using (var stream = new FileStream(filepath, FileMode.Open, FileAccess.Read)) 
      { 
       string[] scopes = { AnalyticsReportingService.Scope.AnalyticsReadonly }; 
       var googleCredential = GoogleCredential.FromStream(stream); 
       credentials = googleCredential.CreateScoped(scopes); 
       var reportingService = new AnalyticsReportingService(
        new BaseClientService.Initializer 
        { 
         HttpClientInitializer = credentials 
        }); 
       var dateRange = new DateRange 
       { 
        StartDate = _startDate, 
        EndDate = _endDate 
       }; 
       var sessions = new Metric 
       { 
        Expression = "ga:pageviews", 
        Alias = "Sessions" 
       }; 
       var date = new Dimension { Name = "ga:date" }; 
       var reportRequest = new ReportRequest 
       { 
        DateRanges = new List<DateRange> { dateRange }, 
        Dimensions = new List<Dimension> { date }, 
        Metrics = new List<Metric> { sessions }, 
        ViewId = viewid 
       }; 
       var getReportsRequest = new GetReportsRequest 
       { 
        ReportRequests = new List<ReportRequest> { reportRequest } 
       }; 
       var batchRequest = reportingService.Reports.BatchGet(getReportsRequest); 
       var response = batchRequest.Execute(); 
       foreach (var x in response.Reports.First().Data.Rows) 
       { 
        Console.WriteLine("{0}: {1}", string.Join(", ", x.Dimensions), string.Join(", ", x.Metrics.First().Values)); 
        totalPageViews = totalPageViews + Convert.ToInt64(string.Join(", ", x.Metrics.First().Values)); 
       } 
       Console.WriteLine("Total Views from: 2017-08-01 to 2017-08-31: " + totalPageViews); 
       _totalPageViews = Convert.ToUInt64(totalPageViews); 
      } 

上述方法,其回报:

20170901: 193 
20170902: 40 
20170903: 48 
20170904: 188 
20170905: 269 
20170906: 236 
20170907: 244 
20170908: 233 
20170909: 37 
20170910: 43 
20170911: 207 
20170912: 205 
20170913: 179 
20170914: 222 
20170915: 130 
20170916: 25 
20170917: 66 
20170918: 229 
20170919: 209 
20170920: 224 
20170921: 205 
20170922: 164 
20170923: 29 
20170924: 33 
20170925: 92 
20170926: 210 
20170927: 208 
20170928: 167 
20170929: 166 
20170930: 56 
Total Views from: 2017-08-01 to 2017-08-31: 4557 

请注意:我知道的数字是相同。我知道这是正确的最终价值,但对于其他实体,如Avg Session Duration。再次,我知道这可以通过处理所有返回的数据来解析和编码以返回正确的结果,我只想知道是否有更简单的方法在日期之间检索一个实体。

非常感谢。

+0

不同的语言,但是这基本上是这个问题的重复:https://stackoverflow.com/questions/46573995/how-to-return-总页面浏览使用google分析sdk/46579774#46579774 –

回答

0

就我个人而言,我总是使用python SDK来查询数据,但我认为它基本相同。当查询数据时,您可以只需要一个范围内的1个度量标准,那样会有效。

后凭证和所有的东西...

service.data().ga().get(
     ids='ga:' + profile_id, 
     start_date='7daysAgo', 
     end_date='today', 
     metrics='ga:pageviews').execute() 
+0

它或多或少是相同的,虽然,你有某些方法,我无法访问..我真的很欣赏努力,虽然和谢谢为响应<3 – fluffy

+1

@fluffy尝试阅读更多的文档,如果你不限于C#告诉我,我会发送你的代码在Python中。 – Marco

+0

非常感谢您的帮助:)我会做一些阅读,目前我目前部分受限于c#。 – fluffy