Comment mettre Google Analytics en conformité au RGPD

• Thiébaut Devergranne

La mise en conformité d’une organisation au Règlement Européen en matière de Protection des Données personnelles – le RGPD – impose quelques passages obligés, dont Google Analytics fait partie. Cela en fait même un cas pratique très intéressant au regard des nombreuses questions soulevées par son implémentation.

Pour entrer dans le vif du sujet, on va donc voir pas à pas les problèmes que posent Google Analytics en termes de protection des données personnelles, avant de voir comment construire une solution qui soit 100% conforme.

I – En quoi Google Analytics pose problème ?

La première question à se poser est de déterminer en quoi Google Analytics est impacté par le RGPD. Pour le savoir il faut se référer au champ d’application du règlement qui est défini par l’article 2 :

1.   Le présent règlement s’applique au traitement de données à caractère personnel, automatisé en tout ou en partie, ainsi qu’au traitement non automatisé de données à caractère personnel contenues ou appelées à figurer dans un fichier.

Ainsi, dès que l’on traite des données personnelles le RGPD s’applique, et il est nécessaire de mettre en place un processus de conformité pour s’assurer du respect des exigences du règlement. Dans notre situation, il est donc essentiel de déterminer si Google Analytics traite des données à caractère personnel. On analysera donc cette notion, avant de déterminer ce type de données traitées par la solution de Google.

A- Qu’est-ce qu’une donnée personnelle au sens du RGPD ?

La notion de donnée personnelle a été définie dans l’article 4 :

«données à caractère personnel», toute information se rapportant à une personne physique identifiée ou identifiable (ci-après dénommée «personne concernée»); est réputée être une «personne physique identifiable» une personne physique qui peut être identifiée, directement ou indirectement, notamment par référence à un identifiant, tel qu’un nom, un numéro d’identification, des données de localisation, un identifiant en ligne, ou à un ou plusieurs éléments spécifiques propres à son identité physique, physiologique, génétique, psychique, économique, culturelle ou sociale;

On peut simplifier les choses en disant qu’est une donnée personnelle toute donnée qui permet d’identifier directement ou indirectement une personne physique.

Pour prendre un exemple concret, la jurisprudence a eu l’occasion de se prononcer à de nombreuses reprises sur la question de l’adresse IP qui est effectivement une donnée personnelle (dans de très nombreux cas) : « alors que les adresses IP, qui permettent d’identifier indirectement une personne physique, sont des données à caractère personnel, de sorte que leur collecte constitue un traitement de données à caractère personnel et doit faire l’objet d’une déclaration préalable auprès de la CNIL, la cour d’appel a violé les textes susvisés  » (arrêt n° 1184 du 3 novembre 2016 (15-22.595) – Cour de cassation – Première chambre civile – ECLI:FR:CCASS:2016:C101184).

Cette jurisprudence est intéressante car justement Google Analytics traite l’adresse IP des utilisateurs.

B – Quelles sont les données personnelles traitées par Google Analytics ?

On a vu que toute donnée permettant d’identifier une personne est une donnée personnelle, dont le traitement va générer l’application du règlement européen. Il nous reste donc à déterminer l’étendue des données traitées par Google Analytics.

A ce titre, Google traite au moins deux type d’informations potentiellement peuvent permettre d’identifier les visiteurs d’un site web : leur adresse IP ainsi que les cookies placés sur leurs navigateurs.

1) L’adresse IP

L’installation de Google Analytics va réaliser un traitement de données personnelles à partir du moment ou le code ajouté sur un site pour installer Google Analytics est chargé depuis les serveurs de Google. Classiquement, le code à ajouter pour mettre en place le service est le suivant :

<script async src= »https://www.googletagmanager.com/gtag/js?id=UA-xxxxxxx-xx »></script>

Dès lors, techniquement, le navigateur va réaliser une requête HTTP pour récupérer cette librairie Javascript sur les serveurs de Google, qui comporte forcément l’adresse IP du client. On peut l’observer ici matériellement ici :

Et voici un schéma simplifié des requêtes effectuées par le visiteur d’un site web :

A ce titre, Google dispose donc de l’adresse IP de chaque visiteur du site. L’adresse IP étant une donnée personnelle, le site mettant en place la solution Analytics réalise donc un traitement de données personnelles qui entre dans le champ d’application du règlement.

2) Les cookies

Et ce n’est pas tout. Une fois la librairie téléchargée, deux cookies sont déposés sur le navigateur :

Au-delà de l’application de la directive 2002/58 qui impose des règles spécifiques en matière de cookies et de traceurs web – et de sa mise à jour récente (e-privacy), qui pose d’autres questions juridiques – si l’on reste exclusivement sur le terrain du RGPD, la question qui se pose est de savoir si on est en présence d’un traitement de données personnelles au titre de ces données.

La réponse est beaucoup plus complexe, car si ces cookies ont pour objectif de permettre de reconnaître un navigateur spécifique, il n’est pas dit qu’il soit possible au webmaster qui installe Analytics d’identifier un visiteur avec ces cookies sans les combiner avec d’autres données (ex : l’adresse ip).

Que Google puisse identifier des personnes au moyen de ces cookies, c’est indiscutable – mais pour le webmaster qui installe Analytics – la question est très différente. Or, pour que l’on soit en présence d’un traitement de données personnelles, il faudrait être en mesure de déterminer l’ensemble des informations associés à ces cookies (le nombre de sessions de l’utilisateur en cause, son parcourt sur le site web, etc.). Or – à notre connaissance – il n’est pas possible d’avoir accès à ces données via Google Analytics. En cela, le webmaster qui installe Google Analytics n’a jamais accès aux données aux cookies placés sur les navigateurs des visiteurs de ses sites web. Donc côté webmaster on est tenté de conclure qu’il ne s’agit pas d’un traitement de données personnelles – et donc que le RGPD ne s’applique pas pour la partie cookies (encore une fois ce qui n’empêche pas l’application de la directive 2002/58 – qui est une question différente que l’on ne traitera pas ici – ni le fait que Google peut réaliser un traitement de données personnelles à ce titre qui est un autre problème).

Toujours est-il que ces cookies posent un réel problème de fond en termes de protection des données personnelles. En effet, au travers de ces cookies Google reste potentiellement en mesure d’accéder aux parcours des internautes sur l’ensemble des sites web utilisant la librairie.

Fort heureusement on peut éliminer ces problématiques.

II – Configurer Google Analytics pour être conforme au RGPD

Le fait est peut-être assez peu connu, mais Google a assez rapidement proposé des solutions techniques pour rendre l’usage de Google Analytics relativement anonyme (en fait, depuis le 25 mai 2010). Il existe aujourd’hui de nombreuses options de configuration permettant de limiter les traitements de données personnelles, comme la possibilité de ne pas utiliser de cookies par exemple :

De même Google propose une documentation technique complète pour anonymiser l’adresse IP :

Si ces efforts sont tout à fait louable, pour autant la solution n’est pas conforme au RGPD pour les raisons que l’on va voir en détail ci-dessous. Il est possible d’utiliser Analytics sans réaliser de traitement de données personnelles (et donc sans l’application du RGPD), mais cela impose certains développements que j’ai réalisé afin de donner un exemple d’implémentation réellement conforme.

Dans tous les cas, il faut gérer 2 problèmes essentiels.

A – Eviter d’envoyer des données personnelle à Google

Le premier problème à gérer pour rendre Analytics conforme au RGPD est d’éviter est d’envoyer des données personnelles à Google. A ce titre, deux mesures doivent être prises :

  1. S’assurer de ne pas avoir d’URL qui reflète des données personnelles (www.exemple.fr/jean-francois-dupont – car incidemment ces données vont être intégrées dans Analytics)
  2. S’assurer de ne pas envoyer des données personnelles dans Analytics comme des ID d’utilisateurs ou des données e-commerce liées à un ID client – cela implique en général une configuration spécifique mais il est important de l’éviter.

B – Gérer le problème de l’adresse IP des utilisateurs

Le second problème beaucoup plus délicat à gérer est d’éviter que Google ne puisse collecter l’adresse IP des utilisateurs de quelque manière que ce soit. Plusieurs solutions peuvent être mises en oeuvre.

Solution 1 : anonymize_ip (non conforme)

Comme indiqué précédemment, Google a mis en place une option qui permet d’éviter de traiter l’adresse IP dans Google Analytics :

Cette précaution est intéressante, mais elle ne nous permet pas d’évacuer l’application du RGPD dans la mesure ou la libraire est toujours téléchargée depuis le site de Google – et que les évènements Analytics sont toujours envoyés à Google par le client lui-même. Cela aura pour conséquence que le navigateur du visiteur va transmettre son adresse IP aux serveurs d’Analytics et donc réaliser un traitement de données personnelles…

Solution 2 : héberger la librairie sur ses serveur (non conforme)

Une seconde solution à laquelle on pense immédiatement consiste à installer la librairie sur ses propres serveurs, ce qui évite une requête sur les serveurs de Google et donc évite le traitement de l’adresse IP par Google.

C’est une vraie solution pour le chargement de la librairie – et il existe des plugins pour cela – mais (au-delà du fait qu’elle est déconseillée par Google) elle ne permet pas d’évacuer l’application du RGPD car le navigateur du client continuera à renvoyer des requête d’évènements aux serveurs de Google, pour indiquer qu’une page est consultée.

Solution 3 : intégrer Google Analytics côté serveur (conforme)

En réalité, la seule solution vraiment 100% conforme est de ne pas autoriser le navigateur à renvoyer des évènements à Google Analytics et renvoyer ces évènements directement depuis le serveur lui-même. C’est la seule solution qui permette de déterminer avec certitude qu’aucune donnée personnelle n’est envoyée à Google. Il faudra cependant s’assurer :

  • de renvoyer un ID visiteur anonyme (par exemple utiliser une librairie type Fingerprint2 – à intégrer dans une fonction de hachage ensuite – voir notre implémentation pour un exemple concret)
  • couplée éventuellement d’une IP anonymisée (192.168.12x.xxx).

Cette solution a la vertu d’éliminer totalement le traitement de données personnelles et donc d’évacuer l’application du RGPD.

La bonne nouvelle est que Google permet de mettre en place l’envoi d’évènements côté serveur. La documentation est d’ailleurs bien développée à ce titre (voir également ici). Il existe également des librairies PHP et quelques exemples de code.

Pour démontrer la faisabilité de ce concept, j’ai écrit un plugin WordPress qui fonctionne et que vous pouvez trouver ici, voici le code (désolé pour l’image, mais le code est beaucoup plus lisible de la sorte sans avoir à intégrer un eniemme plugin wordpress ou un script externe) :

 

Cette implémentation est une preuve de concept et nécessiterait d’être plus largement testée, mais cela marche !

C – Quelles conséquences si on accepte l’application du RGPD ?

La voie de la mise en oeuvre d’une solution côté serveur reste complexe et nécessitera encore des développements pour s’assurer d’une réelle implémentation opérationnelle.

On peut donc légitimement se demander si une solution plus simple ne serait pas finalement d’appliquer le RGPD et d’utiliser Google Analytics en l’état ?

Le problème est que cela va alors générer l’application du RGPD – ce qui emporte comme conséquence le fait qu’il va falloir s’assurer que l’ensemble de ces dispositions sont respectées. Voici quelques exemples qui vont illustrer cette complexité du fait de réaliser un traitement de données personnelles :

  • la nécessité de demander le consentement de chaque visiteur (article 6.1.a)
  • l’impossibilité de charger la librairie Analytics avant d’avoir obtenu ce consentement (complexité technique qui peut être résolue mais qui va nécessiter des développements spécifiques pour intégrer la librairie)
  • s’assurer que les données personnelles collectées sont effacées au terme d’un certain délai (art. 6.1.e)
  • s’assurer que le contrat fourni par Google pour la mise en place d’analytics est conforme à l’article 28
  • s’assurer de ne pas traiter de données sensibles au sens de l’article 9 et 10 ne soient renvoyées à Google (ex : une page web traitant de santé…)
  • s’assurer de donner la possibilité aux utilisateurs d’exercer leur droit d’accès, de rectification, d’effacement sur leurs données (art. 15, 16 et s.)
  • s’assurer de leur donner la possibilité d’exercer leur droit à la portabilité (même si cela ne fait aucun sens).

Bref, on voit assez rapidement que la simplicité est plutôt du côté de l’anonymisation !

Conclusion

Il est intéressant de voir que lorsque l’on entre dans les détails le RGPD est vraiment complexe et difficile à implémenter.

Même si l’on a montré qu’il est possible de réaliser un plugin côté serveur – il y aurait encore beaucoup de travail à faire pour concevoir une solution totalement opérationnelle qui permette d’exploiter Analytics de la même manière qu’avec la librairie côté client fournie par défaut par Google.

A ce jour – et à notre connaissance – il n’existe donc pas de solution simple qui permette d’utiliser Analytics à 100% en conformité au règlement. Il est indiscutable que les webmasters ne traitent quasiment pas de données personnelles (celles-ci étant agrégées pour l’essentiel) – mais d’un point de vue juridique, tant que les navigateurs clients vont chercher la libraire sur les serveurs de Google, on a un problème d’application du RGPD.


Commentaires...

Michel Bazet

Merci pour cet article et cette illustration pratique fort utiles pour expliquer le sujet à des administrateurs pas forcément au fait des implications technique de règles juridiques abstraites.

Olivier

Merci pour cette préciseuse info, Thiébaut .

Pour résumer le plug-in que vous fournissez en plus de l'anonymisation de l'ID, anonymise-t-il aussi, bien l'IP ou pas ?

Thiébaut Devergranne

Merci !

Thiébaut Devergranne

Il est 100% anonyme pour l'utilisateur - dans le sens ou aucune donnée permettant d'identifier des personnes sont envoyées à Google Analytics. Donc c'est 100% conforme

Sabrina

Bonjour, merci beaucoup pour cet article fort intéressant.

Je me demandais si le petit module (dont le développement a été arrêté, malheureusement) "tarteaucitron", conseillé par la CNIL en tant que gestionnaire de tags, fait l'affaire ou non : https://www.cnil.fr/fr/solutions-centralisees-de-recueil-de-consentement-aux-cookies-les-gestionnaires-de-tag

Sur le plan des cookies GA, tant que la personne n'a pas consenti, celui-ci ne se dépose pas, sauf erreur.

Qu'en pensez-vous ?

Merci encore.

Merci pour l'info Thiébaut :)

Oll

Patrice

J'utilise actuellement GA et en conséquence j'ai ajouté un traitement analytics dans mon registre. J'ai aussi mis en place "tarteaucitron", un gestionnaire de tags recommandé par la CNIL, qui permet de bloquer le chargement de la librairie tant que le consentement de l'utilisateur n'a pas été obtenu. Par ailleurs l'utilisateur peut retirer à tout moment son consentement. Et au niveau du paramétrage de GA, j'ai utilisé la nouvelle fonction de rétention de GA et j'ai choisi la durée de conservation minimum (14 mois. C'est étrange d'ailleurs que Google n'ai pas proposé 13 mois comme recommandé par le G29). Enfin j'ai anonymisé l'adresse IP en masquant le dernier octet (je sais que cela ne satisfait les recommandations de la CNIL mais Google ne permet pas autre chose à ma connaissance).

Du coup je pense être en règle mais je vais quand même tester votre plugin. Merci pour pour toutes ces informations extrêmement utiles

Etienne

Donc, dans le cas où l'on installe le plugin, doit-on se soucier d'autoriser ou d'interdire le cookie déposé par GA puisque celui-ci rend anonyme l'utilisateur ?

Merci.

Grégory Caudron

Merci pour votre article, très intéressant ! Il m'amène cependant à penser que par extension, une bonne partie des services de Google (que tout le monde utilise ou presque) sont non conformes du simple fait que pour les utiliser il est presque systématique qu'un navigateur client envoie une requête aux serveurs Google, ex : Google Maps. Et qu'il est plus que probable que Google stocke les adresses IPs ou d'autres informations systématiquement. La conformité pure semble être impossible à atteindre.

Patrick Chamayou

Bonjour,

Comme d'habitude super article, bravo et merci :)

Toutefois j'ai un doute sur la phrase suivante :

" [...]car le navigateur du client continuera à renvoyer des requête d’évènements aux serveurs de Google, pour indiquer qu’une page est consultée.…"

Oui mais justement si 'l'on utilise l’anonymisation e l'IP ... comment les données peuvent-elles être reliées à un utilisateur, pour peu que l'on charge la librairie à partir de son propre serveur ?

Merci d'avance pour votre réponse

Patrick

Patrick Chamayou

Suite de mon précédent commentaire :

Après quelques recherches je suis arrivé sur la page suivante :

https://support.google.com/analytics/answer/2763052

On y lit que si le paramètre concernant l'anonymisation est activé sur analytics, lors de l'enregistrement d'un évènement, l'adresse IP est transformée (pour faire simple) avant d'être enregistrée.

Il n'y aurait donc pas enregistrement de données personnelles.

Qu'en pensez-vous ?

Steven

Bonjour,

Ce plugin est-il un complément au script fourni par Google (Google Tag Manager ou Google Analytics)

yohan

Bonjour , donc si je comprends bien , avec cette méthode on n'est plus obligé de demander le consentement à nos visiteurs pour utiliser Google analytics ?

Christian

Merci pour cet article très intéressant.

Petite question : avec votre proposition de script côté serveur, comment distinguez-vous les différents visiteurs qui sont derrière un même proxy (et qui ont donc la même IP) ?

tony

Bonjour, merci pour l'article, je n'ai pas bien compris une chose, votre plugin rend conforme l'utilisation de google analitycs ou pas du coup ?

Thiébaut Devergranne

Oui ! Mais il n'est pas très mature en termes de développement, c'est plutôt une preuve de concept qu'un outil de production.

Jeff

Bonjour,

Merci pour l'article, concernant votre plugin, on l'upload directement via ftp dans le répertoire plugins de Wordpress ?

Merci

Valentin Cap

Bonjour Thiébaut,

L'article explique parfaitement et de manière juridique ce que signifie cette mise en conformité.

Cependant, après avoir lu, les premiers résultats Google sur la mise en conformité de nos données collectées, et pour tout bon webmaster qui se respecte, je trouve que la marche à suivre est relativement compliquée. Je ne recueille plus de données depuis le 25 Mai 2018.

Seriez-vous en train de nous dire que Google Analytics est en train de doucement tomber dans le déclin au profit de meilleurs outils ?

Je te tiens à préciser que j'utilise Analytics à des fins de blogueurs/administrateurs.

Merci

Valentin

Thiébaut Devergranne

Exact ! C’est tout l’intérêt !

Thiébaut Devergranne

Le plugin n’installe aucun cookie sur le navigateur de l’utilisateur ! Regardez dans le code j’utilise deux fonctions de hashage pour anonymiser l’utilisateur

Thiébaut Devergranne

Je n’ai pas utilisé ce plugin. En fait RGPD et cookies sont deux problématiques différentes. Le plugin n’utilise aucun cookies ce qui simplifie les choses

Thiébaut Devergranne

C’est pas mal mais c’est pas vraiment conforme. Encore une fois ne méprenez pas mes propos je ne dis pas qu’il faut etre 100% conforme c’est trop complexe et trop couteux - mon objectif est de montrer ici qu’une implémentation a 100% est tres complexe dans la realite. Par exemple avec votre système comment vous gérez les droits d’acces aux personnes ? Ou leur droit a la portabilité ? :)

Thiébaut Devergranne

En tant que webmaster effectivement c’est très complexe a l’heure actuelle oui. Mais attendez un an ou deux les solutions vont arriver progressivement

Thiébaut Devergranne

Merci :)

En fait meme si l’ip est anonymisee par Google lorsqu’elle est recue c’est une DCP.

Thiébaut Devergranne

On peut tout a fait le discuter. C’est une bonne argumentation et j’ai meme de la jurisprudence qui va dans ce sens. Le problème de fond est que Google a une telle infrastructure de masse que cela pose de reels problemes en termes de suivi des personnes potentiel - donc de protection des données personnelles. En fait on ne sait pas vraiment ce que Google fait des IP. Vu l’ampleur c’est difficile de ne pas dire que c’est un traitement de DCP, donc soumis au rgpd

Thiébaut Devergranne

Non c’est un remplacement

Thiébaut Devergranne

En fait le plugin prend l'IP de l'utilisateur + l'User Agent avant de hasher cette donnée, de rajouter du sel et d'envoyer cela à Google, de la sorte c'est totalement anonyme pour Google, mais on a un ID de notre côté :

# Create an anonymous ID - we double hash with salt, GA won't know who's who

$salt = hash("sha256", $_SERVER['SERVER_ADDR'] . $_SERVER['SERVER_NAME'] . $_SERVER['DOCUMENT_ROOT']);

$hash = hash("sha256", $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT'] );

$anon_id = hash("sha256", $salt . $hash);

Après cela devrait permettre de reconnaître plusieurs personnes derrière un proxy mais uniquement si elles ont des User Agent different, donc c'est pas du 100%. Clairement cela devrait être amélioré si on voulait avoir vraiment quelque chose en production

Thiébaut Devergranne

GA est un excellent outil - vraiment génial. Mon objectif est simplement ici de montrer la complexité réelle du RGPD si on va vraiment dans les détails - autant que de montrer qu'on peut trouver des solutions (qui nécessiteraient d'être maturées).

Frédéric

Bonjour Thiébault,

Merci pour cet excellent article et pour ce site web que je découvre tardivement.

Concernant cet article, est-ce que le nouveau règlement ePR (ePrivacy Regulation) qui remplace l'ancienne directive 2008/58/EC et vient compléter le GDPR, tout ennuyeux qu'il soit pour certains services ou logiciels en ligne, ne permet(tra) pas de contourner le problème de certains cookies "légitimes" (cfr Art. 8.1 a. à e.) ... par exemple à des fins statistiques ) ?

Merci,

Frédéric

Laurent

Bonjour Thiébaut,

Pour l'avoir placé sur différents site, l'avantage de tarteaucitron est qu'il donne le choix à l'utilisateur d'activer ou non les services sans les charger au préalable.

Sur ce site (qui n'est pas de moi) [EDIT] vous verrez exactement le fonctionnement du script. Les utilisateurs sont libres d'accepter ou non de voir les différents services (google maps, analytics, facebook, ...).

Je retiens quand même en plus votre solution anonymisation des IP. Je vais voir à l'inclure dans ma version de tarteaucitron que j'implémente chez mes clients.

Je cherche aussi par ailleurs des informations sur les traceurs de google fonts ... si vous avez des infos ...

Thiébaut Devergranne

Pour les fontes vous pouvez les charger directement dans le répertoire de votre site c'est la meilleure solution en fait. En plus le fait de charger des ressources de sites tiers crée des potentiels problèmes de sécurité - si vous dites à un navigateur de faire confiance au contenu d'un site et que celui-ci se fait pirater vos clients peuvent charger du contenu offensif, donc c'est plus de problèmes à gérer (bon même si pour Google le problème est moindre vu les équipes sécurité qu'ils ont).


Les commentaires sont fermés
Thiébaut Devergranne

Thiébaut Devergranne est docteur en droit. Il travaille en droit des nouvelles technologies depuis plus de 15 ans, dont 6 passés au sein des services du Premier Ministre. En savoir plus.

formation RGPD

VOS CGV (gratuit)