Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Google Analytics仅在前一天使用c显示数据#_C#_Google Analytics_Google Api_Google Analytics Api_Google Api Dotnet Client - Fatal编程技术网

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

C# Google Analytics仅在前一天使用c显示数据#,c#,google-analytics,google-api,google-analytics-api,google-api-dotnet-client,C#,Google Analytics,Google Api,Google Analytics Api,Google Api Dotnet Client,我有一个代码,可以在Visual studio中用c#为一个网站获取谷歌分析数据,它显示或获取前一天的数据,那么今天的数据呢 下面是使用的代码 var today = DateTime.Now; var todayDate = today.ToString("yyyy-MM-dd"); string date = "2012-01-01"; DateTime dt = Convert.ToDateTime(date); v

我有一个代码,可以在Visual studio中用c#为一个网站获取谷歌分析数据,它显示或获取前一天的数据,那么今天的数据呢

下面是使用的代码

     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();
            }

        }
var today=DateTime.Now;
var todayDate=today.ToString(“yyyy-MM-dd”);
字符串日期=“2012-01-01”;
DateTime dt=转换为ToDateTime(日期);
var startDate=dt.ToString(“yyyy-MM-dd”);
var websiteProfileID=“ga:XXXXXXXX”;
字符串serviceAccountEmail=”avgvghsbhbh@developer.gserviceaccount.com";
var证书=新的X509Certificate2(@“D:/RCGA-fdrd250d7c.p12”,“notasecret”,X509keystrageFlags.Exportable);
var-credential=新的ServiceAccountCredential(
新ServiceAccountCredential.初始值设定项(serviceAccountEmail)
{
Scopes=new[]{AnalyticsService.Scope.Analytics}
}.FromCertificate(证书));
//创建服务。
var服务=新的AnalyticsService(新的BaseClientService.Initializer()
{
HttpClientInitializer=凭证,
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(列出viewTrafficData.Rows中的行)
{
foreach(行中的字符串列)
{
TextWriter tsw=新的StreamWriter(@“D:\Hello.txt”,true);
tsw.WriteLine(col);
tsw.Close();
}
}
支持术语“今天”,因此您可以直接使用术语“今天”

var todayDate = "today";
值必须匹配[0-9]{4}-[0-9]{2}-[0-9]{2}|今天|昨天|[0-9]+(daysAgo)

然而,你需要记住一些关于谷歌分析数据的东西。数据已经24-48小时没有完成处理。这意味着,如果您请求今天的数据,然后在明天或两天后再次检查,数字可能会有所不同

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

isDataGolden布尔值指示对此请求的响应是否为golden。如果在以后的某个时间点被询问,同样的请求不会产生任何新的结果,那么数据就是黄金


但是,Google Analytics Reporting API v4没有日期范围的“今天”选项。您必须在脚本中创建自己的get todays日期。v4有很多示例,还有更多示例。

直到上周,我确实从V3 API获得了今天/现在的谷歌分析数据,使用今天的日期作为“结束”日期(30天前作为“开始”日期):页面浏览量/唯一访客数据每10到20分钟更新一次。当我在我的网站上浏览新内容时,我确实看到了页面浏览量的增加(显示了每页的页面浏览量/访问者统计)

自从上周我再也没有收到这样的新数据,现在需要12-24小时。在这些时间里,我的新页面(新闻文章)在前12个小时只显示0

这可能是API中的一个小故障,因为最近的数据(除了实时选项卡)可以在Google Analytics网站上的所有其他报告中找到。此时,我可以看到当前小时前15分钟的数据

不过,这也可能与他们的新服务“360 Analytics”(付费)有关。该服务于2天前(3月1日)发布,提供“实时”数据。本产品发布的时间和我的API调用不再返回新数据可能表明这是一项战略性举措。我试图联系谷歌分析团队,但没有得到任何关于数据不再新鲜的回应。如果是这样的话,那么如果谷歌主动就此事进行沟通是有礼貌的,因为这会导致V3 API的回归


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

@Vijay我不想在Google Analytics流量页面中查看数据。从某个日期到现在,我需要它来使用c代码获取数据。您是否只尝试获取今天的数据?今天不是日期范围的一部分。@Vijay这个问题是针对网站的,而不是针对API的使用。我不认为这会让数字有所不同,我不担心。当我在控制台中构建和打印GA数据时,它只打印数字,直到2017年2月25日。26号和27号的号码在哪里。你发送的确切日期是什么?我发送的是起始日期和今天的日期。您可以参考我在query.2012-01-01-今天粘贴的代码?Google analytics帐户设置为什么时区?您所在的时区是什么?还有,您要返回多少行?你还没有实现分页,所以你只能得到10000行,除非你在别处有代码。我的总行数只有2234行,所以我不需要分页。我的时区是亚洲/加尔各答。从今天早上开始,我再次收到来自谷歌分析V3 API的与“今天”相关的最新数据。也许您可以尝试重新运行现有代码,看看API是否返回了您最初期望的数据?