Esiste un'impostazione su Google Analytics per sopprimere l'uso dei cookie per gli utenti che non hanno ancora dato il consenso


171

Ai sensi dell'articolo 5, paragrafo 3, della direttiva sulla privacy elettronica (alias "The Cookie Laws"), i siti web destinati agli utenti dell'UE devono ottenere il consenso esplicito degli utenti prima di impostare un cookie.

Vedi Guida ICO

Sto cercando di quadrare questo con Google Analytics sul mio sito web.

Immagino che Google Analytics (GA) possa fare un certo livello di raccolta dei dati analitici senza richiedere l'uso di cookie.

Tuttavia, non riesco a trovare alcuna informazione al riguardo (sui siti / pannelli delle impostazioni di Google) su come inoltrare informazioni sullo "stato di consenso" a Google durante una richiesta di pagina. Quindi, la mia unica opzione sembra essere quella di non incorporare il codice tag di Google a tutti se l'utente non abbia dato esplicito consenso. Che sembra un po 'drastico.

Consentire al mio script lato server di impostare a hasConsentedToCookies=FALSE flag nei tag JavaScript mi ​​consentirebbe di istruire i servizi di Google a funzionare in modo elegantemente degradato.

Esiste un'impostazione su Google Analytics per sopprimere l'uso dei cookie per gli utenti che non hanno ancora dato il consenso?

In tal caso, dove posso trovare informazioni su questo?


2
Aggiornamento: questa domanda era solita porre domande sia su Adsense che su Analytics, ma poiché la risposta per ciascuna potrebbe essere diversa, ho estratto l' aspetto "Google Adsense" da questa domanda per renderle più coerenti.
JW.

Alcune discussioni interessanti su news.ycombinator.com/item?id=4032633
Eduardo,

Nel caso in cui non lo sapessi: hai sentito parlare di Piwik? ( piwik.org )
TheHippo

Domanda buona e interessante!
Rob,

Google dice che puoi disabilitare i cookie, tuttavia non sembra funzionare o sto facendo qualcosa di sbagliato. Link: developers.google.com/analytics/devguides/collection/…

Risposte:


149

EDIT (2019): la risposta di seguito precede il GDPR e probabilmente richiede una revisione.

Google Analytics ha una nuova serie di API per aiutare la conformità con la disattivazione dei cookie. Ecco la documentazione ed ecco i loro documenti di aiuto .

Vi è stata una certa ambiguità sul fatto che i regolamenti sui cookie dell'UE (come attuati nei paesi membri) richiedano che il monitoraggio passivo dell'analisi web richieda meccanismi di attivazione per la conformità. Se sei preoccupato in un modo o nell'altro, consulta un avvocato. Google ti sta abilitando a prendere la decisione su come vuoi procedere.

Ti lasceranno i dettagli dell'implementazione, ma l'idea è che, una volta che hai determinato se tracciare o meno l'utente in Google Analytics, se la risposta è non tracciare, imposti la seguente proprietà su true prima di Google Analisi Analytics:

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

Dove UA-XXXXXX-Y è l'ID del tuo account in Google Analytics

Come hanno notato gli altri poster, Google Analytics si basa sui cookie. Pertanto, non è possibile eseguire alcun tipo di tracciamento senza i cookie. Se hai stabilito che qualcuno non deve essere cucinato per il monitoraggio, dovrai implementare qualcosa del genere:

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

Opt In

Ciò richiede un po 'di jujitsu per il primo caricamento di Google Analytics, poiché questa proprietà dovrà essere impostata prima dell'esecuzione di Google Analytics per evitare che si verifichi il monitoraggio, il che significa che per un approccio di "attivazione del monitoraggio", tu " probabilmente dovrebbe implementare un meccanismo in cui, alla prima visita, Google Analytics viene automaticamente disabilitato in assenza di un cookie di opt-in (i cookie che determinano le preferenze dei cookie sono esplicitamente ammessi) e quindi, se si verifica un opt-in, esegue Google Analytics. Nelle visualizzazioni di pagina successive, tutto andrebbe per il meglio.

Potrebbe assomigliare a (pseudo-codice):

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'
   }

Decidere di uscire

Con questo approccio, permetteresti all'utente di disattivare il tracciamento, il che significherebbe che utilizzeresti un cookie per impostare la ga-disable-UA-XXXXXX-Y'proprietà e un cookie per gestirlo in futuro:

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']);

2
Piccolo nitpick su una buona risposta - if (doNotCookie () {dovrebbe essere if (doNotCookie ()) {
Roee Shenberg,

1
Grazie per la risposta. Anche se non direi "consulta un avvocato". Probabilmente è più veloce per un tecnico leggere e comprendere la guida di quanto ci vorrebbe un avvocato per apprendere le sfumature dei tecnicismi.
JW.

1
Devo capire che se l'utente sceglie di NON memorizzare i cookie, la soluzione è memorizzare un cookie con questa preferenza? O questo cookie non è considerato soggetto alla normativa UE?
Jonathon Horsman,

5
Sì. La maggior parte delle normative che ho visto (in particolare, nel Regno Unito e credo in Francia) affermano esplicitamente che un cookie che memorizza le loro preferenze sui cookie non costituisce una violazione delle regole. Poiché i cookie sono l'unico modo accessibile universalmente per memorizzare lo stato nel browser, non c'è modo di aggirarlo.
Yahel,

17

Puoi disabilitare l'uso dei cookie per Google Analytics specificando l' {'storage' : 'none'}opzione durante la creazione dell'istanza del tracker.

Vedi la guida di Google sull'argomento per maggiori dettagli.


1
La guida dice che se disabiliti i cookie, devi implementare tu stesso un tracciamento simile, quindi questo non sembra aiutare.
mpartel,

4
@mpartel Perdi alcune informazioni: visitatori di ritorno e conversioni multicanale. Ma se non ne hai bisogno, questo è comunque accettabile.
Ali

16

Come nota breve, la BBC (probabilmente il sito più popolare nel Regno Unito) ha adottato un approccio interessante al rispetto dei cookie: hanno mostrato un banner agli utenti dicendo loro che i cookie sono impostati e forniscono un paio di collegamenti.

Questo spiega cosa sono i cookie. Questo consente loro di gestire i loro cookie , ma, cosa più interessante, forniscono un collegamento a Google Analytics per consentire agli utenti di annullare la sottoscrizione di GA nella sua interezza. Quindi, in sintesi, la BBC ha ritenuto di poter dire all'utente quali sono i cookie impostati e quindi fornire un link a Google per consentire all'utente di annullare la sottoscrizione a tutti i cookie GA. Per me, è molto meno seccante di quello che dici a GA di rinunciare a un indirizzo tramite JS.


13
VERAMENTE non presumo che la soluzione della BBC sia accettabile. In effetti, la loro soluzione è fondamentalmente imperfetta, per almeno tre motivi: 1) imposta i cookie prima di chiedere se sei disposto ad accettarli, 2) deve impostare un cookie per salvare le tue preferenze sui cookie, e 3) esso afferma che il sito non controllerà i cookie di terze parti, che violano direttamente lo spirito se non la lettera della direttiva UE. Ho il sospetto che i Beebs saranno schiacciati su questo, mentre stanno cercando di spingere i confini della legge in tutti i modi possibili mentre appaiono diversamente.
David T. Macknet,

Dai un'occhiata a blogs.wsj.com/tech-europe/2012/05/25/… per qualche buona discussione.
David T. Macknet,

Certo, forse mi sbaglio - apparentemente hanno cambiato i requisiti? blog.silktide.com/2012/05/… parla di una modifica ai requisiti, quindi non ne so più. Solo che non conosco queste persone, e Vivo qui (per ora)!
David T. Macknet,

Il registro ha un banner che dice che continuando a utilizzare il proprio sito si assume che l'utente acconsenta a consentire loro di utilizzare i cookie e un pulsante di accettazione.
iamichi,

6
@MartinClarke - Beh ... in realtà, non sono così sicuro che seguirò l'esempio di una società di media, in particolare perché mi aspetto che la BBC detenga una posizione speciale nel Regno Unito e che probabilmente mi verrà detto di dare forma piuttosto che essere schiaffeggiato con una multa. Penso che sia più una questione di rischio: la BBC non ha molto a rischio, in quanto ente finanziato pubblicamente, mentre un sito commerciale potrebbe avere.
David T. Macknet,

15

Spesso non chiedo mai agli utenti di rinunciare a google analytics, perché non ho mai impostato i cookie e non ho mai salvato il loro IP (e altri dati personali).

(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');

Dai un'occhiata anche a questo codice su Converti i cookie di Google Analytics in Local / Session Storage

Questo script non imposta alcun cookie, ma traccia comunque tramite Google Analytics. Questo in realtà avrà lo stesso effetto sulla privacy dell'utilizzo dei cookie, poiché Google registra ancora l'indirizzo IP dell'utente.

È qui che entra in gioco l'interruttore anonymizeIp. Questo dice a Google di salvare solo una versione anonima dell'indirizzo IP. Un indirizzo IP anonimo non è considerato un dato personale, pertanto la privacy degli utenti sarà rispettata.

La legge sui cookie di AFAIK riguarda la privacy e consente al sito Web di monitorare il loro utilizzo. Non sono un avvocato o altro, ma secondo me questa sceneggiatura è conforme alla normativa UE sui cookie.

Dai un'occhiata a questo plunk per vederlo in azione: http://plnkr.co/MwH6xwGK00u3CFOTzepK


ciao, questo non è sempre un approccio sicuro: ecco i motivi.
Caesarsol,

Ecco a cosa serve l' 'anonymizeIp': trueopzione, questo non memorizzerà un indirizzo IP. Mi piace utilizzare localstorage sui cookie per un paio di motivi che non hanno nulla a che fare con la legge sui cookie.
Elmer,

5
No, questo non è affatto conforme: - anonymizeIp è fuorviante e mantiene ancora troppe informazioni secondo le leggi dell'UE - LocalStorage è considerato come "Cookie" dalle leggi dell'UE Quindi questo pezzo di codice ti dà meno informazioni in GA e continua a non essere conforme con la legge.
Flunch

La "legge sui cookie dell'UE" è in realtà una direttiva, quindi dipende dalle leggi specifiche dei membri dell'UE. Ad esempio, l'autorità italiana per la privacy ha esplicitamente dichiarato che per la legge italiana non è richiesto il consenso dell'utente se si anonimizza l'indirizzo IP e si disabilita la condivisione dei dati con altri servizi sulla console di Google Analytics.
Mc

4
@Flunch " anonymizeIp è fuorviante e conserva ancora troppe informazioni secondo le leggi dell'UE" Fornire riferimenti. Perché non è accettabile e quando dovrebbe andare bene? Che cosa sono "troppe informazioni" ?
Ali

3

Puoi disabilitare i cookie di Google Analytics aggiungendo questo codice all'inizio del codice di Google Analytics (prima della riga: var _gaq = _gaq || [];):

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

Tuttavia, alcune funzionalità di Google Analytics (ad esempio statistiche in tempo reale) non funzionano correttamente dopo questa modifica. Ulteriori informazioni sui cookie analitici di Google: https://developers.google.com/analytics/devguides/collection/analyticsjs/domains?hl=it#disableCookies


cosa farebbe il var clientId = ...codice? Per quanto ne so, definisce una variabile locale all'interno della funzione, non è inutile?
Caesarsol,

Direi che è solo un esempio, si dovrebbe utilizzare clientIdall'interno della funzione in quanto è fatto su stackoverflow.com/questions/4502128/...
caesarsol

1

Il modo comune di gestirlo finora è il metodo utilizzato dal plug-in jquery di wolf-software in base al quale impedisce l'esecuzione dello script fino a quando l'utente non aderisce. L'ICO ha aggiornato le loro linee guida la scorsa settimana, tuttavia, per dire che è accettabile fare affidamento su " consenso implicito del tipo utilizzato sul sito della BBC. Anche se non penso che sia nello spirito della legge, è ciò che è ritenuto accettabile da coloro che la applicano. Dato che la maggior parte dell'UE non ha ancora implementato la direttiva, direi che è molto probabile che seguiranno l'esempio del Regno Unito.

C'è un articolo interessante sugli aggiornamenti del Regno Unito qui:

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


1

EDIT: V'è un ambiente di Google Analytics per questo con lo snippet asincrono GA.

Non esiste un'impostazione di Google Analytics per questo, come stai suggerendo, è necessario escludere condizionalmente lo script per coloro che non hanno acconsentito se si desidera utilizzare lo script di monitoraggio Javascript di Google Analytics.

Esistono già alcune soluzioni che possono essere utili invece di implementare le tue. Javascript: http://cookies.dev.wolf-software.com/demo/index.htm

Ecco una soluzione che consente di utilizzare le funzionalità di base di Google Analytics senza cookie, facendo il lato server di tracciamento, questo esempio è in PHP: http://techpad.co.uk/content.php?sid=205


Grazie per i collegamenti. link molto utili.
JW.

1

Per una soluzione UX meno invadente puoi impostare il consenso implicito per i cookie analitici di Google inserendo un link a: cookiestatement.eu (no javascript, nessun popup, nessun annuncio)


1

Ci scusiamo per il ritardo nel rispondere ma stavo cercando la stessa cosa di recente fino a quando non ho scoperto un modo da solo. Potrebbe non essere il modo giusto di farlo, ma funziona. (funziona solo sul sito in questione non rinuncia completamente a GA). Ho provato per alcuni giorni per essere sicuro.

Il modo in cui sono riuscito a farlo è usare un cookie PHP. Prima di tutto, aggiungi l'analitico stracking.php includi ...

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

e in analyticstracking.php aggiungi il seguente ...

<?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
}
?>

Prima che l'utente acconsenta ai cookie, Google Analytics non funzionerà e una volta che lo hanno fatto, il 'consent_cookie' verrà salvato e consentirà a GA di funzionare, ma se il cookie "google" viene distrutto, GA non funzionerà (ovviamente).

Come ho detto, potrebbe non essere la strada giusta, ma ho provato e testato. Spero che questo aiuti qualcuno.


0

Stavo affrontando lo stesso problema.

Alla fine, ho ottenuto una soluzione nella linea della risposta di Elmer, ma giocando in sicurezza per quanto riguarda gli IP, cioè senza usarelocalStorage

// 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()
});

(-) Ogni pagina visitata verrà considerata come un nuovo visitatore in Google Analytics, quindi sto perdendo molte funzionalità lì.

(+) Ma posso conviverci e credo di essere al sicuro riguardo alle normative sulla privacy dei dati.

Qualsiasi suggerimento di feedback o miglioramento è più che benvenuto.


-3

GA non funziona senza i cookie, ne ha bisogno per "identificare" il visitatore se ha visitato il tuo sito prima. Quindi non esiste alcuna impostazione in GA per questo, GA non registra il visitatore se non può creare un cookie.

Se l'utente proviene dall'UE e non ha aderito, dovresti escludere lo script di analisi di Google che penso.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.