Google Analytics API and .Net

Google announced the Google Analytics Data Export API a few days ago, making it much easier to get analytic data for the site. The API debuted with Java and Javascript clients, but without direct .Net support (other than direct access to XML). The API seems to be similar to other Google data APIs, and there . Pure customer for these . Has anyone tried to use components in this library to get analytics data?

I am developing the ASP.Net MVC site and thought that I would use Google Analytics to create the Most Viewed lists, etc. (since Google is probably better at handling false requests, robots, etc.). If you have any thoughts on this idea, I would really like to hear them.

+24
api asp.net-mvc analytics google-analytics
Apr 26 '09 at 16:22
source share
4 answers
+12
May 27 '09 at 14:48
source share

Send your message here: http://www.akamarketing.com/blog/103-introducing-google-analytics-api-with-aspnet-c.html

It does not use the built-in library that you mention, but it works very well. The whole API is XML / HTTP, so it is very convenient to use. You basically request a web page from Google and study the answer for what you need.

+4
May 04 '09 at 10:16 a.m.
source share
//For this you will have to add some dll in your .net project ie using DotNetOpenAuth.OAuth2; using Google.Apis.Authentication.OAuth2; using Google.Apis.Authentication.OAuth2.DotNetOpenAuth; using Google.Apis.Analytics.v3; using Google.Apis.Analytics.v3.Data; using Google.Apis.Services; public ActionResult GetAnalyticsData(string GroupType, string date_from, string date_to) { try { AnalyticsService gas = AuthenticateUser(); // Creating our query DataResource.GaResource.GetRequest r = gas.Data.Ga.Get("ga:88028792", date_from, date_to, "ga:visits, ga:pageviews, ga:users, ga:newUsers, ga:sessions"); //Hour,Day,Week,Month if (GroupType == "Hour") { r.Dimensions = "ga:nthHour"; } else if (GroupType == "Day") { r.Dimensions = "ga:nthDay"; } else if (GroupType == "Week") { r.Dimensions = "ga:nthWeek"; } else if (GroupType == "Month") { r.Dimensions = "ga:nthMonth"; } //d: Execute and fetch the results of our query GaData d = r.Execute(); List<TotalsForAllResults> tr = new List<TotalsForAllResults>(); List<CustomeData> cd = new List<CustomeData>(); foreach (var item in d.Rows) { CustomeData mydata = new CustomeData(); // mydata.CreatedDate = item[0].ToString(); mydata.visits = Convert.ToInt32(item[1]); mydata.pageviews = Convert.ToInt32(item[2]); mydata.users = Convert.ToInt32(item[3]); mydata.newUsers = Convert.ToInt32(item[4]); mydata.sessions = Convert.ToInt32(item[5]); #region Date Conversion DateTime Now = DateTime.Parse(date_from, CultureInfo.InvariantCulture, DateTimeStyles.None); DateTime TempDate = new DateTime(Now.Year, Now.Month, Convert.ToInt32(Now.ToString("dd"))); if (GroupType == "Day") { TempDate = TempDate.AddDays((Convert.ToInt32(item[0]))); mydata.CreatedDate = TempDate.ToLongDateString(); } else if (GroupType == "Hour") { TempDate = TempDate.AddHours((Convert.ToInt32(item[0]))); mydata.CreatedDate = TempDate.ToString("dddd, MMM dd, yyyy hh:mm tt"); } else if (GroupType == "Month") { TempDate = TempDate.AddMonths((Convert.ToInt32(item[0]))); mydata.CreatedDate = TempDate.ToString("MMMM, yyyy"); } else { //DateTime NewDate = DateTime.Parse(date_from, CultureInfo.InvariantCulture, DateTimeStyles.None); //NewDate = NewDate.AddDays(((Convert.ToInt32(item[0]) + 1) - 1) * 7); //string NewDate1 = NewDate.ToLongDateString(); mydata.CreatedDate = item[0].ToString(); } #endregion cd.Add(mydata); } foreach (var item in d.TotalsForAllResults) { TotalsForAllResults tfa = new TotalsForAllResults(); tfa.metrics = item.Key; tfa.count = Convert.ToInt32(item.Value); tr.Add(tfa); } // At this point, d should contain the number of visitors you got between dates return Json(new { TotalsForAllResults = tr, LineChartData = cd }); } catch (Exception ex) { return Json(null); } } public AnalyticsService AuthenticateUser() { // This is the physical path to the key file you downloaded when you created your Service Account String key_file = @"E:\be8eab1c9893eac9f9fdac95cd64bcc58c86a158-privatekey.p12";//@"C:\Users\path\XXXXX-privatekey.p12"; // Is the "Email Address", not the "Client ID" one!!! String client_id = "450122396803-jt0vt4do8ui6ah74iv1idh1pt9jsvqa6@developer.gserviceaccount.com"; //"0000000-xxxxx@developer.gserviceaccount.com"; // Probably the password for all is "notasecret" String key_pass = "notasecret"; String scope_url = "https://www.googleapis.com/auth/" + Google.Apis.Analytics.v3.AnalyticsService.Scopes.Analytics.ToString().ToLower(); //scope_url = "https://www.googleapis.com/auth/analytics"; //scope_url = "https://www.googleapis.com/auth/analytics.readonly"; AuthorizationServerDescription desc = GoogleAuthenticationServer.Description; X509Certificate2 key = new X509Certificate2(key_file, key_pass, X509KeyStorageFlags.Exportable); AssertionFlowClient client = new AssertionFlowClient(desc, key) { ServiceAccountId = client_id, Scope = scope_url }; OAuth2Authenticator<AssertionFlowClient> auth = new OAuth2Authenticator<AssertionFlowClient>(client, AssertionFlowClient.GetState); //AnalyticsService gas = new AnalyticsService(auth); AnalyticsService gas = new AnalyticsService(new BaseClientService.Initializer() { Authenticator = auth }); return gas; } using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace GAExampleMVC.Models { public class TotalsForAllResults { public string metrics { get; set; } public int count { get; set; } public double Percent { get; set; } public DateTime Time { get; set; } } public class CustomeData { public string CreatedDate { get; set; } public int visits { get; set; } public int pageviews { get; set; } public int users { get; set; } public int newUsers { get; set; } public int sessions { get; set; } public string avgSessionDuration { get; set; } public double bounceRate { get; set; } public double percentNewSessions { get; set; } public double percentNewVisits { get; set; } public string Location { get; set; } public int uniquePageviews { get; set; } public string pagePath { get; set; } } 

}

+3
Jul 28 '14 at 9:04
source share

Google will release a new breed of Apis, which are listed in the Google Api Explorer , you can see the entry for Google Analytics . And there is a .NET client that provides a DLL for all of these Apis. This is Google, so it is still in Beta, but I am developing it without any problems.

+2
Nov 23 2018-11-21T00:
source share



All Articles