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.
Configuration des paramètres des champs de cookies
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');
Configuration automatique du domaine de cookie
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'
.
Expiration des cookies
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:
Mise à jour des cookies
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.
Indicateurs pour cookies
Ajoute des indicateurs supplémentaires au cookie lorsqu'il est défini. Les options doivent être séparées par un point-virgule.
Obtenir l'ID client à partir du cookie
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:
- 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.
- 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.