Hello Analytics API: Guide de démarrage rapide pour Java pour les comptes de service

Ce tutoriel décrit les étapes requises pour accéder à un compte Google Analytics, interroger les API Analytics, gérer les réponses de l'API et générer les résultats. Ce tutoriel utilise l'API Core Reporting v3.0, l'API Management v3.0 et OAuth2.0.

Étape 1: Activez l'API Analytics

Pour commencer à utiliser l'API Google Analytics, vous devez d'abord utiliser l'outil de configuration, qui vous guide tout au long de la création d'un projet dans la console Google APIs, de l'activation de l'API et de la création d'identifiants.

Créer un ID client

  1. Ouvrez la page Comptes de service. Si vous y êtes invité, sélectionnez un projet.
  2. Cliquez sur Créer un compte de service, puis saisissez un nom et une description pour ce compte. Vous pouvez utiliser l'ID de compte de service par défaut ou en choisir un autre, unique. Une fois que vous avez terminé, cliquez sur Créer.
  3. La section Autorisations associées au compte de service (facultatif) qui suit n'est pas requise. Cliquez sur Continuer.
  4. Sur l'écran Autoriser les utilisateurs à accéder à ce compte de service, accédez à la section Créer une clé. Cliquez sur Créer une clé.
  5. Dans le panneau latéral qui s'affiche, sélectionnez le format de la clé. Nous vous recommandons de choisir le format JSON.
  6. Cliquez sur Créer. La nouvelle paire de clés publique et privée est générée et téléchargée sur votre ordinateur. Il s'agit de la seule copie dont vous disposez. Découvrez comment stocker cette clé en toute sécurité.
  7. Cliquez sur Fermer dans la boîte de dialogue Clé privée enregistrée sur votre ordinateur, puis cliquez sur OK pour afficher le tableau des comptes de service.

Ajouter un compte de service au compte Google Analytics

Le compte de service nouvellement créé se verra attribuer une adresse e-mail, <projectId>-<uniqueId>@developer.gserviceaccount.com. Utilisez cette adresse e-mail pour ajouter un utilisateur au compte Google Analytics auquel vous souhaitez accéder via l'API. Pour ce tutoriel, seules les autorisations Lire et analyser sont nécessaires.

Étape 2: Installez la bibliothèque cliente Google

Pour installer le client Java de l'API Google Analytics, vous devez télécharger un fichier ZIP contenant tous les fichiers JAR que vous devez extraire et copier dans votre classpath Java.

  1. Téléchargez la bibliothèque cliente Java Google Analytics, fournie sous forme de fichier ZIP avec toutes les dépendances requises.
  2. Extrayez le fichier ZIP.
  3. Ajoutez tous les fichiers JAR du répertoire libs à votre classpath.
  4. Ajoutez le fichier JAR google-api-services-analytics-v3-[version].jar au chemin de classe.

Étape 3: Configurer l'exemple

Vous devez créer un seul fichier nommé HelloAnalytics.java, qui contiendra l'exemple de code donné.

  1. Copiez ou téléchargez le code source suivant dans HelloAnalytics.java.
  2. Déplacez le fichier client_secrets.JSON précédemment téléchargé dans le même répertoire que l'exemple de code.
  3. Remplacez les valeurs des paramètres KEY_FILE_LOCATION par les valeurs appropriées de la Developer Console.
import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.gson.GsonFactory;

import com.google.api.services.analytics.Analytics;
import com.google.api.services.analytics.AnalyticsScopes;
import com.google.api.services.analytics.model.Accounts;
import com.google.api.services.analytics.model.GaData;
import com.google.api.services.analytics.model.Profiles;
import com.google.api.services.analytics.model.Webproperties;

import java.io.FileInputStream;
import java.io.IOException;
import java.security.GeneralSecurityException;
import java.io.IOException;


/**
 * A simple example of how to access the Google Analytics API using a service
 * account.
 */
public class HelloAnalytics {


  private static final String APPLICATION_NAME = "Hello Analytics";
  private static final JsonFactory JSON_FACTORY = GsonFactory.getDefaultInstance();
  private static final String KEY_FILE_LOCATION = "<REPLACE_WITH_JSON_FILE>";
  public static void main(String[] args) {
    try {
      Analytics analytics = initializeAnalytics();

      String profile = getFirstProfileId(analytics);
      System.out.println("First Profile Id: "+ profile);
      printResults(getResults(analytics, profile));
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

  /**
   * Initializes an Analytics service object.
   *
   * @return An authorized Analytics service object.
   * @throws IOException
   * @throws GeneralSecurityException
   */
  private static AnalyticsReporting initializeAnalytic() throws GeneralSecurityException, IOException {

    HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
    GoogleCredential credential = GoogleCredential
        .fromStream(new FileInputStream(KEY_FILE_LOCATION))
        .createScoped(AnalyticsScopes.all());

    // Construct the Analytics service object.
    return new Analytics.Builder(httpTransport, JSON_FACTORY, credential)
        .setApplicationName(APPLICATION_NAME).build();
  }


  private static String getFirstProfileId(Analytics analytics) throws IOException {
    // Get the first view (profile) ID for the authorized user.
    String profileId = null;

    // Query for the list of all accounts associated with the service account.
    Accounts accounts = analytics.management().accounts().list().execute();

    if (accounts.getItems().isEmpty()) {
      System.err.println("No accounts found");
    } else {
      String firstAccountId = accounts.getItems().get(0).getId();

      // Query for the list of properties associated with the first account.
      Webproperties properties = analytics.management().webproperties()
          .list(firstAccountId).execute();

      if (properties.getItems().isEmpty()) {
        System.err.println("No Webproperties found");
      } else {
        String firstWebpropertyId = properties.getItems().get(0).getId();

        // Query for the list views (profiles) associated with the property.
        Profiles profiles = analytics.management().profiles()
            .list(firstAccountId, firstWebpropertyId).execute();

        if (profiles.getItems().isEmpty()) {
          System.err.println("No views (profiles) found");
        } else {
          // Return the first (view) profile associated with the property.
          profileId = profiles.getItems().get(0).getId();
        }
      }
    }
    return profileId;
  }

  private static GaData getResults(Analytics analytics, String profileId) throws IOException {
    // Query the Core Reporting API for the number of sessions
    // in the past seven days.
    return analytics.data().ga()
        .get("ga:" + profileId, "7daysAgo", "today", "ga:sessions")
        .execute();
  }

  private static void printResults(GaData results) {
    // Parse the response from the Core Reporting API for
    // the profile name and number of sessions.
    if (results != null && !results.getRows().isEmpty()) {
      System.out.println("View (Profile) Name: "
        + results.getProfileInfo().getProfileName());
      System.out.println("Total Sessions: " + results.getRows().get(0).get(0));
    } else {
      System.out.println("No results found");
    }
  }
}

Étape 4: Exécutez l'exemple

Après avoir activé l'API Analytics, installé la bibliothèque cliente des API Google pour Java et configuré l'exemple de code source, celui-ci est prêt à être exécuté.

Si vous utilisez un IDE, assurez-vous qu'une cible d'exécution par défaut est définie sur la classe HelloAnalytics. Sinon, vous pouvez compiler et exécuter l'application à partir de la ligne de commande:

  1. Compilez l'exemple à l'aide de la commande suivante :
    javac -classpath /path/to/google/lib/*:/path/to/google/lib/libs/* HelloAnalytics.java
  2. Exécutez l'exemple à l'aide de la commande suivante :
    java -classpath ./:/path/to/google/lib/*:/path/to/google/lib/libs/* HelloAnalytics

Lorsque vous avez terminé ces étapes, l'exemple génère le nom de la première vue (profil) Google Analytics de l'utilisateur autorisé, ainsi que le nombre de sessions au cours des sept derniers jours.

Avec l'objet de service Analytics autorisé, vous pouvez désormais exécuter n'importe quel exemple de code disponible dans la documentation de référence de l'API Management. Par exemple, vous pouvez essayer de modifier le code pour utiliser la méthode accountSummaries.list.