Va a cumplir un mes desde que entró en vigor el nuevo reglamento RGPD, días caóticos de poner a punto nuestros sitios web y del envío masivo de comunicaciones a nuestros suscriptores para que nos devuelvan la aprobación de nuestra nueva política de privacidad y cookies (por suerte en Gestionatuweb.net no tengo ningún sistema de suscripción, y eso que me he ahorrado).
Pero hay que cumplir con el resto de obligaciones, como la de adaptar los formularios de contacto para pedir explícitamente el consentimiento de nuestros visitantes a obtener sus datos, redactar la nueva política de privacidad en la que se especifique claramente qué datos recabamos de ellos, dónde los almacenamos y para qué los vamos a utilizar, poner en marcha mecanismos para que cualquier usuario registrado pueda darse de baja y borrar toda información que tengamos archivada de él y una última cuestión que me traía un poco de cabeza, la de no instalar scripts o cookies de terceros si el usuario no lo ha aprobado previamente.
He probado varios plugins que se supone que bloquean cualquier cookie mientras el usuario no acepta el aviso en pantalla. Pero después de instalarlos y configurarlos, probaba con mi navegador, limpio de cookies y con sesión privada, que aunque no aceptase la política de cookies, estas se instalaban de todas formas en mi PC (cookies como las de Google Analytics, sobre todo).
Así que después de probar y probar, finalmente descubrí EU Cookie Law, un plugin que parece haber sido desarrollado específicamente para cumplir con el reglamento europeo de política de cookies.
Una de las características por las que elegí este plugin, es que introduce una sencilla función que se puede integrar en el tema (archivo functions.php) o en un plugin propio que tengas para tus funciones personales, y todo código que insertes en esa función no será ejecutado mientras el usuario no haga clic en Aceptar tu política de cookies, con lo que te cubres las espaldas ante cualquier infracción de la RGPD al instalar cookies o ejecutar scripts sin el consentimiento del usuario.
El plugin tiene algunas opciones interesantes:
Por ejemplo, tienes la opción de auto-bloquear cualquie script, iframe o embeds, y no preocuparte configurar la función mencionada anteriormente con todos los códigos que quieras bloquear. Esta opción bloqueará TODO, mientras el usuario no acepte la política de cookies.
Pero si tu sitio web utiliza scripts para ciertos efectos o animaciones, es posible que estas también sean bloqueadas, por lo que hay que obrar con prudencia.
Existe una opción beta, que al usar el auto-bloqueador, excluye los scripts, para evitar este tipo de situaciones no deseadas, pero no es 100% seguro. Es posible que bloquee lo que no pretendes bloquear, y que ejecute lo que sí deseas bloquear.
Entonces, ¿cómo hacemos para bloquear el script de Google Analytics sin afectar a otros scripts de estilos y animaciones? Pues hacer uso de las funciones function_exists(‘cookie_accepted’) y cookie_accepted() que incorpora EU Cookie Law.
Para integrarlas solo tenemos que irnos a nuestro archivo de funciones del tema (functions.php), aunque yo recomiendo crear nuestro propio plugin para insertar funciones personales (tienes un vídeo sobre cómo hacerlo en mi Curso de WordPress Avanzado en Youtube).
Ahora creamos la siguiente función:
//Google Analytics
<?php
function google_analytics(){
if(function_exists('cookie_accepted') && cookie_accepted()){
?>
<script async src="https://www.googletagmanager.com/gtag/js?id=XX-XXXXXXXX-X"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'XX-XXXXXXXX-X');
</script>
<?php
}
else{
generate_cookie_notice($height, $width);
}
}
add_action('wp_head', 'google_analytics');
?>
Donde sustituyes XX-XXXXXXXX-X por tu ID de seguimiento de Google Analytics.
Después de esto, haz la prueba.
Limpia la caché y cookies de tu navegador. Accede a tu sitio web y visualiza el código fuente de tu página. Observarás que no habrá rastro del código de Google Analytics. Sin embargo, en cuanto aceptes el mensaje de política de cookies, recarga la página y verás que ahora si está.
Para hacerlo con el resto de scripts, solo tienes que añadirlos dentro de la función y estos quedarán bloqueados.
Espero que os haya sido de utilidad este post y me dejéis vuestros comentarios o dudas, las cuales estaré encantado de atender.
Belén dice
Hola Daniel!
He llegado a esta entrada después de un día volviéndome loca para bloquear el script de Google Analytic dentro del plugin de Cookie Notice. Tengo el código de Google Analytic metido a mano en el header,php y no consigo dar con un código que funcione.
He visto que estás usando justo ese plugin para lanzar el mensaje de aceptación o rechazo de cookies en tu web. ¿Lo estás usando también para bloquear el script de Google Analytic? ¿Me puedes echar un cable?
Mil gracias 🙂
Daniel, Gestionatuweb.net dice
Hola Belén, hace tiempo que estoy usando el plugin Cookie Notice que me parece más completo. En este plugin hay un apartado para pegar todo el código que quieras bloquear hasta que lo acepte el usuario, incluido el código de Analytics. Un saludo.
Elisabet dice
Hola Daniel: he probado el Código para bloquear el script de Google Analytic en el plugin Cookie Notice y no las bloquea. ¿Que otro plugin gratuito podría utilizar?
Gracias de antemano.
Un saludo.