Google Analytics仅使用c#显示前一天的数据

时间:2017-02-27 06:21:34

标签: c# google-analytics google-api google-analytics-api google-api-dotnet-client

我有一个代码来获取Visual Studio中c#网站的Google Analytics数据,它显示或获取数据直到前一天,今天的数据怎么样?

以下是使用的代码。

     var today = DateTime.Now;
        var todayDate = today.ToString("yyyy-MM-dd");
        string date = "2012-01-01";
        DateTime dt = Convert.ToDateTime(date);
        var startDate = dt.ToString("yyyy-MM-dd");
        var websiteProfileID = "ga:XXXXXXXX";
        string serviceAccountEmail = "avgvghsbhbh@developer.gserviceaccount.com";
        var certificate = new X509Certificate2(@"D:/RCGA-fdrdrd250d7c.p12", "notasecret", X509KeyStorageFlags.Exportable);

        var credential = new ServiceAccountCredential(
        new ServiceAccountCredential.Initializer(serviceAccountEmail)
        {
            Scopes = new[] { AnalyticsService.Scope.Analytics }
        }.FromCertificate(certificate));

        // Create the service.
        var service = new AnalyticsService(new BaseClientService.Initializer()
        {
            HttpClientInitializer = credential,
            ApplicationName = "GoogleAnalytics",
        });

        var viewTraffic = service.Data.Ga.Get(websiteProfileID, startDate, todayDate, "ga:hits");
        viewTraffic.Dimensions = "ga:userType,ga:date";
        viewTraffic.MaxResults = 10000;
        viewTrafficData = viewTraffic.Execute();

        foreach (List<string> row in viewTrafficData.Rows)
        {
            foreach (string col in row)
            {
                TextWriter tsw = new StreamWriter(@"D:\Hello.txt", true);
                tsw.WriteLine(col);
                tsw.Close();
            }

        }

2 个答案:

答案 0 :(得分:1)

core reporting API V3确实支持“今天”一词,所以你今天就可以使用这个术语。

var todayDate = "today";
  

值必须匹配[0-9] {4} - [0-9] {2} - [0-9] {2} |今天|昨天| [0-9] +(daysAgo)。

但是,您需要记住有关Google Analytics数据的信息。数据尚未完成处理24-48小时。这意味着如果您要求今天的数据,那么明天或两天后再次检查数字可能会有所不同。

Google Analytics报告API V4会返回一个名为isgolden的参数,该参数会告诉您数据是否已完成处理。

  

isDataGolden boolean指示对此请求的响应是否为黄金。如果在稍后的时间点询问完全相同的请求将不会产生任何新结果,则数据是黄金的

但Google Analytics Reporting API v4没有日期范围的“今日”选项。您必须在脚本中创建自己的获取今天日期。 v4的样本here有更多样本here

答案 1 :(得分:0)

直到上周,我确实通过使用今天的日期作为&#39;结束&#39;从今天/现在获得V3 API的Google Analytics数据。 date(以及30天前的&#39; start&#39; date):网页浏览量/唯一身份访问者数据每10到20分钟更新一次。当我在我的网站上浏览新内容时(我在每个页面上显示网页浏览量/访客统计数据),我确实看到了浏览量的增加

自上周以来,我不再收到这些新数据,现在需要12-24个小时。在那些时间里,我的新页面(新闻报道)在前12个小时内只显示0。

这可能是API中的一个小问题,因为Google Analytics网站上的所有其他报告中都提供了最近的数据(除了Realtime标签)。此时我可以看到当前时间前15分钟的数据。

但是,它也可能与他们的新服务“360 Analytics&#39; (付费),已于2天前(3月1日)发布,并提供实时&#39;数据。此产品发布的时间和我的API调用不再返回新数据可能表明了一项战略举措。我试图联系Google Analytics小组,但没有得到任何有关数据不再新鲜的回应。如果是这种情况,如果谷歌积极地传达这一点,那将是礼貌的,因为它会导致V3 API的回归。

2017年3月5日更新:从今天上午开始,我再次收到Google Analytics V3 API的最新(新)数据,以获取与今天相关的数据。也许您可以尝试重新运行现有代码,看看API是否首先返回您期望的数据?