MenuMenu

Proxyfication Google Analytics 4 - Tutoriel

En février 2022, la CNIL a jeté un grand coup de froid dans l’éco-système marketing en rendant Google Analytics, la solution de webanalyse la plus utilisée au monde, illégale en France ! Un gros vent de panique se lève alors et les recherches pour trouver une solution alternative se mutliplient. Matomo, Piano Analytics, Piwik Pro, Eulerian ? Et si la solution était de continuer d’utiliser ou de migrer sur Google Analytics 4 ? Dans une note du 7 juin 2022, la CNIL précise qu’il existe une voie pour continuer à utiliser l’outil d’analyse de Google : la proxyfication.

Qu’est-ce que la proxyfication ?

La CNIL décrit la proxyfication comme le fait de mettre en place un serveur mandataire entre le terminal de l’utilisateur et les serveurs de Google Analytics. Cela est notamment possible par l’utilisation de Google Tag Manager Server-Side. Les requêtes habituellement envoyées directement vers les serveurs de Google seront adressées à un serveur dédié au tracking, hébergé en Europe.

image_content

Site sans proxyfication, la requête Google Analytics est directement envoyée vers les serveurs de Google.

image_content

Depuis ce serveur de tracking et l’interface de Google Tag Manager Server-Side il sera alors possible d’effectuer des transformations sur la donnée, selon les directives de la CNIL.

Que dit la CNIL ?

Afin de rendre son utilisation de Google Analytics 4 conforme, la CNIL impose certaines mesures :

  • L’absence de transfert de l’adresse IP vers les serveur de Google Analytics.
  • La pseudonymisation de l’identifiant utilisateur.
  • La suppression de l’information de site référent (referer) externe au site.
  • La suppression de tout paramètre contenu dans les URL collectées.
  • La suppresion du user_agent, pouvant participer à la génération d’une empreinte (fingerprint).
  • L’absence de toute collecte d’identifiant entre sites (cross-site) ou déterministe.
  • La suppression de toute autre donnée pouvant mener à une réidentification.

Tout ce qui est décrit ci-dessus peut-être mis en place dès lors que vous possédez une installation de tracking Google Tag Manager Server-Side.

Voyons désormais comment mettre cela en pratique.

Proxyfier Google Analytics 4

Pour commencer il faut être sûr que votre balise Google Analytics envoie bien la requête au serveur. Pour cela, il vous suffit de cocher “Envoyer au conteneur de serveur” et de renseigner l’URL de votre serveur de tracking.

image_content

À partir de maintenant chaque déclenchement d’une balise Google Analytics 4 générera un événement côté serveur.

Pour rappel, cette configuration côté serveur ne vous exempt par de demander le consentement à vos visiteurs. Pour en savoir plus sur la façon de configurer votre CMP Axeptio côté serveur, lisez cet article (lien vers l’article server-side et consentement)

1. Suppresion de l’IP

Google Analytics rogne systèmatiquement le dernier octet de chaque adresse IP, cela n’est pas suffisant aux yeux de la CNIL.

Heureusement vous avez la possiblité d’empêcher simplement de transférer celle-ci vers les serveur de Google. Pour cela choisissez “Vrai” sur l’option “Masquer l’adresse IP du visiteur” de la balise GA4.

image_content

2. Pseudonymisation de l’identifiant utilisateur

Dès lors que que vous visitez un site doté de Google Analytics, vous vous voyez attribuer un identifiant utilisateur. Celui-ci est stocké dans un cookie “_ga”, qui servira à faire le lien entre vos différentes sessions.

La CNIL nous dit : “Pour assurer une pseudonymisation effective, l’algorithme effectuant le remplacement devrait assurer un niveau de collision suffisant (c’est-à-dire une probabilité suffisante que deux identifiant différents donnent un résultat identique après hashage ) et comporter une composante temporelle variable (ajouter à la donnée hashée une valeur qui évolue avec le temps pour que le résultat du hashage ne soit pas toujours le même pour un même identifiant)”

Nous allons deux réaliser cette action en deux phases :

  1. Définition d’un nouveau cookie, d’une durée de 30 minutes, qui se renouvelle à chaque événement effectué par l’utilisateur. Ce cookie “r_ga_token” à donc une espérence de vie d’une durée de session.
  2. Pseudonymisation du client_id et du x_ga_js_client_id
  3. Création du cookie “r_ga_token”

Commencez par importer le template de variable suivant (mettre le lien) dans la section Modèle :

image_content
image_content

Vous pouvez ensuite créer la variable et la nommer selon votre nomenclature :

image_content

Cette variable créera un nouveau cookie r_ga_token (valeur random), s’il n’est pas existant ou renverra la valeur du cookie s'il existe.

Allez désormais dans la galerie de modèle des balises et télécharger le template “Cookie Monster”.

image_content

Créez maintenant une balise en utilisant ce template et selectionnez “Add cookie”

image_content

Definissez alors le nom du cookie comme décrit et choisissez la variable précédemment créée comme valeur. Enfin définissez une durée de 30 minutes, soit 1800 secondes.

Enfin utilisez le déclencheur suivant :

image_content

Grâce à celui-ci, le cookie va se prolonger de 30 minutes à chaque événenement réalisé par l’utilisateur.

image_content

On voit ici que le cookie a été créé lors de ma première visite…

image_content

b. Pseudonymisation du client_id et du x_ga_js_client_id

Maitenant que l’identifiant aléatoire est créé, nous allons remplacer, et donc pseudonymiser les deux paramètres permettant d’identifier un visiteur : le x-ga-js_client_id et le client_id.

Nous allons de nouveau nous rendre dans la section Modèle afin d’utiliser un template de variable créé par les équipes d’Addingwell.

1) Donnez un nom à la variable :

image_content

2) Allez dans “Champs” et selectionnons “Saisie de texte” :

image_content

3) Allez dans la roue crantée et selectionnez “Règle de validation” :

image_content

4) Renseignez les champs comme ci-dessous :

image_content

Allez dans la section code et insérez le code suivant :

const getCookieValues = require("getCookieValues");
const sha256Sync = require('sha256Sync');
const math = require("Math");
const key = getCookieValues('r_ga_token')[0];

return sha256Sync(data.Input + '.' + key, {outputEncoding: 'hex'});
image_content

6) Enfin donnez l’authorisation afin que l’API puisse lire le cookie r_ga_token.

image_content

On lit dans le code que la variable est est hachée, et qu’elle correspond à la concaténation entre l’Input (que nous définissons plus bas) et le cookie “r_ga_token”. L’identifiant unique de l’utilisateur expirera donc 30 minutes après sa dernière action (soit à la fin de sa session).

Nous arrivons maintenant dans la dernière phase de cette mission de pseudonymisation de l’identifiant utilisateur. Il nous reste plus qu’à créer les variables qui viendront remplacer les valeurs nativement en place.

Commençons par configurer deux variables de “Données d’événement” qui viendront capturer les valeurs du client_id et du x-ga-js_client_id :

image_content
image_content

Utilisons maintenant notre template de variable précédemment créer pour venir remplacer les valeurs de ces deux variables.

image_content
image_content

Les variables sont créées, pseudonymisées et hachées, il nous reste alors à les envoyer en remplacement de celles par défaut.

Pour cela retournons, dans la balise Google Analytics 4 et ajoutons les deux champs suivants dans “Paramètres à ajouter/modifier.

image_content

3. Suppression du domaine référent

La CNIL demande ensuite de supprimer le lien du domaine référent, s’il est externe au site. En effet nous allons vouloir conserver le flux de page de l’utilisateur sur notre site. Il va donc falloir faire la distinction entre les liens de provenance.

Pour commencer créons une variable de type “Données d’événement” afin de capturer la valeur du page_referrer.

image_content

À partir de la valeur de cette variable nous allons vouloir distinguer les domaines référants interne et externe. Pour cela ajoutez à votre espace le template de variable URL Parser.

image_content

Nous sélectionnons ensuite notre variable Event Data - page_referrer comme URL Source et nous allons choisir Host Name dans la liste déroulante afin de faire ressortir uniquement le nom de domaine.

image_content

Il nous reste maintenant plus qu’à créer notre variable de page_referrer proxyfié. Soit le domaine est interne auquel cas nous enverrons l’url référante à GA4, soit il est externe et nous enverrons un champ undefined.

Pour réaliser cela, créez une variable “Tableau de conversion” et selectionnez en variable d’entrée l’URL filtrée au domaine.

Renseignez ensuite votre ou vos noms de domaine en entrée avec comme sortie la variable page_referrer. Enfin cochez “Définir la valeur par défaut”, tout en laissant son contenu vide.

image_content

Il ne reste plus qu’à ajouter un nouveau paramètre page_referrer dans la balise GA4, comme indiqué ci-dessous.

image_content

4. Suppression des paramètres d’URL

Dans sa documentation la CNIL impose de supprimer tous les paramètres d’URL. Cela signifie que les UTMs doivent être filtrés avant le transfert à GA4, tout comme les paramètre gclid (Google Ads) ou encore fbclid (Meta Ads).

Notons qu’en supprimant le domaine référent externe au site ainsi que les paramètres d’URL, Google Analytics ne sera plus en capacité de déterminer vos sources d’acquisition. La CNIL établit en effet cette donnée comme étant personnelle.

Pour supprimer ces paramètres, nous allons ajouter un nouveau modèle de variable, codé par Addingwell.

Dans la section Informations, nommer le template “Page Location”, puis insérer ce code dans la section appropriée.

image_content
const getEventData = require('getEventData');
const parseUrl = require('parseUrl');

const parsedUrl = parseUrl(getEventData('page_location'));
if (!parsedUrl) return;

return parsedUrl.protocol + '//' + parsedUrl.hostname + parsedUrl.pathname;

Enfin sélectionnez “Toutes” comme autorisation de lecteur des données d’événement.

image_content

Enregistrez le modèle et créez tout simplement une variable à partir de celui-ci. Vous n’avez ici aucun paramètre à spécifier.

image_content

Retournez ensuite dans la balise GA4, afin d’ajouter cette variable comme valeur au paramètre page_location.

image_content

5. Suppression du user_agent

Le paramètre user_agent correspond aux caractéristiques techniques de l’appareil sur lequel l’utilisateur visite votre site.. Que ce soit d’un point de vue matériel ou software.

En croisant ces données, Google pourrait faire du fingerprinting et ainsi identifier un utilisateur de manière unique. Vous avez du mal à le croire ? Vous pouvez vérifier l’unicité de votre configuration grace au site AmIUnique

image_content

En retournant dans notre balise GA4, nous allons tout simplement ajouter en paramètre à exclure le user_agent mais aussi le screen_resolution, qui donne des informations sur la taille de l’écran de l’utilisateur.

image_content

En retournant dans notre balise GA4, nous allons tout simplement ajouter en paramètre à exclure le user_agent mais aussi le screen_resolution, qui donne des informations sur la taille de l’écran de l’utilisateur.

6. Absence de toute collecte d’identifiant entre sites (cross-site) ou déterministe

Après avoir réalisé des paramétrages techniques afin de bloquer des informations, les deux prochaines sections abordent les éléments de tracking qu’il ne faut pas mettre en place.

  1. Tracking entre sites

Si vous possèdez plusieurs sites sur des domaines distincts, il ne sera pas possible d’utiliser le cross-domain tracking afin de suivre l’activité d’un utilisateur qui migrerait d’un site à l’autre. Cette option est de toute façon rendue impossible par la suppression des paramètres d’URL. En effet le cross-domain tracking fonctionne avec la décoration d’URL.

b. Identifiant déterministe

Le user_id est un paramètre régulièrement utilisé, afin d’ajouter un idenfiant propre à votre base de données ou CRM, qui perdurera dans le temps. Cela permettrait donc de suivre l’activité multi-session de l’utilisateur. C’est pourquoi vous ne pouvez pas le mettre ne place, si vous souhaitez vous mettre en conformité avec les directives de la CNIL.

7. Suppression de toute autres données pouvant mener à une réidentification

Cela tombe sous le sens, mais vous ne devez en aucun cas transmettre des données telles que le numéro de téléphone, l’adresse email ou encore le nom de votre utilisateur.

Sachez par ailleurs que ces données ne sont pas utiles à Google Analytics, qu’elles soient hachées ou non.

Ici vous n’avez donc rien à filtrer, soyez juste vigilant à de ne pas envoyer ces données manuellement avec votre balise.

Conclusion

Le processus de proxyfication est obligatoire si vous souhaitez continuer à utiliser Google Analytics 4, tout en respectant la loi.

Cette article vous permet de mettre en place étape à étape ce processus. Si toutefois, vous souhaitez vous faire accompagner, n’hésitez pas à prendre contact avec les équipes d’Axeptio.

Tag
Proxyfication, GA4
Problème résolu
Utiliser Google Analytics 4 en conformité avec les recommandations de la CNIL
Temps de mise en place
4h