Google Analytics: Manipular el Rebote (con Universal Analytics)

La manipulación del rebote, una de las técnicas más clásicas y conocidas para realizar configuraciones a medida en Google Analytics, se trata de una de las medidas de calidad de tráfico más usadas a día de hoy. Por tanto, es algo que no podemos permitirnos dejar a criterio de un sistema que lo define siempre de forma demasiado simple para la mayoría de páginas web.

Índice de contenidos

El Rebote en Google Analytics

“Un rebote” simboliza a un usuario que ha entrado en la web, no le ha gustado lo que ha encontrado y se ha ido a otro sitio. Es una visita, pero de las malas, una persona que no quería estar realmente ahí. El porcentaje de rebotes nos sirve en analítica web para ver la calidad de los usuarios que nos visitan. Cuanto más alto sea ese valor, peores visitas están llegando a nuestra web.

El concepto está muy bien, pero las limitaciones de las tecnologías web hacen que este dato para algunos sites sea totalmente falso. Hablando claro: Google Analytics entiende como rebote toda visita de la que no reciba más de un dato en su sistema.

Para entender qué significa esto, debemos entender cómo funciona el envío de datos en Google Analytics. Esto es simple. Cada vez que un usuario carga una de nuestras páginas, su navegador se encuentra con el código de Analytics (ese que cortamos y pegamos en la web) y este código le envía datos a Analytics. Esto lo hace por defecto solo una vez por página vista (en la carga de página) y no se envían más datos hasta que el usuario decide cargar una segunda página.

Salvo que configuremos Analytics a nuestro gusto, el rebote significará esto:

1 Rebote = Un usuario con solo 1 página vista.

Esto a poco que lo pensemos, en muchas webs, no tiene ningún sentido. En nuestra web, los usuarios pueden estar interesados en mil temas de la misma, pero no provocar esa segunda página vista y por lo tanto, mediante este sistema, los vamos a englobar en el saco de usuarios de baja calidad.

Pensemos en algunos ejemplos:

  • Blogs con posts largos, periódicos o wikis, donde el usuario lee el contenido completo pero luego no visita más posts.
  • Aplicaciones web que usen Ajax para cargar nuevos contenidos.
  • Visitas directas a landings de producto.
  • Páginas con envíos de formularios con javascript.
  • Páginas con pestañas que esconden parte del contenido y que implican navegación sin nuevas páginas vistas.
  • Etc.

Vemos muchos casos donde podemos marcar como rebote cosas que sin duda no lo son.

Manipular el rebote con eventos de Google Analytics

El truco para conseguir que deje de ser un rebote pasa por usar la opción de crear eventos de Google Analytics. Los eventos son mediciones sobre acciones de los usuarios que se lanzan mediante javascript en cualquier momento. La clave está en que cuando genero un evento para un usuario, este se envía automáticamente a Google, al igual que sucede con la carga inicial de la página. Así, Google Analytics no solo contará con un único dato sobre esa visita (la página vista), sino dos (la página vista y el evento), lo que significa que ya no será considerada como una visita rebotada.

¿Qué más debes saber sobre los eventos de Google Analytics?

Hace un tiempo escribí un par de artículos sobre los eventos que pueden servirte para entender cómo funciona la mecánica de los eventos en Google Analytics. La sintaxis usada en estos posts puede estar un poco desactualizada (pues Analytics ha ido cambiando el código base con el que usar sus funcionalidades) pero puedes leer la base de los mismos. Espero actualizarlos cuando me sea posible.

🔗 Eventos con Google Analytics

🔗 Jquery y Google Analytics tracking Api: Eventos por todas partes

Usar los eventos para medir rebotes reales

Bien, ahora que hemos comprendido cómo funciona la asignación del rebote en Analytics y cómo debemos proceder para evitar que una visita sea considerada como rebote si no ocurre la segunda página vista, nuestro siguiente paso es definir los casos en los que queremos anular el rebote en nuestras páginas.

Esta es una decisión crítica que puede hacer cambiar drásticamente la calidad de nuestros informes. Por tanto, es fundamental tomarse un momento para reflexionar y discutir con los implicados en las decisiones sobre la web sobre la mejor forma para que los usuarios se clasifiquen correctamente.

Yo siempre digo que la máxima a buscar es que los usuarios «no-rebote», es decir, aquellos que van a librarse de ser marcados como rebote sean sinónimo de «Visitas de Calidad». Es más, una vez creadas nuestras acciones, deberíamos poder presentar informes filtrados con solo «Visitas de calidad» (relegando las visitas de verdad) sin miedo.

Seguidamente os muestro algunas de las formas de anular rebotes más comunes, aunque eres libre de definir las tuyas propias. De cara a los informes creados te recomiendo también que leas el artículo sobre segmentación inteligente para tomar ideas sobre clasificaciones que podrás hacer con el rebote.

Analytics y sus distintos códigos

Como decíamos, Google Analytics está evolucionando y por lo tanto su código también. En este post tratamos solo 2 de sus últimos códigos olvidando la primera versión de Analytics (que ya no usa nadie).

Todos los códigos mostrados a partir de ahora vendrán en dos versiones:

  • Para ga.js que es el código asíncrono que se venía usando hasta finales de 2012 y que carga las funciones con _gaq.push();
  • Para analytics.js que es el código que pasa a usarse con el lanzamiento de Universal Analytics y el Measurement Protocol. En este las funciones se lanzan con ga().

Tu debes usar solo la versión que aparezca en tu web. No intentes insertar ambos códigos a la vez ni usar una versión más moderna si usas la antigua porque no funcionará.

Anular el rebote de Analytics por el tiempo de lectura

La forma más fácil de jugar con los rebotes es lanzar un evento cuando el usuario pase X segundos en nuestra página. Por ejemplo, a los 10 segundos desde que se carga Analytics creamos un evento.

Código con ga.js (Google Analytics asíncrono antiguo)

// Código de Analytics normal:

var _gaq = _gaq || [];

_gaq.push(['_setAccount', 'UA-1234567-89']);

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

// Añadido que realizamos

setTimeout(function() {

_gaq.push(['_trackEvent', 'NoBounce', 'NoBounce', 'Over 10 seconds']);

},10*1000);

Código con analytics.js (Google Analytics con Universal Analytics)

// Código básico de Analytics

window.ga = window.ga || function(){(ga.q=ga.q||[]).push(arguments);}; (function() { var e = document.createElement('script'); e.async = true; e.src = '//www.google-analytics.com/analytics.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(e, s); })();

ga('create', 'UA-1234567-89');

ga('send', 'pageview');

//Añadido que realizamos:

setTimeout(function() {

ga("send", "event", {

eventCategory: "NoBounce",

eventAction: "NoBounce",

eventLabel: "Over 10 seconds"

});

},10*1000);

Otra opción, si lo deseamos, es empezar a contar los 10 segundos a partir de la carga de la página. Ahí podemos usar la función ready() de jquery o directamente lanzar en asíncrono funciones en el array _gaq o ga():

// Con Jquery en ga.js

$(document).ready(function(){

setTimeout(function() {

_gaq.push(['_trackEvent', 'NoBounce', 'NoBounce', 'Over 10 seconds']);

},10*1000);

});
// Con _gaq en ga.js

_gaq.push([function () {

setTimeout(function() {

_gaq.push(['_trackEvent', 'NoBounce', 'NoBounce', 'Over 10 seconds']);

},10*1000);

}]);
// Con ga() en analytics.js

ga(function () {

setTimeout(function() {

ga("send", "event", {

eventCategory: "NoBounce",

eventAction: "NoBounce",

eventLabel: "Over 10 seconds"

});

},10*1000);

});

Anular el rebote de Analytics cuando se cargue alguna acción dinámica

Es bastante común que una misma página tenga zonas de clic que cambien algo de la página pero que no provoquen una nueva página vista: cuando usamos links de ancla a partes del contenido, mostramos u ocultamos contenidos con pestañas, cargamos contenidos con ajax, quitamos la publicidad invasiva con la «X» de cerrar, etc. En estos casos podemos asociar al clic en todos estos elementos un evento para que cuando el usuario realice esa acción también deje de contar como rebote.

Pongo solo el ejemplo con jquery ya que como esto ya va ligado con la programación que use el site, cada uno debería encontrar la forma por la que lanzar eventos onclick en su site.

Código con ga.js (Google Analytics asíncrono antiguo)

// Código de Analytics normal:

var _gaq = _gaq || [];

_gaq.push(['_setAccount', 'UA-1234567-89']);

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

// Añadido que realizamos

$(document).ready(function(){

$(".actionLink").click(function(){

_gaq.push(['_trackEvent', 'NoBounce', 'NoBounce', 'Click action']);

});

});

Código con analytics.js (Google Analytics con Universal Analytics)

// Código básico de Analytics

window.ga = window.ga || function(){(ga.q=ga.q||[]).push(arguments);}; (function() { var e = document.createElement('script'); e.async = true; e.src = '//www.google-analytics.com/analytics.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(e, s); })();

ga('create', 'UA-1234567-89');

ga('send', 'pageview');

//Añadido que realizamos:

$(document).ready(function(){

$(".actionLink").click(function(){

ga("send", "event", {

eventCategory: "NoBounce",

eventAction: "NoBounce",

eventLabel: "Click Action"

});

});

});

O bien, si vuestro javascript es limitado, también puede hacerse de forma intrusiva en tu html (no recomendado salvo para casos en los que no queda otro remedio):

Anular Rebote de analytics cuando se hace scroll

Podemos también suponer que si un usuario hace scroll en la página es que desea ver el resto del contenido y, por lo tanto, no es un rebote como tal (al menos ha mostrado algo de interés en seguir observando la página).

Código con ga.js (Google Analytics asíncrono antiguo)

// Código de Analytics normal:

var _gaq = _gaq || [];

_gaq.push(['_setAccount', 'UA-1234567-89']);

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

// Añadido que realizamos

$(document).ready(function(){

$(window).scroll(function () {

_gaq.push(['_trackEvent', 'NoBounce', 'NoBounce', 'Scroll']);

});

});

Código con analytics.js (Google Analytics con Universal Analytics)

// Código básico de Analytics

window.ga = window.ga || function(){(ga.q=ga.q||[]).push(arguments);}; (function() { var e = document.createElement('script'); e.async = true; e.src = '//www.google-analytics.com/analytics.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(e, s); })();

ga('create', 'UA-1234567-89');

ga('send', 'pageview');

//Añadido que realizamos:

$(document).ready(function(){

$(window).scroll(function () {

ga("send", "event", {

eventCategory: "NoBounce",

eventAction: "NoBounce",

eventLabel: "Scroll"

});

});

});

Y anular rebote de Analytics cuando nosotros lo veamos oportuno

Y es que cada web puede llegar a tener sus detalles particulares y cada negocio puede tener distintos motivos para contar o no contar a un usuario como rebote. Sabiendo este truco, nosotros decidimos cuándo se anula el rebote y a partir de ahí solo nos quedaría crear el javascript necesario para lanzar el evento.

Casos avanzados de manipulación del rebote

Además, me gustaría comentaros algunos casos a los que terminaréis llegando a medida que os familiaricéis con la manipulación del rebote.

Anulaciones distintas en páginas distintas

El primero de ellos parte de concebir la anulación de rebote de forma distinta en cada landing de tu site. Y es que los motivos para anular rebote pueden no ser los mismos en distintas páginas de tu site, pues no esperamos lo mismo de los usuarios en ellas.

Un ejemplo que podría ser válido para un ecommerce:

  • En la home podemos no hacer nada, pues solo queremos que el usuario elija una nueva página vista
  • En los listados podemos anular rebote si el usuario hace scroll o si despliega alguna de las ayudas de javascript que le hemos añadido en la web (filtros ajax, desplegar info de un elemento con un desplegable, etc.)
  • En la ficha de producto podríamos simplemente desear que el usuario pase ahí un mínimo de segundos que nos garantice que al menos ha tenido tiempo de ver si el producto le gustaba o si ha clicado en el típico botón de «favoritos» o «añadir a mi lista de deseos».

Como vemos, las consideraciones para cada tipo de página pueden ser distintas.

Anulaciones solo por página vista

En algunos casos, para contabilización de rebotes totales del site puede interesarnos que solo con que el usuario haya visto una página no cuente como rebote. El caso clásico son webs muy orientadas a producto donde lo que queremos es que el usuario acabe viendo una ficha de producto. En ese caso podemos anular el rebote solo con que el usuario llegue a esa página en concreto.

Código con ga.js (Google Analytics asíncrono antiguo)

// Código de Analytics normal:

var _gaq = _gaq || [];

_gaq.push(['_setAccount', 'UA-1234567-89']);

_gaq.push(['_trackPageview']);

_gaq.push(['_trackEvent', 'NoBounce', 'NoBounce', 'Scroll']);

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

Código con analytics.js (Google Analytics con Universal Analytics)

// Código básico de Analytics

window.ga = window.ga || function(){(ga.q=ga.q||[]).push(arguments);}; (function() { var e = document.createElement('script'); e.async = true; e.src = '//www.google-analytics.com/analytics.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(e, s); })();

ga('create', 'UA-1234567-89');

ga('send', 'pageview');

ga("send", "event", {

eventCategory: "NoBounce",

eventAction: "NoBounce",

eventLabel: "Scroll"

});

No anular rebote con eventos de la página

Por último, en el momento en el que empezamos a controlar el rebote de esta forma, otro ejercicio a realizar es el de evitar que otros eventos que podamos lanzar en el site afecten al rebote. Para esto Google Analytics nos permite activar una variable de no interacción en los eventos que va destinada justo a esto: crear eventos que no cuenten cómo interacción del usuario y por lo tanto no anulen rebote.

Para ello basta con que en nuestros eventos activemos esta variable.

Código con ga.js (Google Analytics asíncrono antiguo)

La variable simplemente hay que marcar la quinta variable de _trackEvent a true.

_gaq.push([‘_trackEvent’, [Categoría], [Acción], [Etiqueta], [Valor], [No-interacción] ] );

_gaq.push(['_trackEvent', 'Mi Categoria', 'Mi Accion', 'Mi Etiqueta', 100, true ]);

Código con analytics.js (Google Analytics con Universal Analytics)

La variable es una más de las que pueden lanzarse con ga(‘send’,’event’), llamada «nonInteraction»

ga("send", "event", {

eventCategory: "my category",

eventAction: "my action",

eventLabel: "my label",

eventValue: 100,

nonInteraction: true

});

Conclusión

Al final, tenemos una gran cantidad de metodologías para conseguir transformar el rebote en lo que nosotros queramos. Contar con un rebote bien configurado nos va a permitir realizar una analítica más fácil, la calidad de nuestro tráfico se hará evidente en todo momento y el rebote podrá convertirse en «La Métrica».

Por otro lado, en nuestros informes poder contar con la métrica «Visitas de Calidad» (visitas – rebotes) puede suponernos un extra de información realmente interesante para la toma de decisiones. Muchas veces observamos visitas y solo vemos que ciertos segmentos de nuestro tráfico no convierten, añadir mediciones de calidad bien configuradas puede salvarnos de muchas decisiones incorrectas.

Por mi parte, lo único que puedo echarle en cara a Analytics, en este sentido, es no poder anular páginas vistas para contabilizar rebote, al menos en el código antiguo de Analytics, pues muchas veces una segunda página vista no significa que ese usuario sea de calidad…

ARTÍCULO RELACIONADO CON:

Iñaki Huerta
CEO de IKAUE

Director de IKAUE. Analista Digital y SEO hace más de 15 años. Internet Lover, Creador de Hilillos y DataHacker.

También te puede interesar

¡Suscríbete!

RECIBE NUESTRA NEWSLETTER

Registrar nueva cuenta

IKAUE MARKETING ONLINE, S.L. es la Responsable del Tratamiento de tus datos, con la finalidad de gestionar tu registro y remitirte nuestra Newsletter con las últimas novedades y/o promociones. Tienes derecho de acceso, rectificación, supresión, limitación, oposición al tratamiento y portabilidad. Puedes ejercitar tus derechos [email protected]. Más información en la Política de privacidad.