Universal Analytics (UA) deviendra obsolète le 1er juillet 2023, ce qui signifie qu'il cessera de traiter les données. Les propriétés Analytics 360 cesseront de fonctionner le 1er octobre 2023. Migrez vers Google Analytics 4.

Cookies et identification des utilisateurs

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Pour que Google Analytics détermine que deux appels distincts appartiennent au même utilisateur, un identifiant unique, associé à cet utilisateur particulier, doit être envoyé avec chaque appel.

Pour ce faire, la bibliothèque analytics.js utilise le champ ID client, une chaîne unique générée de manière aléatoire, qui est stockée dans les cookies du navigateur. Ainsi, les visites ultérieures sur le même site peuvent être associées au même utilisateur.

Par défaut, analytics.js utilise un cookie propriétaire unique nommé _ga pour stocker l'ID client, mais le nom, le domaine et le délai d'expiration du cookie peuvent tous être personnalisés. Les autres cookies créés par analytics.js sont _gid, AMP_TOKEN et _gac_<property-id>. Ces cookies stockent d'autres identifiants générés aléatoirement et des informations sur la campagne concernant l'utilisateur.

L'utilisation de cookies permet à analytics.js d'identifier les utilisateurs uniques lors des sessions de navigation, mais pas d'identifier les utilisateurs uniques sur différents navigateurs ou appareils. Si votre site possède son propre système d'authentification, vous pouvez utiliser la fonctionnalité User-ID en plus de l'ID client pour identifier plus précisément l'utilisateur sur tous les appareils qu'il utilise pour accéder à votre site.

Ce guide explique comment personnaliser les paramètres des cookies et comment définir le champ "User-ID" afin de mesurer plus précisément l'activité des utilisateurs lors des sessions.

Le tableau suivant présente les valeurs de champ de cookie par défaut utilisées par analytics.js:

Nom du champ Type de valeur Valeur par défaut
cookieName text _ga
cookieDomain text Le résultat de l'expression JavaScript suivante:
document.location.hostname
cookieExpires integer 63072000 (deux ans, en secondes)
cookieUpdate booléen true
cookieFlags text

Pour modifier l'une de ces valeurs, vous pouvez la spécifier dans le fieldObject que vous transmettez à la commande create. Exemple :

ga('create', 'UA-XXXXX-Y', {
  'cookieName': 'gaCookie',
  'cookieDomain': 'blog.example.co.uk',
  'cookieExpires': 60 * 60 * 24 * 28  // Time in seconds.
  'cookieUpdate': 'false',
  'cookieFlags': 'SameSite=None; Secure',
});

Le champ de cookie le plus courant étant cookieDomain, la commande create accepte le champ cookieDomain comme troisième paramètre facultatif pour plus de commodité:

ga('create', 'UA-XXXXX-Y', 'blog.example.co.uk');

La balise Google Analytics recommandée définit la chaîne 'auto' pour le champ cookieDomain:

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

Spécifier 'auto' comme cookieDomain active la configuration automatique du domaine de cookie, qui indique à analytics.js de déterminer automatiquement le meilleur domaine de cookie à utiliser.

La configuration automatique du domaine de cookie définit le cookie _ga sur le domaine de niveau le plus élevé possible. Par exemple, si l'adresse de votre site Web est blog.example.co.uk, analytics.js définit le domaine de cookie sur .example.co.uk. De plus, si analytics.js détecte que vous exécutez un serveur en local (localhost, par exemple), il définit automatiquement cookieDomain sur 'none'.

Chaque fois qu'un appel est envoyé à Google Analytics, le délai d'expiration du cookie correspond à l'heure actuelle plus la valeur du champ cookieExpires. Cela signifie que si vous utilisez la valeur par défaut cookieExpires (deux ans) et qu'un utilisateur visite votre site chaque mois, son cookie n'expirera jamais.

Si vous définissez cookieExpires sur 0 (zéro) seconde, le cookie se transforme en cookie basé sur la session et expire à la fin de la session de navigateur actuelle:

Lorsque cookieUpdate est défini sur true (valeur par défaut), analytics.js met à jour les cookies à chaque chargement de page. Le délai d'expiration des cookies sera alors mis à jour en fonction de la dernière visite sur le site. Par exemple, si l'expiration des cookies est définie sur une semaine et qu'un utilisateur se sert du même navigateur tous les cinq jours, le délai d'expiration des cookies est mis à jour à chaque visite et n'expire donc jamais.

Lorsque ce paramètre est défini sur false, les cookies ne sont pas mis à jour lors de chaque chargement de page. L'expiration des cookies dépend de la première visite d'un utilisateur sur le site.

Ajoute des indicateurs supplémentaires au cookie lorsqu'il est défini. Les options doivent être séparées par un point-virgule.

Vous ne devez pas accéder directement aux ensembles de cookies analytics.js, car leur format pourrait changer à l'avenir. À la place, les développeurs doivent utiliser readyCallback pour attendre le chargement d'analytics.js, puis obtenir la valeur clientId stockée sur l'outil de suivi.

ga(function(tracker) {
  var clientId = tracker.get('clientId');
});

Désactivation des cookies

Dans certains cas, vous pouvez utiliser votre propre mécanisme de stockage (tel que localStorage ou un service worker) pour conserver l'ID client entre les sessions sans utiliser de cookies. Vous pouvez désactiver analytics.js pour le cookie en définissant le champ storage sur 'none'.

ga('create', 'UA-XXXXX-Y', {
  'storage': 'none'
});

Si vous stockez vous-même le champ clientId, vous devez définir le champ cliendId lorsque vous créez l'outil de suivi.

ga('create', 'UA-XXXXX-Y', {
  'storage': 'none',
  'clientId': '76c24efd-ec42-492a-92df-c62cfd4540a3'
});

Pour désactiver les cookies _gac_<property-id>, définissez le champ storeGac sur false dans la commande create:

ga('create', 'UA-XXXXX-Y', {
  storeGac: false,
});

Utiliser localStorage pour stocker l'ID client

L'exemple de code suivant vous montre comment modifier le tag JavaScript pour utiliser localStorage afin de stocker l'ID client plutôt que les cookies:

var GA_LOCAL_STORAGE_KEY = 'ga:clientId';

if (window.localStorage) {
  ga('create', 'UA-XXXXX-Y', {
    'storage': 'none',
    'clientId': localStorage.getItem(GA_LOCAL_STORAGE_KEY)
  });
  ga(function(tracker) {
    localStorage.setItem(GA_LOCAL_STORAGE_KEY, tracker.get('clientId'));
  });
}
else {
  ga('create', 'UA-XXXXX-Y', 'auto');
}

ga('send', 'pageview');

User-ID

L'ID utilisateur permet d'analyser des groupes de sessions sur différents appareils à l'aide d'une chaîne d'ID unique, persistante et non personnelle représentant un utilisateur. Pour savoir pourquoi il est recommandé d'intégrer la fonctionnalité User-ID, consultez la section Avantages de la fonctionnalité User-ID.

Pour implémenter le User-ID avec analytics.js:

  1. Indiquez votre propre ID de chaîne unique, persistant et non personnel permettant de représenter chaque utilisateur connecté. Cet ID est généralement fourni par un système d'authentification.
  2. Définissez le User-ID sur l'appareil:
ga('create', 'UA-XXXXX-Y', 'auto', {
  userId: USER_ID
});
ga('send', 'pageview');

Gérer l'authentification après le chargement de la page

Lors de la création d'applications monopages ou d'autres sites Web dynamiques qui gèrent les connexions des utilisateurs après le chargement initial de la page, le processus de définition de la valeur User-ID sur l'outil de suivi ne peut pas avoir lieu au moment de la création.

Dans ce cas, vous pouvez utiliser la commande set pour définir la valeur dès que celle-ci est connue.

// Creates the tracker and sends a pageview as normal
// since the `userId` value is not yet known.
ga('create', 'UA-XXXXX-Y', 'auto');
ga('send', 'pageview');

// At a later time, once the `userId` value is known,
// sets the value on the tracker.
ga('set', 'userId', USER_ID);

// Setting the userId doesn't send data to Google Analytics.
// You must also use a pageview or event to send the data.
ga('send', 'event', 'authentication', 'user-id available');

Avec cette approche, les appels envoyés avant la définition du champ userId ne contiennent pas de valeurs d'ID utilisateur. Cependant, grâce à un processus appelé unification de session, Google Analytics est en mesure d'associer ces appels à l'utilisateur approprié au moment du traitement.