Fonctionnement d'analytics.js

Avec analytics.js, vous pouvez presque tout faire pour mesurer vos performances, à l'aide de la file d'attente de commandes ga(). Ce guide explique ce qu'est la file d'attente de commandes, comment elle fonctionne et comment exécuter des commandes pour mesurer les interactions des utilisateurs.

File d'attente de commandes ga

La balise Google Analytics définit une fonction ga globale appelée "file d'attente de commandes". C'est ce qu'on appelle la "file d'attente de commandes", car au lieu d'exécuter immédiatement les commandes qu'elle reçoit, elle les ajoute à une file d'attente qui retarde l'exécution jusqu'à ce que la bibliothèque analytics.js soit entièrement chargée.

En JavaScript, les fonctions sont également des objets, ce qui signifie qu'elles peuvent contenir des propriétés. La balise Google Analytics définit une propriété q sur l'objet fonction ga en tant que tableau vide. Avant le chargement de la bibliothèque analytics.js, l'appel de la fonction ga() ajoute la liste des arguments transmis à la fonction ga() à la fin du tableau q.

Par exemple, si vous exécutez la balise Google Analytics et que vous consignez immédiatement le contenu de ga.q dans la console, vous verrez un tableau, composé de deux éléments de longueur, contenant les deux ensembles d'arguments déjà transmis à la fonction ga():

console.log(ga.q);

// Outputs the following:
// [
//   ['create', 'UA-XXXXX-Y', 'auto'],
//   ['send', 'pageview']
// ]

Une fois la bibliothèque analytics.js chargée, elle inspecte le contenu du tableau ga.q et exécute chaque commande dans l'ordre. Ensuite, la fonction ga() est redéfinie, de sorte que tous les appels suivants s'exécutent immédiatement.

Ce modèle permet aux développeurs d'utiliser la file d'attente de commandes ga() sans avoir à se soucier de la fin du chargement de la bibliothèque analytics.js. Il offre une interface simple d'apparence synchrone qui élimine la plupart des complexités du code asynchrone.

Ajouter des commandes à la file d'attente

Tous les appels à la file d'attente de commandes ga() partagent une signature commune. Le premier paramètre, "command", est une chaîne qui identifie une méthode analytics.js spécifique. Tous les paramètres supplémentaires sont les arguments transmis à cette méthode.

La méthode à laquelle une commande fait référence peut être une méthode globale, comme create, une méthode sur l'objet ga ou une méthode d'instance sur un objet de suivi, comme send. Si la file d'attente de commandes ga() reçoit une commande qu'elle ne reconnaît pas, elle l'ignore simplement. Les appels à la fonction ga() sont donc très sûrs, car ils n'entraîneront presque jamais d'erreur.

Pour obtenir la liste complète des commandes pouvant être exécutées via la file d'attente, consultez la documentation de référence sur la file d'attente de commandes ga().

Paramètres de commande

La plupart des commandes analytics.js (et les méthodes correspondantes) acceptent des paramètres de plusieurs formats. Cette fonctionnalité est utile pour faciliter la transmission des champs couramment utilisés à certaines méthodes.

Prenons l'exemple des deux commandes de la balise Google Analytics:

ga('create', 'UA-XXXXX-Y', 'auto');
ga('send', 'pageview');

Dans la première commande, create accepte les champs trackingId, cookieDomain et name qui peuvent éventuellement être spécifiés comme deuxième, troisième et quatrième paramètres, respectivement. La commande send accepte un deuxième paramètre hitType facultatif.

Toutes les commandes acceptent un paramètre fieldsObject final qui peut également servir à spécifier n'importe quel champ. Par exemple, les deux commandes ci-dessus dans le tag peuvent être réécrites comme suit:

ga('create', {
  trackingId: 'UA-XXXXX-Y',
  cookieDomain: 'auto'
});
ga('send', {
  hitType: 'pageview'
});

Consultez la documentation de référence sur la file d'attente de commandes ga() pour obtenir la liste complète des paramètres facultatifs autorisés pour chacune des commandes.

Étapes suivantes

Après avoir lu ce guide, vous devriez comprendre comment exécuter des commandes avec analytics.js, et comment fonctionne la file d'attente de commandes. Le guide suivant explique comment créer des objets de suivi.