Dernière mise à jour le : 30 Sep, 2020

Créer un User-Id avec Google Tag Manager et Google Analytics

    Cet article est une adaptation de celui-ci : https://www.portent.com/blog/analytics/online-to-offline-attribution-made-simple.htm

    Dans de nombreux cas de figures, on souhaite pouvoir manipuler un identifiant unique dans Google Analytics pour identifier un utilisateur, et permettant de croiser les données avec d’autres sources (CRM, données offline, etc…).Dans cet article, nous allons voir deux des manières de le faire.

    Différentes manières de traiter le sujet

    Différentes méthodes existent

    Nous allons voir ici comment :

    • Créer un cookie dans Google Tag Manager avec un identifiant unique, généré aléatoirement
    • Sauvegarder cette donnée dans une “custom dimension” dans Google Analytics.

    A noter qu’il existe d’autres manières de faire cela, qui ne seront pas traitées ici. Notons en particulier :

    Pourquoi vouloir utiliser un identifiant unique, et quelles sont les limites ?

    Cette méthode permet d’attribuer à tous les visiteurs un identifiant unique, que l’on va utiliser dans Google Analytics, mais aussi dans des outils tiers (en particulier le CRM, mais aussi les outils publicitaires).

    Ce sera la base de la réconciliation des données. Soit pour importer des données de “conversion offline” dans Google Analytics, soit pour produire des rapports en croisant plusieurs sources de données.

    Cette méthode est trop peu souvent utilisée, tout simplement car les marketeurs ne savent pas toujours comment créer cet identifiant unique. En effet, cela nécessite de créer un cookie first-party, et d’en récupérer la valeur dans Google Tag Manager.

    Cet article s’adresse aux personnes ayant des connaissances de Google Analytics et Google Tag Manager. Qui ne savant pas vraiment coder, mais qui ont quand même besoin de ce fameux “User-Id”.

    Alerte RGPD : sans faire une analyse poussée de la question, nous recommandons de n’utiliser cette custom dimension que pour les utilisateurs ayant consenti au dépôt de cookie, et de s’assurer que vous avez le consentement pour les finalités que vous souhaitez effectivement exploiter. Nous recommandons également de limiter la durée du Cookie à 6 mois. Il est également important que cet identifiant ne soit pas une information personnelle (comme une adresse mail, ou même une adresse IP).

    Alerte Tracking / ITP : Selon le navigateur, la portée du cookie va être différente. Dans Safari (sur Mac et sur iPhone par exemple), tous les cookies first-party “script-writable” (ce qui est le cas ici) sont supprimés après 7 jours sans visite active sur le site. Pour en savoir plus : https://www.cookiestatus.com/safari/. La continuité de la donnée sera donc moins forte, en particulier si une personne revient après un temps important finaliser un achat.

    Les étapes que nous allons suivre sont les suivantes :

    • Créer un cookie avec un User-Id dans Google Tag Manager
    • Passer l’information à Google Analytics via GTM
    • Configurer Google Analytics pour recevoir cette donnée

    Version 1 : créer un cookie via GTM

    Nous allons créer un tag “Custom HTML” dans Google Tag Manager, et y coller le code suivant :

    <script>
    
    function setCookie(cname, cvalue, exdays) {
      var d = new Date();
      d.setTime(d.getTime() + (exdays*24*60*60*1000));
      var expires = "expires="+ d.toUTCString();
      document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
    }
    function getCookie(cname) {
      var name = cname + "=";
      var decodedCookie = decodeURIComponent(document.cookie);
      var ca = decodedCookie.split(';');
      for(var i = 0; i <ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') {
          c = c.substring(1);
        }
        if (c.indexOf(name) == 0) {
          return c.substring(name.length, c.length);
        }
      }
      return "";
    }
    
    // if cookie "ruid" does not exist, generate and write 
    if (!getCookie("ruid") || getCookie("ruid") == "") { 
      var ruidCookie = "";
      var chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
      var length = 10;
      for (var i = length; i > 0; --i) 
        ruidCookie += chars[Math.floor(Math.random() * chars.length)];
      
      // set "ruid" cookie with our alpha-numeric value. expires in 182 days, or ~6 months
      setCookie("ruid", ruidCookie, 182);
    }
    
    </script>

    Voici ce que fait le code :

    • Vérifie si un cookie “ruid” existe ou non
    • S’il n’existe pas, il le crée, avec comme valeur de champ “ruid” une variable aléatoire de 10 caractères et une expiration de 6 mois

    Nous allons jouer ce script sur toutes les pages, à partir du moment où l’utilisateur a donné son consentement :

    Screenshot 2020 09 10 at 12.42.54 | Créer un User-Id avec Google Tag Manager et Google Analytics

    Utiliser le User-Id créé dans Google tag manager

    Toujours dans Google Tag Manager, il faut créer une variable, qui va nous permettre d’utiliser ce “User-Id”.

    Pour cela, créer une variable de type “first party cookie”. Attention : il ne faut pas oublier de définir une valeur par défaut.

    Screenshot 2020 09 24 at 15.07.54 | Créer un User-Id avec Google Tag Manager et Google Analytics

    Passer l’information à Google Analytics

    Dans la configuration de la variable de tag analytics, vous pouvez maintenant configurer une “custom dimension”, qui reprend la valeur de l’identifiant unique ainsi créé :

    Screenshot 2020 09 10 at 13.59.17 | Créer un User-Id avec Google Tag Manager et Google Analytics

    Recevoir l’information dans Google Analytics

    Il faut également configurer la “custom dimension” dans le compte Google Analytics. Aller dans Admin → Custom Dimension :

    Screenshot 2020 09 10 at 14.03.04 | Créer un User-Id avec Google Tag Manager et Google Analytics

    Puis dans “scope”, choisissez “User” :

    Screenshot 2020 09 10 at 14.04.10 | Créer un User-Id avec Google Tag Manager et Google Analytics

    Version 2 : récupérer le “ClientID” de Google Analytics

    L’autre option est d’utiliser directement le ClientID utilisé par Google Analytics, pour le stocker dans une custom dimension. Il s’agit de la méthode expliquée ici : https://www.simoahava.com/gtm-tips/use-customtask-access-tracker-values-google-tag-manager/

    Il faut d’abord créer une custom dimension dans Google Analytics, et noter son numéro.

    Screenshot 2020 10 01 at 09.29.34 | Créer un User-Id avec Google Tag Manager et Google Analytics

    Ensuite , le principe est un peu différent : au moment du déclenchement du tag analytics, celui-ci va déclencher une fonction javascript (via un champ “customTask”). Et c’est cette fonction qui va envoyer la donnée à Google Analytics.

    De cette manière, nous sommes certains que le ClientID existe au moment où la donnée est envoyée à Google Analytics.

    Dans la variable de configuration de Google Analytics

    Dans “Fields to set” → CustomTask. Et lui donner le nom d’une variable javascript :

    Screenshot 2020 10 01 at 09.32.44 | Créer un User-Id avec Google Tag Manager et Google Analytics

    La variable javascript

    Il s’agit en réalité d’une fonction, qui va pousser la valeur du ClientId dans la dimension 4 :

    Screenshot 2020 10 01 at 09.34.55 | Créer un User-Id avec Google Tag Manager et Google Analytics

    function() {
      // Modify customDimensionIndex to match the index number you want to send the data to
      var customDimensionIndex = 4;
      return function(model) {
        model.set('dimension' + customDimensionIndex, model.get('clientId'));
      }
    }

     

    Et voilà. Il ne reste qu’à publier et à tester.

    Tester

    Dans la “Preview” de Google tag manager, vous n’aurez que cela :

    Screenshot 2020 10 01 at 10.23.42 | Créer un User-Id avec Google Tag Manager et Google Analytics

    C’est normal. La variable exécute la fonction. Elle ne permet pas d’en voir la valeur. Pour savoir si la donnée est bien envoyée dans Google Analytics, utiliser l’extension GA/GTM Debug.

    Dans la console développeurs de Chrome, activez l’extension

    Screenshot 2020 10 01 at 10.26.29 | Créer un User-Id avec Google Tag Manager et Google Analytics

    puis recharger la page, et allez voir l’onglet “GA”, et assurez-vous qu’une valeur est bien passée à la custom dimension que vous venez de créer.

    Screenshot 2020 10 01 at 10.27.46 | Créer un User-Id avec Google Tag Manager et Google Analytics

    Ne vous étonnez pas de ne pas voir les données tout de suite dans Google Analytics : les nouvelles dimensions ne remontent pas les données tout de suite. On peut attendre parfois jusqu’à 72h.

    Exploiter la donnée

    Publiez votre container GTM, et attendez un peu avant de voir la donnée remonter dans Google Analytics.

    Voici ensuite un exemple concret d’utilisation : Connecter Hubspot et Google Analytics : importer les conversions offline dans GA

    Suivez l'actualité Data

    Newsletter UnNest

    Ne manquez aucun contenu : recevez chaque mois la liste des derniers articles publiés.