Uno de los grandes problemas de Google Analytics, al menos desde mi punto de vista, es que el cálculo de tiempo en página no es demasiado fiable. En si no es un gran problema en una página normal en la que los usuarios visitan más de una página, pero cuando extrapolamos la situación a un blog el problema empieza a ser grave.
Como es bien sabido, Google solo puede medir el tiempo en página si visitamos más de una página del sitio, ya que deduce que para llegar a una segunda página has abandonado la primera, aunque eso puede no ser totalmente cierto, especialmente con la navegación por pestañas como explica en un excelente post el gurú de Analytics Avinash Kaushik. El problema es que muchos blogs solo hacen una página por visita - su porcentaje de rebote o bounce rate es muy alto - por lo que el cálculo no es demasiado fiable. Además, de cara a vender publicidad no es lo mismo decir que cada visitante ha estado 2 minutos en tu página que 10. Evidentemente también puede suceder lo contrario, y es que al contar el tiempo en página de los rebotes tu tiempo promedio para ese página baje, ya que recibes un montón de visitas que se van casi instantáneamente.
La opción más fácil para calcular el tiempo en página es utilizando el seguimiento de eventos, pero como de momento sigue siendo una funcionalidad beta - pese a que si tienes cualquier contacto con alguien de Google lo puedes pedir y es factible que te lo den - voy a mostrar como realizar el seguimiento con el tracker de toda la vida, generando un hit falso cuando el usuario abandona la página.
Lo primero de todo es irnos a Google Analytics y crear un nuevo perfil: Google Analytics > Añadir perfil del sitio web > Añadir un perfil para un dominio nuevo > en el campo URL ponemos otra vez la URL de nuesto sitio > Finalizar > pegamos el código en nuestra página justo debajo del viejo código. Así es como quedaría el código:
Fijaos que solo incluyo una vez el script que llama a la librería de Google ga.js.
El motivo para crear dos perfiles diferentes en la misma página es que como vamos a generar un hit de Analytics cada vez que alguien abandone una página, falsearemos el conteo de páginas vistas en Analytics. Así tendremos dos perfiles, uno con las páginas vistas reales y el tiempo en página no real, y otro con las páginas visitas falseadas y el tiempo en página real. IMPORTANTE: es factible que el tiempo en página real sea solo para cada página en concreto del site, no para el tiempo en página global del site (es un dato que tengo que comprobar).
Ahora lo único que nos falta hacer es que cuando un usuario abandone la página se genere un hit extra falso, que le permitirá a Google calcular el tiempo que ha estado en esa página. La manera más fácil es aprovechando el evento onunload que se dispara cada vez que salimos de una página. Para ese crearemos un js que incluiremos en todas nuestras páginas, y que disparará una visita extra a la página exit. Esto le permitirá a Analytics calcular el tiempo que ha estado el usuario en la página. Este sería el js
window.onunload = unloadPage; // Llamamos a la función unloadPage al salir de la página
function unloadPage()
{
segmentTracker._trackPageview('exit'); // Disparamos una hit de página falso a exit
}
Fijaos que el hit lo estoy generando en el segundo tracker, el segmentTracker. Eso implica que en ese perfil tendremos muchas páginas vistas falsas bajo el título de exit en los informes de Analytics, pero por contra el tiempo en página será bastante más fidedigno.
Actualmente estoy controlando el tiempo en página mediante seguimiento de eventos en una página que recibe bastante tráfico y que sospechaba la gente visitaba durante más tiempo que el mostrado por Analytics. En el informe normal de Analytics, el tiempo en página es de 2 minutos 33 segundos:

En cambio, en el informe de seguimiento de eventos esa misma página muestra un tiempo en pagina ¡de más de 10 minutos!

En cuanto puedo adjuntaré capturas realizadas con el seguimiento de tiempo en página mediante el tracker normal, sin seguimiento de eventos.