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:
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.
Cliquez sur la Google Cloud Platform menu et sélectionnez directeur de l'API.
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.
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.
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.
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.
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
.
- 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.
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.
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"));
}
}
}
}