GA4 et proxyfication - Mise en place technique

Article publié en février 2023 par Quentin Bosco
Dans son guide de configuration de Google Analytics, la CNIL met en avant l’utilisation de la proxyfication comme solution pour continuer d’utiliser Google Analytics de manière légale. Ce guide de configuration implique de supprimer un certain nombre de données ; la suppression réelle de certaines de ces données pourraient rendre Google Analytics inutile.
Dans un précédent article, nous avons proposé notre propre analyse des recommandations de la CNIL en ce qui concerne la proxyfication de Google Analytics.
L’article est pour rappel disponible ici :
GA4 et proxyfication - Notre analyseGA4 et proxyfication - Notre analyse
Cet article sera maintenant plus opérationnel et technique : son objectif est de décrire la méthode que nous utilisons afin de mettre en place rapidement et efficacement la proxyfication avec le configuration évoquée au sein de notre analyse des recommandations de la CNIL.

Les pré-requis ?

Cet article part du principe que vous avez déjà mis en place un conteneur Google Tag Manager Server Side, ce qui inclut :
  • Avoir géré la partie infrastructure des serveurs (en passant par AddingWell par exemple)
  • Avoir mis en place un flux GA4 alimentant le serveur
👌
Pour avoir plus d’infos sur ces éléments, n’hésitez pas à parcourir nos différents articles sur le Server Side et à visionner notre webinar : GTM Server-Side : Dossier complet (webinar)GTM Server-Side : Dossier complet (webinar)

Méthode

L’objectif est de mettre en place les éléments suivants :
  • Réécriture du Client ID avec ajout d’une composante temporelle
  • Réduction du referrer au nom de domaine pour les referrer externes
  • La suppression du gclid et fbclid par défaut
  • Le retraitement des informations pouvant participer à la génération d’une empreinte (ou fingerprint)
  • La suppression de paramètres d’URL pouvant contenir des données personnelles
👌
Pour cela, nous avons préparé un conteneur GTM Server Side tout prêt, disponible sur GitHub : github.com/unnest/ga4-proxyfication
Pour cela, nous avons préparé un conteneur GTM Server Side tout prêt, disponible sur GitHub :
Comment l’utiliser ?
C’est simple, il suffit d’importer le JSON dans votre conteneur GTM Server Side.
Cela va automatiquement créer un tag GA4, déclenché par toute requête reçue par le Client GA4. Le tag GA4 est déjà pré-configuré : l’ensemble des champs (page_referrer, page_location, etc.) sont déjà modifiés.
Un seul élément est à modifier manuellement : indiquer quels sont vos domaines internes dans la variable Utilities - Internal Referrer Domains.
Evidemment, il reste ensuite à recetter pour vérifier que tout fonctionne comme attendu !

Principe technique

Le fonctionnement est fortement inspiré de la documentation AddingWell disponible ici : https://docs.addingwell.com/b/97A30022-AD3A-428F-A80C-36C34FABB271/Cnil-Proxyfication
La solution tire parti de plusieurs templates de variables :
  • Le template URL Parser proposé par Simo Ahava (disponible dans la galerie)
  • Un template que l’on crée, sur la base du précédent, et qui se nomme URL Parser - Return protocol & domain
  • Un autre template que l’on crée et qui se nomme Pseudonymize Variable (proposé par AddingWell dans sa documentation)
  • Le template Exclude or Whitelist Query String Parameters disponible dans la galerie
ℹ️
Ces templates sont directement inclus dans le JSON du workspace, inutile donc de les rajouter manuellement !
Voici donc un résumé :
Récupération de la variable initiale
Variable finale
Commentaire
Absence de transfert de l’adresse IP
N/a
N/a
On utilise la fonctionnalité native de GA4 qui anonymize les 3 derniers octets.
Le remplacement de l’identifiant utilisateur par le serveur de proxyfication
{{Event Data - Client ID}}
{{GA4 - Client ID Pseudonymized}}
On récupère le client_id et on le pseudonymise avec l’aide du template Pseudonymize Variable
{{Event Data - JS Client ID}}
{{GA4 - JS Client ID Pseudonymized}}
On récupère le x-ga-js_client_id et on le pseudonymise avec l’aide du template Pseudonymize Variable
La suppression de l’information de site référent (ou « referrer »)
{{Event Data - Page Referrer}}
{{GA4 - Page Referrer Domain}}
On récupère le page_referrer et on le réduit au nom de domaine à l’aide du template URL Parser
Le retraitement des informations pouvant participer à la génération d’une empreinte (ou fingerprint)
N/a
N/a
Suppression du champ user_agent dans le tag GA4 + valeur vide pour le champ screen_resolution + désactivation de “Granular location and device data collection” au sein de l’interface
Suppression de certains paramètres d’URL (gclid, fbclid + paramètres pouvant contenir des données personnelles)
{{Event Data - Page Location}}
{{GA4 - Page Location Pseudonymized}}
On supprime les paramètres gclid et fbclid ainsi que d’autres paramètres pouvant contenir des données personnelles. D’autre part, on obfusque les adresses email qui pourraient être contenues au sein des URL.
Le remplacement de l’identifiant utilisateur par le serveur de proxyfication et la suppression des informations sont complètement repris de la documentation AddingWell, nous vous invitons donc à la consulter !
Nous allons détailler ici les éléments qui diffèrent.

Suppression du referrer

Ici, plutôt que de supprimer complètement le referrer, nous allons :
  • le réduire au nom de domaine quand il s’agit d’un referrer externe
  • le conserver complètement quand il s’agit d’un referrer interne
Etape 1 : La variable Event Data - Page Referrer récupère la valeur de page_referrer.
Etape 2 : Grâce au template URL Parser, on récupère le hostname du referrer, sans “www.”, au sein de la variable Utilities - Page Referrer Domain without www.
Etape 3 : Grâce à cette variable nouvellement créée, on va maintenant définir la liste de ce que l’on considère être des referrer internes. On procède à cela au sein de la variable Utilities - Internal Referrer Domains .
Image without caption
Etape 4 : On crée maintenant la variable finale !
  • S’il s’agit d’un referrer interne, on renvoie le referrer complet soit Event Data - Page Referrer
  • S’il s’agit d’un d’un referrer externe, on réduit au nom de domaine et on renvoie donc GA4 - Page Referrer Domain with protocol
Image without caption

Nettoyage des URL et suppression du gclid et fbclid

Dans la lignée de ce que propose le CNIL, une bonne pratique consiste à supprimer certains paramètres d’URL. Il peut s’agir de paramètres contenant par essence des PII, par exemple un paramètre email. Dans le cadre des guidelines de la CNIL, nous allons aussi supprimer le gclid et le fbclid.
D’autre part, nous allons anonymizer de potentielles adresses email au sein de l’URL.
L’objectif ici va être de mettre en place 2 éléments :
  • La détection et suppression automatique de paramètres d’URL pouvant contenir des données personnelles ainsi que du gclid et du fbclid
  • La détection et anonymization de potentielles adresses email au sein de l’URL.
On utilise donc le template Exclude or Whitelist Query String Parameters afin de de créer la variable GA4 - Page Location Pseudonymized. On indique au sein de cette variable une liste de paramètres à supprimer systématiquement et on coche la case “Redact Email Addresses”.
NB : Pour aller plus loin, on pourrait bien sûr appliquer le même traitement au referrer !
Image without caption

Le tag de configuration GA4

Pour finir, le tag de configuration GA4 fait automatiquement référence aux différentes variables créées.
Image without caption