Intégrer Google Analytics

La plate-forme Google Analytics vous permet de mesurer les interactions des utilisateurs avec votre entreprise sur différents appareils et environnements. Google Analytics fournit les ressources nécessaires pour collecter, stocker, traiter et générer des rapports sur ces interactions de l'utilisateur.

Vous pouvez collecter des analyses côté client et côté serveur.

Collecter des analyses côté client

Utilisez les API et les SDK de Google Analytics pour mesurer la manière dont les utilisateurs interagissent avec votre contenu et vos initiatives marketing. Vous pouvez afficher les données d'interaction de l'utilisateur dans l'interface utilisateur de Google Analytics ou utiliser les API de rapport pour extraire les données. Pour plus de détails sur la collecte d'analyses côté client, sélectionnez le lien ci-dessous en fonction du type de votre client :

  • Suivi Web (analytics.js) - mesurez l'interaction de l'utilisateur avec des sites Web ou des applications Web.
  • Android - mesurez l'interaction de l'utilisateur avec les applications Android.
  • iOS - mesurez l'interaction de l'utilisateur avec les applications iOS.
  • Protocole de mesure - mesurez l'interaction de l'utilisateur dans n'importe quel environnement avec ce protocole de bas niveau.

Collecter des analyses côté serveur

Bien qu'App Engine fournisse un mécanisme pour consigner les événements dans votre application, vous pouvez utiliser Google Analytics pour suivre des événements spécifiques côté serveur dans Google Analytics, afin que vous puissiez :

  • Analyser les données historiques - App Engine vous permet de configurer le nombre maximal de jours, ou la taille, de votre fichier journal. Une fois cette limite passée, vous n'avez plus accès à ces fichiers journaux. Le suivi des événements dans Google Analytics vous offre une visibilité bien plus longue sur les événements passés.
  • Suivre les événements clés - Les fichiers journaux peuvent être détaillés, avec divers composants de votre application qui leur envoient des données. En utilisant le suivi des événements, vous pouvez identifier les événements clés et les suivre, ainsi que certaines métadonnées.
  • Travailler dans l'interface utilisateur - Tirez parti de la riche interface utilisateur fournie par Google Analytics pour visualiser, générer des rapports et exporter ces événements côté serveur.

Pour activer la collecte d'analyses côté serveur, vous pouvez utiliser un client HTTP et effectuer des requêtes HTTP à l'aide du protocole de mesure Google Analytics. Pour plus d'informations, consultez le guide du développeur Google Analytics pour le suivi des événements.

Exemple d'application

L'exemple d'application ci-dessous montre comment suivre les événements dans votre application App Engine. L'application effectue une requête HTTP et publie des données sur l'événement dans Google Analytics.

Avant d'utiliser le protocole de mesure Google Analytics sur App Engine :

  • Avant d'exécuter localement l'exemple d'application, configurez les variables d'environnement requises par l'application :

    export GA_TRACKING_ID=YOUR_TRACKING_ID
    npm install
    
  • Vous pouvez exécuter l'exemple de code en local à l'aide de la ligne de commande. Exemple :

    npm start
    

  • Vous pouvez intégrer le code suivant dans votre application App Engine pour publier des données de suivi d'événements dans Google Analytics :

    const express = require('express');
    const got = require('got');
    
    const app = express();
    app.enable('trust proxy');
    
    // The following environment variable is set by app.yaml when running on App
    // Engine, but will need to be set manually when running locally. See README.md.
    const {GA_TRACKING_ID} = process.env;
    
    const trackEvent = (category, action, label, value) => {
      const data = {
        // API Version.
        v: '1',
        // Tracking ID / Property ID.
        tid: GA_TRACKING_ID,
        // Anonymous Client Identifier. Ideally, this should be a UUID that
        // is associated with particular user, device, or browser instance.
        cid: '555',
        // Event hit type.
        t: 'event',
        // Event category.
        ec: category,
        // Event action.
        ea: action,
        // Event label.
        el: label,
        // Event value.
        ev: value,
      };
    
      return got.post('http://www.google-analytics.com/collect', data);
    };
    
    app.get('/', async (req, res, next) => {
      // Event value must be numeric.
      try {
        await trackEvent(
          'Example category',
          'Example action',
          'Example label',
          '100'
        );
        res
          .status(200)
          .send('Event tracked.')
          .end();
      } catch (error) {
        // This sample treats an event tracking error as a fatal error. Depending
        // on your application's needs, failing to track an event may not be
        // considered an error.
        next(error);
      }
    });
    
    const PORT = process.env.PORT || 8080;
    app.listen(PORT, () => {
      console.log(`App listening on port ${PORT}`);
      console.log('Press Ctrl+C to quit.');
    });