我有以下代码使用C#v2.3 api查询Google Analytics:
string username = "SAMPLE@SAMPLE.COM";
string pass = "PASS";
string gkey = "?key=XXXXXXXXXXXXXXXXXXXXXXXXXXX";
string dataFeedUrl = "https://www.google.com/analytics/feeds/data" + gkey;
AnalyticsService service = new AnalyticsService("API Sample");
service.setUserCredentials(username, pass);
DataQuery query1 = new DataQuery(dataFeedUrl);
query1.Ids = "ga:34197921";
query1.Dimensions = "ga:medium,ga:campaign,ga:date,ga:isMobile,ga:isTablet,ga:searchKeyword,ga:hostname";
query1.Metrics = "ga:visits,ga:visitors,ga:visitBounceRate,ga:goalStartsAll,ga:goalCompletionsAll,ga:goal1Starts,ga:goal1Completions,ga:goal2Starts,ga:goal2Completions,ga:goal3Starts,ga:goal3Completions,ga:goal4Starts,ga:goal4Completions,ga:adCost,ga:totalValue";
query1.Sort = "ga:date,ga:hour";
query1.NumberToRetrieve = 50;
query1.GAStartDate = new DateTime(2012, 1, 2).ToString("yyyy-MM-dd");
query1.GAEndDate = DateTime.Now.ToString("yyyy-MM-dd");
query1.StartIndex = 1;
DataFeed dataFeedVisits = service.Query(query1);
foreach (DataEntry entry in dataFeedVisits.Entries)
{
....
}
我想升级较新的v3 api,但发现很难在网上找到任何使用google oAuth进行身份验证的简单示例,然后查询Google Analytics数据。
我安装了以下NuGet包:Install-Package Google.Apis.Analytics.v3 -Pre 在新的c#解决方案中,它为我提供了以下附加参考:
我已经看过这篇文章,它似乎运行了一段类似于我需要运行的代码: How to send Google analytic report query using ASP.net Google analytic api Version 3(Google.Apis.Analytics.v3.dll)?
但是,本文中的所有代码都没有使用NuGet中引用的Google库进行解析。
我缺少什么,如何完成图片。如何进行身份验证并运行我的查询以进行Google Analytics。
向右倾斜谷歌,因为没有一个易于在线学习的教程来支持他们的.net库!
提前感谢任何建议!
答案 0 :(得分:2)
使用v3客户端库访问Google Analtyics非常好。我唯一没有解决的是如何发送它存储在数据库中的refreshtoken。我坚持在Pc上为我存储的那个。
请求autentication:所有客户端scret东西都存储在client_secret.json中,你可以从google apis consol下载文件。如果没有批准,它会弹出一个浏览器窗口,如果它没有,它将继续。
private void Form1_Load(object sender, EventArgs e)
{
UserCredential credential;
using (var stream = new System.IO.FileStream("client_secret.json", System.IO.FileMode.Open, System.IO.FileAccess.Read))
{
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
new[] { AnalyticsService.Scope.AnalyticsReadonly },
"user", CancellationToken.None, new FileDataStore("Analytics.Auth.Store")).Result;
}
}
现在要访问Google Analytics,您需要制作分析服务。
AnalyticsService service = new AnalyticsService(new BaseClientService.Initializer() {
HttpClientInitializer = credential,
ApplicationName = "Analytics API sample",
});
现在,您的所有电话都将针对该电话运行。
你的结果应该是:
DataResource.GaResource.GetRequest request = service.Data.Ga.Get(ga:34197921, new DateTime(2012, 1, 2).ToString("yyyy-MM-dd"), DateTime.Now.ToString("yyyy-MM-dd"), ""ga:visits,ga:visitors,ga:visitBounceRate,ga:goalStartsAll,ga:goalCompletionsAll,ga:goal1Starts,ga:goal1Completions,ga:goal2Starts,ga:goal2Completions,ga:goal3Starts,ga:goal3Completions,ga:goal4Starts,ga:goal4Completions,ga:adCost,ga:totalValue");
request.Dimensions = "ga:medium,ga:campaign,ga:date,ga:isMobile,ga:isTablet,ga:searchKeyword,ga:hostname";
我有一篇博客文章,虽然可以进行大多数不同的调用。 http://daimto.com/google-analytics-api-v3-with-c/
答案 1 :(得分:2)
我遇到了同样的问题。我安装了nuget软件包,但得到了同样的错误“无法加载文件或程序集”Microsoft.Threading.Tasks.Extensions.Desktop,Version = 1.0.16.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一。 该系统找不到指定的文件。”我尝试删除并重新安装nuget包无济于事。所以,我最终只搜索了Microsoft.Threading.Tasks.Extensions.Desktop.dll文件,它在net40文件夹中找到。我把它复制到我的bin文件夹,然后就可以了。