Existe-t-il un paramètre sur Google Analytics pour supprimer l'utilisation de cookies pour les utilisateurs qui n'ont pas encore donné leur consentement

171

Conformément à l'article 5, paragraphe 3 de l'UE, de la directive sur la confidentialité en ligne (alias `` les lois sur les cookies ''), les sites Web qui ciblent les utilisateurs de l'UE doivent obtenir le consentement des utilisateurs avant de définir un cookie.

Voir le guide ICO

J'essaie de concilier cela avec Google Analytics sur mon site Web.

J'imagine que Google Analytics (GA) peut effectuer un certain niveau de collecte de données analytiques sans nécessiter l'utilisation de cookies.

Cependant, je ne trouve aucune information à ce sujet (sur les sites / panneaux de paramètres de Google) sur la façon de transmettre des informations sur «l'état de consentement» à Google lors d'une demande de page. Donc, ma seule option semble être que je ne devrais pas intégrer le code de l' étiquette Google tout si l'utilisateur n'a pas donné explicitement son consentement. Ce qui semble un peu drastique.

Laisser mon script côté serveur définir un hasConsentedToCookies=FALSEindicateur dans les balises JavaScript me permettrait de demander aux services de Google de s'exécuter de manière gracieusement dégradée.

Existe-t-il un paramètre sur Google Analytics pour supprimer l'utilisation de cookies pour les utilisateurs qui n'ont pas encore donné leur consentement?

Si oui, où puis-je trouver des informations à ce sujet?

JW.
la source
2
Mise à jour: Cette question posait à la fois sur Adsense et Analytics, mais comme la réponse pour chacun peut être différente, j'ai extrait l' aspect «Google Adsense» de cette question pour que chacun soit plus cohérent.
JW.
Quelques discussions intéressantes
Eduardo
Juste au cas où vous ne le sauriez pas: avez-vous entendu parler de piwik? ( piwik.org )
TheHippo
Bonne et intéressante question!
Rob
Google dit que vous pouvez désactiver les cookies, mais cela ne semble pas fonctionner ou je fais quelque chose de mal. Lien: développeurs.google.com

Réponses:

149

EDIT (2019): La réponse ci-dessous est antérieure au RGPD et nécessite probablement une révision.

Google Analytics dispose d'un nouvel ensemble d'API pour aider à la conformité avec une désactivation des cookies. Voici la documentation , et voici leurs documents d'aide .

Il y a eu une certaine ambiguïté quant à savoir si la réglementation de l'UE sur les cookies (telle que mise en œuvre dans les pays membres) exige que le suivi passif de l'analyse Web nécessite des mécanismes d'acceptation pour la conformité. Si vous êtes inquiet d'une manière ou d'une autre, consultez un avocat. Google vous donne le pouvoir de décider de la manière dont vous souhaitez procéder.

Ils vous laisseront les détails de la mise en œuvre, mais l'idée est qu'une fois que vous avez déterminé si vous souhaitez ou non suivre l'utilisateur dans Google Analytics, si la réponse est de ne pas suivre, vous définiriez la propriété suivante sur true avant Google Analytics exécute:

window['ga-disable-UA-XXXXXX-Y'] = true;

Où UA-XXXXXX-Y est votre identifiant de compte dans Google Analytics

Comme les autres affiches l'ont noté, Google Analytics s'appuie sur des cookies. Vous ne pouvez donc effectuer aucun type de suivi sans cookies. Si vous avez déterminé qu'une personne ne doit pas être préparée pour le suivi, vous devrez mettre en œuvre quelque chose comme ceci:

if(doNotCookie()){
   window['ga-disable-UA-XXXXXX-Y'] = true;
}

Accepter

Cela nécessite un peu de jujitsu lorsque vous chargez Google Analytics pour la première fois, car cette propriété devra être définie avant l' exécution de Google Analytics pour empêcher le suivi de se produire, ce qui signifie que pour une approche "opt-in to tracking", vous " d probablement besoin de mettre en œuvre un mécanisme où, lors de la première visite, Google Analytics est automatiquement désactivé en l'absence d'un cookie opt-in (les cookies qui déterminent les préférences de cookie sont explicitement autorisés), puis, si un opt-in se produit, re exécute Google Analytics. Sur les pages vues suivantes, tout se passerait bien.

Cela pourrait ressembler à quelque chose comme (pseudo-code):

if( hasOptedOut() || hasNotExpressedCookiePreferenceYet() ){ //functions you've defined elsewhere
     window['ga-disable-UA-XXXXXX-Y'] = true;
}
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXXXXXX-Y']);
  _gaq.push(['_trackPageview']);


  function onOptIn(){ //have this run when/if they opt-in.
      window['ga-disable-UA-XXXXXX-Y'] = false;
      //...snip...
      //set a cookie to express that the user has opted-in to tracking, for future pageviews
      _gaq.push(['_trackPageview']); // now run the pageview that you 'missed'
   }

Se désengager

Avec cette approche, vous permettriez à l'utilisateur de désactiver le suivi, ce qui signifierait que vous utiliseriez un cookie pour définir la ga-disable-UA-XXXXXX-Y'propriété et un cookie pour la gérer à l'avenir:

if( hasOptedOut() ){ // function you've defined elsewhere 
     window['ga-disable-UA-XXXXXX-Y'] = true;
}

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXXXXX-Y']);
  _gaq.push(['_trackPageview']);
Yahel
la source
2
Petit bout sur une bonne réponse - if (doNotCookie () {devrait être if (doNotCookie ()) {
Roee Shenberg
1
Merci d'avoir répondu. Bien que je ne dirais pas «consulter un avocat». Il est probablement plus rapide pour un technicien de lire et de comprendre les conseils qu'il ne faudrait un avocat pour apprendre les nuances des détails techniques.
JW.
1
Dois-je comprendre que si l'utilisateur choisit de NE PAS stocker de cookies, la solution est de stocker un cookie avec cette préférence? Ou ce cookie n'est-il pas considéré comme relevant de la réglementation européenne?
Jonathon Horsman
5
Oui. La plupart des réglementations que j'ai vues (en particulier celles du Royaume-Uni et de la France, je crois) disent explicitement qu'un cookie stockant leur préférence de cookie n'est pas une violation des règles. Étant donné que les cookies sont le seul moyen universellement accessible de stocker l'état dans le navigateur, il n'y a aucun moyen de le contourner.
Yahel
17

Vous pouvez désactiver l'utilisation de cookies pour Google Analytics en spécifiant l' {'storage' : 'none'}option lors de la création de l'instance de suivi.

Voir le guide de Google sur le sujet pour plus de détails.

Severin
la source
1
Le guide dit que si vous désactivez les cookies, vous devez mettre en œuvre vous-même un suivi similaire, donc cela ne semble pas aider.
mpartel
4
@mpartel Vous perdez certaines informations: visiteurs qui reviennent et conversions multicanaux. Mais si vous n'en avez pas besoin, c'est toujours acceptable.
Ali
16

En bref, la BBC (probablement le site le plus populaire du Royaume-Uni) a adopté une approche intéressante pour se conformer aux cookies - elle a affiché une bannière aux utilisateurs leur indiquant que les cookies sont définis et fournissent quelques liens.

Celui-ci explique ce que sont les cookies. Celui-ci leur permet de gérer leurs cookies , mais surtout, ils fournissent un lien vers Google Analytics pour permettre aux utilisateurs de désactiver GA dans son intégralité. Ainsi, en résumé, la BBC a estimé qu'elle pouvait indiquer à l'utilisateur quels cookies sont définis, puis fournir un lien vers Google pour permettre à l'utilisateur de désactiver tous les cookies GA. Pour moi, c'est beaucoup moins compliqué que de dire à GA de refuser une adresse via JS.

Martin Clarke
la source
13
Je ne suppose VRAIMENT pas que la solution de la BBC est acceptable. En fait, leur solution est fondamentalement imparfaite, pour au moins trois raisons: 1) elle définit des cookies avant de vous demander si vous êtes prêt à les accepter, 2) elle doit définir un cookie afin de sauvegarder vos préférences en matière de cookies, et 3) elle déclare que le site ne contrôlera pas les cookies tiers, ce qui est en violation directe de l'esprit sinon de la lettre de la directive européenne. Je soupçonne que les Beebs seront frappés par celui-ci, car ils essaient de repousser les limites de la loi de toutes les manières possibles tout en paraissant autrement.
David T.Macknet
Jetez un œil à blogs.wsj.com/tech-europe/2012/05/25/… pour une bonne discussion.
David T.Macknet
Bien sûr, je me trompe peut-être - apparemment, ils ont changé les exigences? blog.silktide.com/2012/05/… parle d'un changement des exigences, donc je n'en sais plus. Je ne sais pas pour ces personnes, et je vis ici (pour l'instant)!
David T.Macknet
Le registre a une bannière qui dit en continuant à utiliser leur site , ils supposent que votre accord pour les laisser utiliser les cookies ainsi qu'un bouton d' acceptation.
iamichi
6
@MartinClarke - Eh bien ... en fait, je ne suis pas sûr de suivre l'exemple d'une société de médias, en particulier parce que je m'attendrais à ce que la BBC occupe une position spéciale au Royaume-Uni et qu'on lui demande probablement de façonner plutôt que d’être giflé d’une amende. Je pense que c'est plus une question de risque - la BBC n'a pas beaucoup de risques, en tant qu'organisme financé par l'État, alors qu'un site commercial pourrait en avoir.
David T.Macknet
15

Je ne demande souvent jamais aux utilisateurs de désactiver Google Analytics, c'est parce que je ne configure jamais de cookies et que je n'enregistre jamais leur adresse IP (et d'autres données personnelles).

(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');

ga('create', 'UA-98765432-1', 'www.example.com', {
  'anonymizeIp': true
  , 'storage': 'none'
  , 'clientId': window.localStorage.getItem('ga_clientId')
});
ga(function(tracker) {
  window.localStorage.setItem('ga_clientId', tracker.get('clientId'));
});
ga('send', 'pageview');

Consultez également ce code sur Convertir les cookies Google Analytics en stockage local / de session

Ce script ne définira aucun cookie, mais effectuera toujours un suivi via Google Analytics. Cela aura en fait le même effet sur la confidentialité que l'utilisation de cookies, car Google enregistre toujours l'adresse IP des utilisateurs.

C'est là que le commutateur anonymizeIp entre en jeu. Cela indique à Google de ne sauvegarder qu'une version anonyme de l'adresse IP. Une adresse IP anonyme n'est pas considérée comme une donnée personnelle, la confidentialité des utilisateurs sera donc respectée.

La loi sur les cookies d'AFAIK concerne la confidentialité et permet au site Web de suivre leur utilisation. Je ne suis pas avocat ou quoi que ce soit, mais à mon avis, ce script est conforme à la loi européenne sur les cookies.

Découvrez ce plunk pour le voir en action: http://plnkr.co/MwH6xwGK00u3CFOTzepK

Elmer
la source
bonjour, ce n'est pas toujours une approche sûre: voici les raisons.
caesarsol
C'est à cela que sert l' 'anonymizeIp': trueoption, cela ne stockera pas d'adresse IP. J'aime utiliser le stockage local sur les cookies pour plusieurs raisons qui n'ont rien à voir avec la loi sur les cookies.
Elmer
5
Non, cela n'est pas du tout conforme: - anonymizeIp est trompeur et conserve toujours trop d'informations selon les lois de l'UE - LocalStorage est considéré comme un «cookie» par les lois de l'UE Donc, ce morceau de code vous donne moins d'informations en GA et n'est toujours pas conforme avec la loi.
Flunch
La "loi européenne sur les cookies" est en fait une directive, elle dépend donc des lois spécifiques des membres de l'UE. Par exemple, l'autorité italienne de confidentialité a explicitement déclaré que, pour la loi italienne, le consentement de l'utilisateur n'est pas requis si vous anonymisez l'adresse IP et désactivez le partage de données avec d'autres services sur la console Google Analytics.
mcont
4
@Flunch "anonymizeIp est trompeur et conserve toujours trop d'informations conformément aux lois de l'UE" Veuillez fournir des références. Pourquoi n'est-ce pas acceptable et quand serait-ce acceptable? Qu'est-ce que «trop d'informations» ?
Ali
3

Vous pouvez désactiver les cookies google analytics en ajoutant ce code en haut du code google analytics (avant la ligne: var _gaq = _gaq || [];):

ga('create', 'UA-XXXXXX-XX', {'storage': 'none'});
ga(function(tracker) {
  var clientId = tracker.get('clientId');
});

Cependant, certaines fonctionnalités de Google Analytics (par exemple les statistiques en temps réel) ne fonctionnent pas correctement après cette modification. En savoir plus sur les cookies de Google Analytics: https://developers.google.com/analytics/devguides/collection/analyticsjs/domains?hl=en#disableCookies

sans nom
la source
que ferait le var clientId = ...code? Autant que je sache, il définit une variable locale à l'intérieur de la fonction, n'est-ce pas inutile?
caesarsol
Je suppose que ce n'est qu'un exemple, vous devriez utiliser clientIdà l'intérieur de la fonction telle qu'elle est faite sur stackoverflow.com/questions/4502128
...
1

La manière courante de gérer cela jusqu'à présent est la méthode utilisée par le plugin jquery de wolf-software par laquelle il empêche le script de s'exécuter jusqu'à ce que l'utilisateur opte. L'ICO a mis à jour ses directives la semaine dernière, cependant, pour dire qu'il est acceptable de s'appuyer sur ' consentement implicite »du type utilisé sur le site de la BBC. Bien que je ne pense pas vraiment que ce soit dans l'esprit de la loi, c'est ce qui est jugé acceptable par ceux qui l'appliquent. Étant donné que la plupart des pays de l'UE n'ont pas encore mis en œuvre la directive, je dirais qu'il est fort probable qu'ils suivront l'exemple du Royaume-Uni.

Il y a un article intéressant sur les mises à jour du Royaume-Uni ici:

http://www.redant.com/articles/eu-cookie-law-update-ico-adopts-softly-softly-approach/

Chris Disley
la source
1

EDIT: il existe un paramètre Google Analytics pour cela avec l'extrait de code asynchrone GA.

Il n'y a pas de paramètre Google Analytics pour cela, comme vous le suggérez, vous devrez exclure conditionnellement le script pour ceux qui n'ont pas consenti si vous souhaitez utiliser le script de suivi Javascript de Google Analytics.

Il existe déjà des solutions qui peuvent être utiles au lieu de lancer la vôtre. Javascript: http://cookies.dev.wolf-software.com/demo/index.htm

Voici une solution qui permet d'utiliser les fonctionnalités de base de Google Analytics sans cookies, en faisant du tracking côté serveur, cet exemple est en PHP: http://techpad.co.uk/content.php?sid=205

Alex Taylor
la source
Merci pour les liens. liens très utiles.
JW.
1

Pour une solution UX moins intrusive, vous pouvez définir un consentement implicite pour les cookies analytiques Google en plaçant un lien vers: cookiestatement.eu (pas de javascript, pas de popups, pas de publicité)

Matt Clegg
la source
1

Désolé d'être en retard pour répondre mais je cherchais la même chose récemment jusqu'à ce que je trouve moi-même un moyen. Ce n'est peut-être pas la bonne façon de procéder, mais cela fonctionne. (ne fonctionne que sur le site en question ne désactive pas complètement GA). J'ai testé pendant quelques jours pour m'en assurer.

La façon dont j'ai réussi à le faire est d'utiliser un cookie PHP. Commencez par ajouter le fichier analyticstracking.php include ...

<?php include_once('analyticstracking.php'); ?>

et dans analyticstracking.php, ajoutez ce qui suit ...

<?php
if($_COOKIE['consent_cookie']=="Y"){
?>

<script type="text/javascript">
var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-********-*']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript';     ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' :      'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0];      s.parentNode.insertBefore(ga, s);
  })();
</script>

<?php   
}
else{
//do nothing
}
?>

Avant que l'utilisateur n'ait consenti aux cookies, Google Analytics ne fonctionnera pas et une fois qu'ils l'ont fait, le 'consent_cookie' sera enregistré et permettra à GA de fonctionner, mais si le cookie 'google' est détruit, il arrêtera GA de fonctionner (évidemment).

Comme je l'ai dit, ce n'est peut-être pas la bonne façon, mais j'ai essayé et testé et c'est le cas. J'espère que cela aide quelqu'un.

Pezmo
la source
0

J'étais confronté au même problème.

Finalement, j'ai eu une solution dans la ligne de la réponse d' Elmer mais en jouant prudemment en ce qui concerne les IP, c'est-à-dire sans utiliserlocalStorage

// Create a fake ID instead of storing anything locally
function guidGenerator() {
    var S4 = function() {
       return (((1+Math.random())*0x10000)|0).toString(16).substring(1);
    };
    return (S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4());
}

...
ga('create', 'UA-XXXXXX-Y', {
        'storage': 'none',
        'clientId': guidGenerator()
});

(-) Chaque page visitée comptera comme un nouveau visiteur dans Google Analytics, donc je perds pas mal de fonctionnalités là-bas.

(+) Mais je peux vivre avec et je crois que je suis en sécurité en ce qui concerne les législations sur la confidentialité des données.

Tout commentaire ou suggestion d'amélioration est plus que bienvenu.

J0ANMM
la source
-3

GA ne fonctionne pas sans cookies, il en a besoin pour «identifier» le visiteur s'il a déjà visité votre site. Il n'y a donc pas de paramètre dans GA pour cela, GA n'enregistre tout simplement pas le visiteur s'il ne peut pas créer de cookie.

Si l'utilisateur vient de l'UE et n'a pas opt-in, vous devez exclure le script google-analytics, je pense.

Scripteur
la source