¿Existe una configuración en Google Analytics para suprimir el uso de cookies para los usuarios que aún no han dado su consentimiento?

171

De acuerdo con el artículo 5 (3) de la UE de la Directiva de privacidad electrónica (también conocido como 'The Cookie Laws'), los sitios web que se dirigen a los usuarios de la UE deben obtener el consentimiento de los usuarios antes de establecer una cookie.

Ver orientación de ICO

Estoy tratando de corregir esto con Google Analytics en mi sitio web.

Me imagino que Google Analytics (GA) puede hacer un cierto nivel de recopilación de datos analíticos sin requerir el uso de cookies.

Sin embargo, no puedo encontrar ninguna información sobre esto (en los sitios / paneles de configuración de Google) sobre cómo transmitir información sobre el "estado de consentimiento" a Google durante una solicitud de página. Por lo tanto, mi única opción parece ser que no debería incrustar código de etiqueta de Google en absoluto si el usuario no ha dado su consentimiento de forma explícita. Lo que parece un poco drástico.

Permitir que mi script del lado del servidor establezca una hasConsentedToCookies=FALSEbandera en las etiquetas de JavaScript me permitiría instruir a los servicios de Google para que se ejecuten de manera elegante y degradada.

¿Existe una configuración en Google Analytics para suprimir el uso de cookies para los usuarios que aún no han dado su consentimiento?

Si es así, ¿dónde puedo encontrar información sobre esto?

JW
fuente
2
Actualización: Esta pregunta solía preguntar sobre Adsense y Analytics, pero dado que la respuesta para cada uno puede ser diferente, he extraído el aspecto 'Google Adsense' de esta pregunta para permitir que cada uno sea más coherente.
JW.
Algunos debates interesantes
Eduardo
En caso de que no sepas esto: ¿Has oído hablar de piwik? ( piwik.org )
TheHippo
Buena e interesante pregunta!
Rob
Google dice que puede deshabilitar las cookies, sin embargo, parece que no funciona o estoy haciendo algo mal. Enlace: developers.google.com/analytics/devguides/collection/…

Respuestas:

149

EDITAR (2019): la respuesta a continuación es anterior a GDPR y probablemente requiera revisión.

Google Analytics tiene un nuevo conjunto de API para ayudar con el cumplimiento de una opción de exclusión de cookies. Aquí está la documentación , y aquí están sus documentos de ayuda .

Ha habido cierta ambigüedad sobre si las Regulaciones de cookies de la UE (tal como se implementan en los países miembros) requieren que el seguimiento pasivo de análisis web requiera mecanismos de aceptación para el cumplimiento. Si le preocupa de una forma u otra, consulte a un abogado. Google lo faculta para tomar la decisión sobre cómo desea proceder.

Le dejarán detalles de implementación, pero la idea es que, una vez que haya determinado si debe rastrear o no al usuario en Google Analytics, si la respuesta es no rastrear, establecerá la siguiente propiedad como verdadera antes de Google Análisis se ejecuta:

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

Donde UA-XXXXXX-Y es su ID de cuenta en Google Analytics

Como han señalado los otros carteles, Google Analytics se basa en cookies. Por lo tanto, no puede realizar ningún tipo de seguimiento sin cookies. Si ha determinado que no se debe cocinar a alguien para el seguimiento, deberá implementar algo como esto:

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

Optar en

Esto requiere un poco de jujitsu para cuando cargue Google Analytics por primera vez, ya que esta propiedad deberá configurarse antes de que Google Analytics se ejecute para evitar que el rastreo ocurra, lo que significa que, para un enfoque de "optar por el seguimiento", usted " d probablemente necesite implementar un mecanismo en el que, en la primera visita, Google Analytics se deshabilite automáticamente en ausencia de una cookie opcional (las cookies que determinan las preferencias de cookies están explícitamente permitidas), y luego, si ocurre una suscripción voluntaria, vuelva a ejecuta Google Analytics En páginas vistas posteriores, todo funcionaría sin problemas.

Podría parecerse a algo (pseudocódigo):

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

Optar por no

Con este enfoque, permitiría al usuario optar por no seguir el seguimiento, lo que significaría que usaría una cookie para configurar la ga-disable-UA-XXXXXX-Y'propiedad y una cookie para administrarla en el 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']);
Yahel
fuente
2
Minúsculo pequeño en una buena respuesta: if (doNotCookie () {debería ser if (doNotCookie ()) {
Roee Shenberg
1
Gracias por la respuesta. Aunque no diría 'consultar a un abogado'. Probablemente sea más rápido para un técnico leer y comprender la guía de lo que se necesitaría un abogado para conocer los matices de los tecnicismos.
JW.
1
¿Debo entender que si el usuario elige NO tener cookies almacenadas, la solución es almacenar una cookie con esta preferencia? ¿O no se considera que esta cookie está incluida en la normativa de la UE?
Jonathon Horsman
55
Si. La mayoría de las regulaciones que he visto (específicamente, del Reino Unido y creo que de Francia) dicen explícitamente que una cookie que almacena su preferencia de cookie no es una violación de las reglas. Dado que las cookies son la única forma universalmente accesible de almacenar el estado en el navegador, no hay forma de evitarlo.
Yahel
17

Puede deshabilitar el uso de cookies para Google Analytics especificando la {'storage' : 'none'}opción al crear la instancia del rastreador.

Consulte la guía de Google sobre el tema para obtener más detalles.

severin
fuente
1
La guía dice que si deshabilita las cookies, debe implementar un seguimiento similar usted mismo, por lo que esto no parece ayudar.
mpartel
44
@mpartel Usted pierde información: visitantes que regresan y conversiones multicanal. Pero si no los necesita, todavía es aceptable.
Ali
16

Como nota rápida, la BBC (probablemente el sitio más popular en el Reino Unido) ha adoptado un enfoque interesante para cumplir con las cookies: han mostrado un banner a los usuarios diciéndoles que las cookies están configuradas y proporcionan un par de enlaces.

Este explica qué son las cookies. Este les permite administrar sus cookies , pero lo más interesante de todo es que proporcionan un enlace a Google Analytics para permitir a los usuarios optar por la exclusión general de GA en su totalidad. Entonces, en resumen, la BBC ha considerado que puede decirle al usuario qué cookies están configuradas y luego proporcionar un enlace a Google para permitir que el usuario opte por todas las cookies de GA. Para mí, eso es mucho menos complicado que decirle a GA que opte por una dirección a través de JS.

Martin Clarke
fuente
13
REALMENTE no asumiría que la solución de la BBC es aceptable. De hecho, su solución es fundamentalmente defectuosa, al menos por tres razones: 1) establece cookies antes de preguntar si está dispuesto a aceptarlas, 2) debe establecer una cookie para guardar sus preferencias de cookies, y 3) establece que el sitio no controlará las cookies de terceros, lo que constituye una violación directa del espíritu, si no de la carta de la directiva de la UE. Sospecho que los Beebs serán golpeados por este, ya que están tratando de empujar los límites de la ley de tantas maneras como sea posible, mientras aparecen de otra manera.
David T. Macknet
Eche un vistazo a blogs.wsj.com/tech-europe/2012/05/25/… para una buena discusión.
David T. Macknet
Por supuesto, tal vez me equivoque, ¿aparentemente han cambiado los requisitos? blog.silktide.com/2012/05/… habla sobre un cambio en los requisitos, por lo que no sé nada más. Simplemente no sé acerca de estas personas, ¡y VIVO aquí (por ahora)!
David T. Macknet
El Registro tiene una pancarta que dice que al continuar usando su sitio asumen que usted acepta permitirles usar cookies, así como un botón de aceptar.
iamichi
66
@MartinClarke - Bueno ... en realidad, no estoy tan seguro de seguir el liderazgo de una compañía de medios, en particular porque esperaría que la BBC tenga una posición especial dentro del Reino Unido y que probablemente se les diga que den forma arriba, en lugar de recibir una multa. Creo que es más una cuestión de riesgo: la BBC no tiene mucho riesgo, como un organismo financiado con fondos públicos, mientras que un sitio comercial podría tenerlo.
David T. Macknet
15

A menudo nunca pido a los usuarios que opten por Google Analytics, porque nunca configuro cookies y nunca guardo su IP (y otros datos personales).

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

Consulte también este código en Convertir cookies de Google Analytics en Almacenamiento local / de sesión

Este script no configurará ninguna cookie, pero seguirá rastreando a través de google analytics. En realidad, esto tendrá el mismo efecto en la privacidad que el uso de cookies, porque Google todavía registra la dirección IP de los usuarios.

Ahí es donde entra el conmutador anonymizeIp. Esto le dice a Google que solo guarde una versión anónima de la dirección IP. Una dirección IP anónima no se considera información personal, por lo que se respetará la privacidad de los usuarios.

La ley de cookies de AFAIK tiene que ver con la privacidad y permite que el sitio web rastree su uso. No soy abogado ni nada, pero en mi opinión este script cumple con la ley de cookies de la UE.

Echa un vistazo a este plunk para verlo en acción: http://plnkr.co/MwH6xwGK00u3CFOTzepK

Elmer
fuente
hola, esto no siempre es un enfoque seguro: aquí son las razones.
caesarsol
Para eso está la 'anonymizeIp': trueopción, esto no almacenará una dirección IP. Me gusta usar el almacenamiento local sobre las cookies por un par de razones que no tienen nada que ver con la ley de cookies.
Elmer
55
No, esto no cumple en absoluto: - anonymizeIp es engañoso y aún conserva demasiada información de acuerdo con las leyes de la UE - LocalStorage es considerado como "Cookie" por las leyes de la UE Por lo tanto, este código le brinda menos información en GA y aún no cumple con la ley
Flunch
La "ley de cookies de la UE" es en realidad una directiva, por lo que depende de las leyes específicas de los miembros de la UE. Por ejemplo, la autoridad de privacidad italiana declaró explícitamente que, para la ley italiana, no se requiere el consentimiento del usuario si anonimiza la dirección IP y deshabilita el intercambio de datos con otros servicios en la consola de Google Analytics.
mcont
44
@Flunch " anonymizeIp es engañoso y aún conserva demasiada información de acuerdo con las leyes de la UE" Proporcione referencias. ¿Por qué no es aceptable y cuándo estaría bien? ¿Qué es "demasiada información" ?
Ali
3

Puede deshabilitar las cookies de google analytics agregando este código en la parte superior del código de google analytics (antes de la línea: var _gaq = _gaq || [];):

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

Sin embargo, algunas características de google analytics (por ejemplo, estadísticas en tiempo real) no funcionan correctamente después de esta modificación. Más información sobre las cookies de google analytics: https://developers.google.com/analytics/devguides/collection/analyticsjs/domains?hl=es#disableCookies

sin nombre
fuente
¿Qué haría el var clientId = ...código? Que yo sepa, define una variable local dentro de la función, ¿no es inútil?
caesarsol
Supongo que es solo un ejemplo, debe usar clientIddentro de la función como se hace en stackoverflow.com/questions/4502128/…
caesarsol
1

La forma común de manejar esto hasta ahora es el método utilizado por el complemento jquery de wolf-software por el cual evita que el script se ejecute hasta que el usuario opte. Sin embargo, el ICO actualizó sus pautas la semana pasada para decir que es aceptable confiar en ' consentimiento implícito 'del tipo utilizado en el sitio de la BBC. Si bien realmente no creo que eso esté dentro del espíritu de la ley, es lo que se considera aceptable por quienes la aplican. Dado que la mayor parte de la UE aún no ha implementado la directiva, diría que es muy probable que sigan el ejemplo del Reino Unido.

Aquí hay un artículo interesante sobre las actualizaciones del Reino Unido:

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

Chris Disley
fuente
1

EDIT: No es un entorno de Google Analytics para esto con el fragmento asíncrono GA.

No hay una configuración de Google Analytics para esto, como sugieres, deberías excluir condicionalmente el script para aquellos que no han dado su consentimiento si quieres usar el script de seguimiento de JavaScript de Google Analytics.

Ya existen algunas soluciones que pueden ser útiles en lugar de implementar las suyas. Javascript: http://cookies.dev.wolf-software.com/demo/index.htm

Aquí hay una solución que permite usar las funciones básicas de Google Analytics sin cookies, al hacer el seguimiento del lado del servidor, este ejemplo está en PHP: http://techpad.co.uk/content.php?sid=205

Alex Taylor
fuente
Gracias por los enlaces. enlaces muy utiles.
JW.
1

Para una solución UX menos intrusiva, puede establecer el consentimiento implícito para las cookies analíticas de Google colocando un enlace a: cookiestatement.eu (sin javascript, sin ventanas emergentes, sin anuncios)

Matt Clegg
fuente
1

Perdón por llegar tarde a responder, pero estaba buscando lo mismo recientemente hasta que descubrí una manera de hacerlo. Puede que no sea la forma correcta de hacerlo, pero funciona. (solo funciona en el sitio en cuestión, no se excluye completamente de GA). Lo he probado durante unos días para asegurarme.

La forma en que he logrado hacerlo es usando una cookie PHP. Primero comience agregando analyticstracking.php incluye ...

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

y en analyticstracking.php agregue lo siguiente ...

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

Antes de que el usuario haya aceptado las cookies, Google Analytics no funcionará y, una vez que lo hayan hecho, se guardará 'consent_cookie' y permitirá que GA funcione, pero si se destruye la cookie 'google', impedirá que GA funcione (Obviamente).

Como dije, puede que no sea la forma correcta, pero lo he probado y lo hago. Espero que esto ayude a alguien.

Pezmo
fuente
0

Estaba enfrentando el mismo problema.

Finalmente, obtuve una solución en la línea de la respuesta de Elmer, pero jugando con seguridad con respecto a las IP, es decir, sin usarlocalStorage

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

(-) Cada página visitada contará como un nuevo visitante en Google Analytics, por lo que estoy perdiendo muchas funcionalidades allí.

(+) Pero puedo vivir con eso y creo que estoy seguro con respecto a las legislaciones de privacidad de datos.

Cualquier comentario o sugerencia de mejora es más que bienvenido.

J0ANMM
fuente
-3

GA no funciona sin cookies, lo necesita para 'identificar' al visitante si visitó su sitio antes. Por lo tanto, no hay una configuración en GA para esto, GA simplemente no registra al visitante si no puede crear una cookie.

Si el usuario es de la UE y no ha optado, entonces debería excluir el script de google-analytics, creo.

Scriptor
fuente