Frage

Google kündigte die an Analytics -Datenexport -API Vor einigen Tagen erleichterte es viel einfacher, Analysedaten für eine Website zu erhalten. Die API debütierte mit Java- und JavaScript -Clients, aber keine direkte .NET -Unterstützung (außer dem XML). Es scheint, dass die API den anderen Google -Daten -APIs ähnelt, und es gibt a .NET -Client für diese. Hat jemand versucht, die Komponenten in dieser Bibliothek zu verwenden, um die Analysedaten zu erhalten?

Ich bin gerade dabei, eine ASP.NET -MVC -Site zu erstellen und dachte, ich würde Google Analytics verwenden, um "am meisten angezeigte" Listen und ähnliche Listen zu generieren (da Google wahrscheinlich besser gegen falsche Anfragen, Roboter usw. ausfindig ist) . Wenn Sie irgendwelche Gedanken zu dieser Idee haben, würde ich sie auch sehr schätzen, sie zu hören.

War es hilfreich?

Lösung

Überprüf den Rüssel In der .NET -Bibliothek von Google haben sie Analytics -Unterstützung hinzugefügt.

Überprüfen Sie auch, ob ihre Gruppen dazu posten:

http://groups.google.com/group/gdata-dotnet-client-library/browse_thread/thread/2d2ec9103b731c6

und

http://groups.google.com/group/gdata-dotnet-client-library/browse_thread/thread/70c6638734823b8d

Andere Tipps

Schauen Sie sich meinen Beitrag hier an:http://www.akamarketing.com/blog/103-introducing-google-analytic-api-with-aspnet-c.html

Es verwendet nicht die integrierte Bibliothek, die Sie erwähnen, aber es funktioniert ziemlich gut. Die gesamte API ist XML/HTTP, daher ist es ziemlich praktisch zu verwenden. Sie fragen Google im Grunde nach einer Webseite und untersuchen die Antwort auf das, was Sie benötigen.

 //For this you will have to add some dll in your .net project i.e.
 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; }


}

}

Google hat eine neue Generation von APIs veröffentlicht, die bei aufgeführt sind Google API Explorer, Sie können den Eintrag für sehen Google Analytics. Und da ist ein .NET Client das liefert .dlls für all diese APIs. Dies ist Google, also ist es immer noch in der Beta, aber ich entwickle es ohne Probleme.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top