Question

Google a annoncé l'API de données Analytics Exporter il y a quelques jours, ce qui rend beaucoup plus facile d'obtenir des données d'analyse pour un site. L'API a fait ses débuts avec Java et Javascript clients, mais pas de soutien direct .Net (autre que d'aller tout droit vers le XML). Il semble que l'API est similaire aux autres API Google Data cependant, et il y a un client .Net pour les . Quelqu'un at-il essayé d'utiliser les composants de cette bibliothèque pour obtenir les données d'analyse?

Je suis en train de construire un site ASP.Net MVC et je pensais que j'utiliser Google Analytics pour générer « Les plus populaires » listes et des trucs comme ça (puisque Google est probablement mieux à désherber demandes parasites, robots, etc.). Si vous avez des pensées sur cette idée, je reconnaissant de bien vouloir les entendre aussi.

Était-ce utile?

La solution

Vérifiez la tronc de la bibliothèque .NET de Google, ils ont ajouté le support de Google Analytics.

Vérifiez également leurs groupes poster sur ce point:

http://groups.google.com / groupe / gdata-dotnet-client-bibliothèque / browse_thread / fil / 2d2eec9103b731c6

et

http://groups.google.com / groupe / gdata-dotnet-client-bibliothèque / browse_thread / fil / 70c6638734823b8d

Autres conseils

Vérifiez l'emplacement de mon post ici: http: //www.akamarketing. com / blog / 103 d'introduction-google-analyse-api-à-aspnet-c.html

Il est de ne pas utiliser la bibliothèque intégrée que vous mentionnez, mais ça fonctionne assez bien. L'API est tout XML / HTTP il est donc très pratique à utiliser. Vous demandez essentiellement Google pour une page Web et d'examiner la réponse pour ce que vous avez besoin.

 //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 vient de sortir une nouvelle race de Apis qui sont énumérés à Google Api Explorateur, vous pouvez voir l'entrée Google Analytics . Et il y a un client .Net qui fournit des fichiers .dll pour tous ces Apis. C'est Google, il est donc encore en version bêta mais je développer hors avec aucun problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top