47 votes

Bibliothèque cliente Analytics Reporting API V4 pour .NET

Je vais essayer d'obtenir certaines données de google analytics exemple et je voudrais utiliser les Rapports google Analytics API V4 Bibliothèque Client .NET (https://developers.google.com/api-client-library/dotnet/apis/analyticsreporting/v4) afin que je puisse faire cuire certains de ces données au sein d'un site de l'administration que nous avons construite. Je vais avoir du mal à trouver des exemples de l'utilisation de ce code et de la documentation semble être incroyablement rares. Je voudrais utiliser un compte de service pour autoriser comme nous l'avons seulement besoin de visualiser les données associées au compte google analytics, qui nous contrôle.

Si quelqu'un pouvait fournir un exemple de code ou me diriger dans la bonne direction pour obtenir un peu d'un rapport de base de données à l'aide de l' .net de l'api, il serait grandement apprécié

84voto

rsbarro Points 12575

L'appel de la Google Analytics API de Rapports à partir de C# n'est pas particulièrement difficile, cependant toutes les étapes nécessaires ne semblent pas être exposés très clairement dans les résultats de Google Analyics documentation de l'API. Je vais essayer de les énumérer toutes ici. Alors que YMMV, je crois que ces mesures soient correctes, 7/20/2016.

Vous pouvez commencer par créer un nouveau projet C#. Nous allons faire une application console pour tester appelés GoogleAnalyticsApiConsole. Une fois le projet créé, nous allons ajouter une référence à la Google Analytics API de Rapports V4 Bibliothèque Client .NET en utilisant le Gestionnaire de Package NuGet de la Console (qui se trouve sous le menu Outils de Visual Studio 2015). Le feu de la Console et tapez la commande suivante à l' PM> invite:

PM> Install-Package Google.Apis.AnalyticsReporting.v4

L'installation de ce paquet de télécharger le client de bibliothèques nécessaires à l'appel de Google Analytics Reporting services web avec un certain nombre d'autres dépendances.

Afin d'appeler les services web, vous devez configurer le protocole OAuth 2.0 pour votre application. La documentation pour cette installation peut être trouvé ici, mais je vais résumer ci-dessous:

  1. Connexion à la Google Cloud Platform Console: https://console.cloud.google.com/. Assurez-vous de vous connecter avec un compte qui dispose d'un accès pour les comptes Google Analytics vous essayez de requête à l'API de rapports.

  2. Cliquez sur la Google Cloud Platform menu et sélectionnez directeur de l'API.

Google Cloud Platform API Manager

  1. Sur le côté gauche, cliquez sur informations d'Identification , puis créer un nouveau projet appelé" Google Analytics API Console. Donner un peu de temps pour créer le nouveau projet.

  2. Après la création du projet, cliquez sur Références de nouveau, si elle n'est pas déjà sélectionnée), puis cliquez sur le OAuth Consentement de l'Écran de lien dans le panneau de droite. Définir le nom du Produit indiqué pour les utilisateurs d' Google Analytics API Console , puis cliquez sur Enregistrer.

  3. Cliquez sur les informations d'Identification , puis cliquez sur Créer des informations d'Identification, et de choisir le protocole OAuth ID de Client. Sélectionnez Autre pour le type d'Application , puis entrez Google Analytics API Console que le Nom et cliquez sur Créer.

  4. Après le titre est créé, il vous sera présenté avec un numéro de client et un client secret. Vous pouvez fermer la fenêtre de dialogue.

  5. Maintenant, sous informations d'Identification , vous devriez voir une entrée dans le protocole OAuth 2.0 id client. Cliquez sur l'icône de téléchargement à l'extrême droite de l'entrée de télécharger l' client_secret.json le fichier (ce fichier sera beaucoup plus le nom). Ajouter le fichier à votre projet au niveau de la racine une fois qu'il a été téléchargé et renommez - client_secret.json.

Google Cloud Platform API Credentials

  1. Maintenant que le protocole OAuth 2.0 credential a été créé, nous avons besoin de l'activer pour appeler l'API de Rapports. Sélectionnez vue d'ensemble et assurez-vous que Google Api est sélectionné dans le panneau de droite. Type en Reporting dans la zone de recherche et sélectionnez Rapports google Analytics API V4 à partir de la liste. Sur l'écran suivant, cliquez sur Activer. Une fois cette API a été activée, vous devriez être en mesure de le voir sous le Permis d'Api liste dans le panneau de droite.

Google Cloud Platform Enabled Analytics Reporting

Maintenant que nous avons créé notre projet et créé notre OAuth 2.0 informations d'identification, il est temps d'appeler l'API de Rapports V4. Le code ci-dessous va utiliser l'API de Google et l' client_secret.json le fichier pour créer un Google.Apis.Auth.OAuth2.UserCredential à la requête de l'API de Rapports pour toutes les séances, entre la plage de dates pour la Vue. Le code est adapté à partir de l' exemple Java ici.

Avant d'exécuter le code, assurez-vous de définir l' Action de Construire sur l' client_secret.json le fichier de Contenu et le Copier vers le Répertoire de Sortie réglage pour Copier si plus récent. Il y a aussi deux variables qui doivent être correctement définies. Tout d'abord, dans l' GetCredential() méthode, la valeur de l' loginEmailAddress de la valeur de l'adresse email utilisée pour créer le protocole OAuth 2.0 informations d'identification. Puis, en Main méthode, assurez-vous de régler l' ViewId dans la reportRequest variable pour la vue que vous souhaitez requête à l'aide de l'API de Rapports. Pour trouver l' ViewId, connectez-vous à Google Analytics et sélectionnez l' Admin onglet. À partir de là, sélectionnez la vue que vous souhaitez requête dans la Vue de liste déroulante sur la droite et sélectionnez Paramètres d'Affichage. L' identification sera affiché dans les Paramètres de Base.

La première fois que le code est exécuté, il va afficher une page web vous demandant si vous souhaitez autoriser l' Google Analytics API Console d'avoir accès à l'API de données. Sélectionnez Autoriser pour continuer. À partir de là que l'autorisation sera stocké dans l' GoogleAnalyticsApiConsole FileDataStore. Si ce fichier est supprimé, l'autorisation devra être accordée de nouveau. Ce fichier peut être trouvé dans l' %APPDATA%\GoogleAnalyicsApiConsole répertoire.

Google API Permission OAuth 2.0

Veuillez noter que je crois ce scénario permettra de répondre aux besoins de l'OP. Si cette application pour être distribués aux clients, puis un autre OAuth 2.0 schéma serait le plus susceptible d'être nécessaire.

Voici le code:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Google.Apis.AnalyticsReporting.v4;
using Google.Apis.AnalyticsReporting.v4.Data;
using Google.Apis.Auth.OAuth2;
using Google.Apis.Services;
using Google.Apis.Util.Store;

namespace GoogleAnalyticsApiConsole
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                var credential = GetCredential().Result;
                using(var svc = new AnalyticsReportingService(
                    new BaseClientService.Initializer
                    {
                        HttpClientInitializer = credential,
                        ApplicationName = "Google Analytics API Console"
                    }))
                {    
                    var dateRange = new DateRange
                    {
                        StartDate = "2016-05-01",
                        EndDate = "2016-05-31"
                    };
                    var sessions = new Metric
                    {
                        Expression = "ga:sessions",
                        Alias = "Sessions"
                    };
                    var date = new Dimension { Name = "ga:date" };

                    var reportRequest = new ReportRequest
                    {
                        DateRanges = new List<DateRange> { dateRange },
                        Dimensions = new List<Dimension> { date },
                        Metrics = new List<Metric> { sessions },
                        ViewId = "<<your view id>>"
                    };
                    var getReportsRequest = new GetReportsRequest {
                        ReportRequests = new List<ReportRequest> { reportRequest } };
                    var batchRequest = svc.Reports.BatchGet(getReportsRequest);
                    var response = batchRequest.Execute();
                    foreach (var x in response.Reports.First().Data.Rows)
                    {
                        Console.WriteLine(string.Join(", ", x.Dimensions) +
                        "   " + string.Join(", ", x.Metrics.First().Values));
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }

        static async Task<UserCredential> GetCredential()
        {
            using (var stream = new FileStream("client_secret.json", 
                 FileMode.Open, FileAccess.Read))
            {
                const string loginEmailAddress = "<<your account email address>>";
                return await GoogleWebAuthorizationBroker.AuthorizeAsync(
                    GoogleClientSecrets.Load(stream).Secrets,
                    new[] { AnalyticsReportingService.Scope.Analytics },
                    loginEmailAddress, CancellationToken.None, 
                    new FileDataStore("GoogleAnalyticsApiConsole"));
            }
        }
    }
}

6voto

John Washam Points 450

J'ai eu la même expérience: Google documents est assez en profondeur, mais est assez terrible à donner des exemples précis de la façon de se connecter avec .NET.

Un truc important, j'ai enfin réalisé, c'est que vous pouvez vous connecter à l'aide d'un OAuth2 d'informations d'identification ou à un service d'identification du compte. Si vous êtes propriétaire de votre compte google Analytics, l'utilisation d'un compte de service. Si vous avez besoin de vous connecter à d'autres utilisateurs de comptes google Analytics, l'utilisation OAuth2.

Il semble y avoir un certain nombre d'exemples en ligne de la façon d'obtenir Analytics API de données à l'aide d'un OAuth2 des informations d'identification, mais j'ai mon propre compte google Analytics et je voulais juste d'extraire des données à partir d'elle. J'ai compris comment se connecter à l'Rapports google Analytics API v4 à l'aide d'un ServiceAccountCredential, et j'ai écrit une réponse à un même Débordement de Pile question avec tous les détails.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X