Tasa de rebote real con Google Tag Manager
La tasa de rebote, porcentaje de rebote o bounce rate es una métrica importante para medir la efectividad de cada una de las páginas de tu sitio web y su capacidad para mantener el interés del visitante.

En Google Analytics, el cálculo de la tasa de rebote es simple: Porcentaje de usuarios del sitio web que lo abandonan tras visitar una única página. Esta estadística así calculada, sin embargo, nos puede resultar incompleta o inducir a engaño: ¿Todas las visitas simples son realmente abandonos? ¿Y un usuario que llega buscando un contenido concreto y se va tras haberlo encontrado -y consultado- a la primera? ¿Qué ocurre con los sitios de página única?
Google Analytics ya tiene un método de refinar este cálculo: con los eventos. Cada vez que se active un evento al que estemos haciendo seguimiento, Analytics lo cuenta automáticamente como una interacción del usuario con la página; en cuanto esto ocurre, la visita actual ya no cuenta como rebote, aunque no se visiten otras páginas.
Para evitar esto, los eventos cuentan con un parámetro opcional nonInteraction, que si se activa hace que el evento no cuente como interacción y por tanto, no afecte al cálculo del porcentaje de rebote. En Google Tag Manager, este parámetro se identifica como Visita sin interacción o Non-Interaction Hit.
En este artículo vamos a usar Google Tag Manager para, con la ayuda de etiquetas y eventos personalizados, hacer un cálculo más preciso de nuestra tasa de rebote – concretamente, diferenciar las visitas de una página entre genuinas (con lectura/interacción del usuario = no rebote) y verdaderos abandonos (cierre o salida inmediata de la página, visitas de bots, etc = rebote). Para ello probaremos dos métodos diferentes.
1. Temporizador
Una posible aproximación es plantear que si la página lleva abierta cierto tiempo y no se ha cerrado o abandonado -aunque no haya habido otras interacciones-, consideraremos que su contenido ha sido leído y por lo tanto la contabilizaremos como visita completa y no como rebote. Para ello generaremos un evento de temporizador que se disparará automáticamente pasado el tiempo de espera indicado, generando una interacción y por tanto cancelando el rebote.
Para ello utilizaremos las etiquetas de Procesador de eventos de Google Tag Manager, concretamente la de Procesador del temporizador.
Creamos la etiqueta y la activamos para todas las páginas:
- En Nombre de evento podemos especificar el nombre del evento que se generará – útil si tuviéramos varios temporizadores funcionando de forma simultánea. En este ejemplo vamos a dejarlo con el nombre por defecto, gtm.timer.
- En Intervalo especificamos el tiempo de espera en milisegundos. Por ejemplo, pondremos 30000 para que salte pasados 30 segundos.
- Y en Límite el máximo número de veces que queremos que se active el evento en cada vista de página. En este caso sólo necesitamos una, pero en otros podríamos querer poner un límite alto para que funcione de forma continua (intervalo – activación – intervalo – activación…).
Una vez creado el procesador, creamos la etiqueta que capture el evento en Analytics:
Importante dejar marcado Visita sin interacción como False, para que el evento automático cuente como interacción y anule el rebote.
Y como regla de activación la asociamos con el evento gtm.timer previamente especificado:
Listo! A partir de ahora, una visita a página única durante más de 30 segundos ya no será un rebote, y podremos saber los casos en los que eso ha ocurrido buscando el evento “Interaction / Timer 30s” en el panel de Google Analytics.
Por ello, probaremos un método alternativo que sí requerirá interacción activa por parte del usuario: Detectar que se haya hecho scroll en la página actual.
2. Medición de scroll
Dado que Google Tag Manager no incluye (de momento ;)) etiquetas de procesador de eventos scroll, haremos uso de nuevo del script externo Scroll Depth, que permite generar eventos de Analytics basados en la cantidad de scroll realizado. Haremos que se lance el evento de interacción, por ejemplo, cuando se haya hecho scroll hasta el 50% de la página.
Creamos una etiqueta de nombre Procesador scroll y tipo Etiqueta HTML personalizada, y pegamos el código de este enlace.
(No es más que la librería Scroll Depth completa y minimizada, junto con el código para activarla – también se podría incluir como archivo externo; la versión más reciente se puede encontrar en todo momento aquí).
Y añadimos como regla de activación el evento gtm.dom:
Creamos también la etiqueta correspondiente de Analytics:
Y finalmente, creamos y asociamos su regla de activación personalizada:
Según lo estricta que queremos que sea la regla, podríamos cambiar la condición {{event label}} a 25%, 75% o 100%.
3. Scroll + Timer
¿Había dicho 2 métodos? Mentí 😛
Una tercera aproximación, más estricta pero posiblemente más exacta, puede ser combinar ambas opciones, mediante etiquetas que esperen a que ambos eventos hayan tenido lugar. Dado que los dos eventos se miden en paralelo y pueden activarse en cualquier orden, será una implementación un poco más avanzada y requerirá algo de Javascript. Vamos a ver un ejemplo:
1) Crear, si no lo hemos hecho ya, las etiquetas de procesado de eventos Procesador timer y Procesador scroll que hemos visto antes. Las etiquetas de Analytics asociadas ya no las necesitaremos – si las habíamos creado, podemos eliminarlas o desactivarlas.
2) Creamos una nueva etiqueta Procesador scroll-timer de tipo Etiqueta HTML personalizada, en la que pegamos este código:
<script> if({{event}} == 'ScrollDistance') { var interactScroll = true; } else // gtm.timer { var interactTimer = true; } if(interactScroll && interactTimer) { dataLayer.push('event', 'ScrollTimer'); } </script>
Y le añadimos como Reglas de activación las dos que habíamos creado antes como condiciones de interacción, tanto “evento = timer” como “evento = scroll al 50%”:
3) Finalmente, una vez cumplidas ambas condiciones, se generará un nuevo evento de interacción que capturaremos con una etiqueta de Analytics:
Y su regla de activación correspondiente:
Conclusiones
En cualquier caso, ningún sistema es infalible: Al final es una cuestión de decidir -y si acaso, refinar- dónde trazar la línea. La tasa de rebote puede ser una estadística interesante, pero en todo caso no deja de ser una herramienta de uso interno; a nosotros corresponderá definir qué va a significar exactamente para nuestro sitio y cómo la vamos a utilizar.
Referencias y enlaces de interés
- Porcentaje de rebote (Documentación oficial de Google)
- Visita sin interacción (Referencia Universal Analytics)
- How to Implement Adjusted Bounce Rate (ABR) via Google Tag Manager (en inglés)
Cap. 8 – Seguimiento de etiqueta ClickTale con GTM Cap. 10 – Páginas virtuales con GTM
Buenísimo tutorial. Tengo una duda, esta configuración se aplica a las visitas con independencia de que sean desde escritorio o móvil o sólo a las primeras.
Hola! Sí, se aplica a todas las visitas web, no hay nada que haga distinción entre dispositivos.
Muy buen artículo. Solo me queda una duda. ¿Qué se considera evento “pasivo”? Gracias. Saludos.
Hola! En este contexto, me refiero a eventos que salten de forma automática, sin interacción intencionada del usuario: La aparición de un popup, la reproducción automática de un video…
Hay que tener cuidado al medir estos eventos (marcarlos como de no interacción donde corresponda) para que no afecten erroneamente a la tasa de rebote. Saludos!