Cómo evitar el referer spam en 4 sencillos pasos
Hace unos meses os explicamos una forma de filtrar el referer spam en nuestras vistas, mediante la configuración de los filtros de analytics. Este método, no sólo es aburrido – por la necesidad de estar actualizándolo día tras día – sino que además no es efectivo – debido a que las visitas ya no sé inyectan simplemente por tráfico referido, sino que los spamers ahora también atacan al tráfico directo, a los eventos, etc.
Después de estar indagando un nuevo método de filtrado del referer spam, y tras probar durante un par de meses en varias cuentas y comprobar que funciona correctamente, hoy lo compartimos con todos vosotros.
¿La solución definitiva?
Se han publicado nuevos métodos para hacer este filtrado. Uno de ellos es el de filtrar por Tecnología -> Red -> Nombre del host. El problema de este sistema, es que hay veces que llegan visitas válidas desde translate.googleusercontent.com (páginas traducidas por el traductor de Goolge) o webcache.googleusercontent.com (páginas visitadas desde la caché de Google), por lo que hay que usar expresiones regulares e incluir estos hosts también como hosts válidos. Si quisieran seguir atacando nuestro analytics y quisieran inyectar código genérico, podrían hacerlo inyectando como host alguno de los anteriores, por eso nosotros entendemos que este tipo de filtro no es una solución definitiva al problema del referer spam, ya que con sólo una modificación en el código (simplemente añadiendo &dh=translate.googleusercontent.com), ya podrían seguir metiéndonos falsas visitas.
Evitar el Referer Spam
Recordad que no se puede eliminar el referer spam, ya que a quien atacan es a Google, y no a nosotros. Lo que sí que podemos hacer es filtrarlo para que no nos “ensucie” nuestras métricas.
- Creamos una nueva vista entrando en el Administrador de nuestra cuenta de Google Analytics y creando una nueva vista. Esto lo haremos para mantener los datos de las vistas anteriores (siempre es aconsejable que dejemos una vista sin filtros, que guarde toda la información relacionada con nuestro sitio.)
- Creamos una nueva dimensión personalizada, para esto, seleccionamos la opción de Definiciones personalizadas, y elegimos Parámetros personalizados (dimensiones personalizadas). Debemos indicar:
- Nombre: el nombre que queramos para esta nueva dimensión personalizada (el que queramos, en el ejemplo: “no-pasar”).
- Ámbito: el ámbito de esta nueva dimensión, es decir, a qué datos se aplicará dicha dimensión.
- Hit: se aplica al hit único para el que se ha establecido.
- Sesión: se aplica a todos los hits de una sesión.
- Usuario: se aplica a todos los hits de un usuario (hasta que cambie el valor o se desactive la dimensión).
- Producto: se aplica al producto configurado (sólo es aplicable con la opción de comercio electrónico mejorado).
- Activo: marcamos esta opción para guardar este nuevo parámetro activándolo
Una vez creada la nueva dimensión, veremos el código a insertar en el código javascript de Google Analytics. - Modificamos el código javascript de nuestro sitio web, añadiendo la llamada a la función ga, a la cual le pasaremos la asignación de un valor a la dimensión creada. En caso de que sea nuestra primera dimensión, esta asignación se hará a la variable dimension1, en caso de ser tener más dimensiones será dimensionX (siendo X el número de dimensión). El valor a asignar a la dimensión es el que queramos, en este caso “atrasss”.
<script type="text/javascript">// <![CDATA[ (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-XXXXXXXX-X', 'auto'); ga('set', 'dimension1', 'atrasss'); ga('send', 'pageview'); // ]]></script>
- Creamos un filtro sobre la vista de Google Analytics, indicando:
- Nombre del filtro: el nombre que queramos para este nuevo filtro.
- Tipo de filtro: seleccionaremos Personalizado, e Incluir. En el Campo de filtro buscaremos por el nombre que le hemos dado a nuestra dimensión personalizada, y en Patrón del filtro indicaremos el valor que le hemos asignado a la dimensión (en el código javascript), marcando Distinción entre mayúsculas y minúsculas, para hacer un poco más “fuerte” el filtro.
Con esto ya estaremos filtrando sólo las visitas que nos entren por la web (ya que vendrán con el valor indicado en la dimensión creada). Esto no quiere decir que sea imposible inyectar otra vez visitas. Simplemente, que para hacerlo, deberían entonces entrar en vuestro sitio web, mirar el código javascript de Google Analytics, y ver el valor asignado al número de dimensión, para poder hacer inyectar una visita pasando dicho valor en la dimensión (pero para esto ya tendrían que ser inyecciones personalizadas que nos atacaran a nosotros directamente). Se puede complicar un poco más, cifrando el código javascript, con herramientas como javascript obfuscator. Lo ideal sería que se cifrara con una clave privada que sólo tuviéramos nosotros y el receptor (en este caso Google), ya que así, es más fácil descifrarla, pero sencillamente es una medida más de seguridad que se podría poner.
Y con estos sencillos 4 pasos el referer spam (falsas visitas que realmente no han entrado en nuestra web) habrá desaparecido de nuestras vistas.
Este ejemplo está hecho para Universal Google Analytics, pero se puede hacer igualmente para el clásico Google Analytics, pero en lugar de hacer una dimensión personalizada, tendremos que hacer una variable personalizada.
Aquí tenéis la presentación y el vídeo que hicimos para el webinar de Semrush.
Para que acabes con el referer spam definitivamente, hemos ampliado el tutorial con el uso de Google Tag Manager. Podéis consultar la entrada en evitar el referer spam en GTM..
¿Te gusta? ¿Te sirve? ¿Te ofrece alguna solución? No te lo pienses y ¡compártelo!
Muchas gracias por el aporte!! Lo he puesto en práctica y de momento está funcionando 100%!
Hola, Clemente:
lo he probado en un par de clientes y me ha funcionado perfectamente. ¡Gracias!
Saludos,
FM
Hola Francisco,
muchas gracias por tu comentario, nos alegramos de que te funcione correctamente.
Saludos
Hola Clemente, una pregunta cuanto dices:
“y en Patrón del filtro indicaremos el valor que le hemos asignado a la dimensión (en el código javascript),”
Te refieres a que en el campo “Patron del filtro” hay que poner por ejemplo “dimension1” como aparece en tu ejemplo, no me queda clara esa parte, gracias.
Hola Cesar,
en la guía hablo del valor de la dimension, no en su nombre, ya que hay que filtrar por la misma (en el ejemplo, el valor es ‘atrasss’).
Esperamos que le puedan servir estas indicaciones, si es así, le agradeceríamos que nos lo comentara, y que nos ayudara a difundir la entrada. ¡Compártala!
Saludos
Hola Clemente,
sigo todos los pasos como cometas pero cuando voy a crear el filtro no me aparece por ningún lado la dimensión personalizada creada y está activa, aplicada a sesión y el código modificado….Alguna idea?
Hola Kristina,
En el desplegable, aparece al final, en última posición. Si no lo ves, prueba a hacerlo desde otro navegador, tal vez el problema sea que no lo dibuja, ¿puedes verlo en el código fuente? (dentro del
div data-type="SelectMenu"
hay una lista desordenada, y el últimoli
debe ser la dimensión personalizada).Saludos