web-dev-qa-db-fra.com

Obtenir l'ID client avec gtag.js

Google a publié gtag.js il y a quelques mois comme nouvelle méthode de suivi avec Google Analytics, remplaçant éventuellement analytics.js pour autant que je sache. gtag.js est la valeur par défaut lors de la configuration d'un nouveau compte Google Analytics, donc l'extrait de code est passé de ceci:

<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).Push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-12345678-1', 'auto');
  ga('send', 'pageview');
</script>

pour ça:

<script async src="https://www.googletagmanager.com/gtag/js?id=UA-123456789-1"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.Push(arguments);}
  gtag('js', new Date());

  gtag('config', 'UA-123456789-1');
</script>

Ce que je dois faire, c'est obtenir l'ID client avec gtag.js. Avec l'ancien script, je pouvais faire comme suit.

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

À première vue, gtag.js charge le même script analytics.js via Google Tag Manager, car la variable ga est en effet disponible. Cependant, il y a une différence parce que le paramètre tracker est undefined lorsque le rappel est invoqué, parce que gtag.js n'utilise pas de trackers , donc cette approche efface la victoire " t travailler.

J'ai parcouru la documentation de gtag.js , mais je n'ai trouvé aucune information sur la façon d'obtenir l'ID client. La documentation pour analytics.js indique de ne pas accéder directement au cookie pour obtenir l'ID client, ce qui est logique. Mais existe-t-il un moyen de l'obtenir via l'API JavaScript avec gtag.js, ou dois-je recourir à la lecture du cookie pour l'instant?

11
ba0708

Si la propriété tracker id n'est pas disponible, c'est toujours un tracker ga approprié au moins pour le moment. donc ce qui suit fonctionnerait pour obtenir un clientId:

ga.getAll().forEach( (tracker) => {
  var id = tracker.get('clientId'); console.log(id)
})

Après avoir accédé au tracker ga avec ga.getAll (), vous pouvez configurer la 'customTask' qui assignerait clientId à la dimension personnalisée de votre choix. Regardez le guide de Simo ici

7

Il existe un moyen non documenté pour obtenir l'identifiant client dans GA:

gtag('config', 'UA-12345-1', {
  'custom_map': {
    'dimensionX': 'clientId'
  }
});

De toute évidence, ils voulaient fournir un moyen plus pratique d'obtenir la valeur (vous fournissez littéralement la chaîne 'clientId' qui est ensuite résolue en la valeur appropriée).

Cela a été élaboré par un gars nommé Yamata Ryoda et longuement documenté dans un article de Simo Ahava . J'avoue que je ne l'ai pas encore testé moi-même.

0
Eike Pierstorff