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 analyseCet 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)
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
.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
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 !
Le tag de configuration GA4
Pour finir, le tag de configuration GA4 fait automatiquement référence aux différentes variables créées.