Do not speak Spanish? Read this post in English.

Viernes, 20 de Noviembre de 2009.

Google Analytics: Detecta como ‘Rebote’ solo a los usuarios que realmente lo son.

Acabo de leer un artículo que me ha encantado y que recomiendo a todo aquel que le guste la analítica web. Escrito por Pere Rovira, nos habla de las grandes carencias que tienen los sistemas de analítica web más comunes, cuando se encuentran con usuarios con solo una página vista.

Dejando a un lado los trucos que hacen los sistemas de analítica web sobre el tiempo que pasan los usuarios en la web, que son un verdadero engaño una vez los conoces (y que darían para varios posts), me ha servido para descubrir un truco con el que podemos obligar a Google Analytics a marcar que un usuario no debe contarlo como un rebote.

Los Rebotes

“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. 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 encontrándonos.

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 que el dato de entrada a la web. Esto salvo que hagas un uso extenso de la Google Analytics Tracking Api es lo mismo que decir que entiendo como rebote a todos los usuarios que solo ven una página. Esto, tal y como apunta Pere, en páginas de contenidos: periódicos, blogs, foros, wikis, etc. es totalmente falso: un usuario que lee nuestro post, aunque solo lea ese, no es un rebote.

La solución está en los eventos

El truco para conseguir que deje de ser un rebote pasa por usar la opción de crear eventos que nos da la Google Analytics Tracking Api. Los eventos son mediciones sobre acciones de los usuarios que se lanzan mediante javascript en cualquier momento. La gracia está en que en el momento en el que yo genere un evento para un usuario, como Google Analytics ya no solo tendrá sobre él la información de entrada a la página sino algo más, este usuario dejará de ser un rebote.

Apunte: más información sobre los eventos de Google Analytics
Hace un tiempo escribí un par de artículos sobre los eventos que pueden servirte para entender como funciona la mecánica de los eventos en Google Analytics:

- Capturar eventos con Google Analytics

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

Cómo usar los eventos para medir rebotes reales

Actuaremos bajo el supuesto de que el usuario que entra solo va a ver esa página (ya que de otra forma ya no sería un rebote al tener 2 páginas vistas). Entonces tenemos que crear un evento tonto (sin datos útiles) siempre que queramos que ese usuario deje de ser contado como rebote...

Por el tiempo de lectura

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

// Código de analytics normal:
var pageTracker = _gat._getTracker("UA-1234567-8");
pageTracker._trackPageview();
 
// hack: 10 seconds para eliminar rebote
setTimeout(function() {
  pageTracker._trackEvent('NoBounce', 'NoBounce', 'Over 10 seconds')	
},10*1000);

Si usamos jquery podemos hacer más realista aún esta medición contando desde que la página termina de cargar todo el contenido.

// Código de analytics normal:
var pageTracker = _gat._getTracker("UA-1234567-8");
pageTracker._trackPageview();
 
// hack: 10 seconds para eliminar rebote
$(document).ready(function(){
  setTimeout(function() {
    pageTracker._trackEvent('NoBounce', 'NoBounce', 'Over 10 seconds')	
  },10*1000);
});

Cuando se cargue alguna acción dinámica

Es bastante común que una misma página tenga zonas de click 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 click 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 cada uno sabrá como encontrar su propia solución.

// Código de analytics normal:
var pageTracker = _gat._getTracker("UA-1234567-8");
pageTracker._trackPageview();
 
// hack: 10 seconds para eliminar rebote
$(document).ready(function(){
  $(".actionLink").click(function(){
    pageTracker._trackEvent('NoBounce', 'NoBounce', 'Click action')	
  });
});

Cuando se hace scroll

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

// Código de analytics normal:
var pageTracker = _gat._getTracker("UA-1234567-8");
pageTracker._trackPageview();
 
// hack: 10 seconds para eliminar rebote
$(document).ready(function(){
  $(window).scroll(function () { 
    pageTracker._trackEvent('NoBounce', 'NoBounce', 'Scroll action')	
  });
});

Y 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. Yo acabo de poner el evento a los 20 segundos de lectura porque me interesa sólo saber quien me lee al menos un poco (y escribo posts un poco largos) y no tanto quien navega por la página ¿tú donde crees que deberías ponerlo?

Posts Relacionados:

  1. Google Analytics: Cómo enviar las campañas desde el servidor (y no desde url)
  2. capturar eventos con Google Analytics ( ajax, clicks, tiempos, formularios, …)
  3. Google Analytics Tracking API: Como funciona el Javascript de Google Analytics
  4. Google Analytics Tracking API: Configuración Básica
  5. Como hackear el código javascript de Google Analytics.

Temas Relacionados: analitica web

7 Comentarios para “Google Analytics: Detecta como ‘Rebote’ solo a los usuarios que realmente lo son.”

  1. Woww Iñaki, tus artículos cada vez me sorprenden más, gracias maestro, esto me servirá para un proyecto donde GA nos dice que hay bounce del 70% pero yo no pienso que sea tan así. Saludos amigo!!

  2. ikhuerta dice:

    Mira yo suelo tener un Rebote de un 66-68% en este blog... con el que no estoy nada deacuerdo porque la duración media de la visita pasa los 2 minutos y medio con lo que no me parece correcto medir a los lectores de un solo post como rebotes...

    Ayer puse lo mismo que explica el post en el código de analytics. A los 20 segundos se crea un evento (puedes verlo en el código mismo al final del todo).

    Ayer el Rebote ya bajó a un 44% (porque lo puse tarde). Hoy de momento está en un 2,70% lo que me dice que a lo mejor me he pasado considerando No-Rebote a usuarios que solo han pasado 20 segundos en la página... pero que me demuestra que algo si que leeis la mayoría de los que entráis! :D

  3. La verdad que me ha gustado tu post por la información que has proporcionado, sobre la tasa de rebote me ayudara a bajarla que también rondo sobre el 65 por cien, quizás dentro de un tiempo sea un factor cara al posicionamiento.

  4. ikhuerta dice:

    Hola usuario que potencia la keyword "Villa de Ayora". Gracias por tu comentario. La verdad es que es que uno de los factores que se manejan para Caffeine es precisamente ese asi que como dices, nos va a venir bien tenerlo controlado.

  5. tades dice:

    Excelente encontre como configurar el tema de los rebotes. Una pregunta: si esto se usa en wordpress y usamos el codigo ejemplo que señalas usa jquery, funciona con el jquery que tiene el mismo wordpress o hace falta cargar jquery en otro directorio?

    Saludos

  6. ikhuerta dice:

    Ummm, dependería de que versión de jquery usase tu versión de wordpress. No puedo asegurarte cuando incluyeron el metodo scroll pero si que puedo decirte que la funcion ready y el método click hace muchisimo tiempo que se usan en jquery con lo que debería ser compatible.

    Un problema que he ido viendo sobre jquery con wordpress es que jquery se inicia sobre la variable "$" y en wordpress eso no pasa con lo que en lugar de usar $(document) es probable que necesites usar jQuery("document")... prueba antes en desarrollo que es lo que te funciona...

  7. [...] (clicks, scrolls, etc) está realizando en mi tienda online. Este tipo de medición simplica el uso de creación de eventos mediante el uso de las APIs de Google Analytics y ofrece un servicio hosteado en el que, por menos de 3.000 euros al año en su versión para [...]

Anímate y deja tu comentario