Skip to main content
  1. Blog Post/

Cómo funcionan las cookies de Google Analytics desde dentro

6 min · 1704 words
Table of Contents
Actualización: 17 Septiembre 2012

En esta ocasión vamos a ver el funcionamiento de las cookies y cómo mide las visitas y usuarios Google Analytics. Para su funcionamiento utiliza hasta 6 cookies diferentes, que son las siguientes: __utma, __utmb, __utmc, __utmv, __utmz, __utmk , incluiríamos una llamada utmx si estuvieses utilizando Website Optimizer. Actualización: __utmli , __utmmobile

__utma

Esta cookie ha de estar fijada de forma obligatoria para el correcto funcionamiento de Google Analytics, y se trata de una cookie persistente que caduca a los 2 años.

El Hash Dominio, se trata de un ID único al dominio, para poder identificarlo ( se puede anular para que el seguimiento entre subdominios/dominios sea correcto fijando la variable _setAllowHash a false con la función ), se utiliza para comprobar la integridad de las cookies y la siguiente función es la que lo genera:

function _uHash(d)
{
if (!d || d=="") return 1;
var h=0,g=0;
for (var i=d.length-1;i>=0;i--)
{
var c=parseInt(d.charCodeAt(i));
h=((h << 6) & 0xfffffff) + c + (c << 14);
if ((g=h & 0xfe00000)!=0) h=(h ^ (g >> 21));
}
return h;
}


ID único aleatorio:
 Este ID se genera en cada petición de página, y su función es básicamente que los navegadores o proxies no cacheen la petición de la imagen ( __utm.gif )
Timestamp primera visita: Esta es la hora de la primera visita a nuestra web por parte del visitante, el formato es timestamp, básicamente marca el número de segundos que han pasado de la fecha: 1 de enero 00:00:00 UTC de 1970. Este valor no debería cambiar NUNCA.
Timestamp sesión anterior: Esta es la hora en formato timestamp , en la que el usuario visito por última vez una página de nuestra web. Para fijarla Google Analytics coge el valor desde la varible __utmb, explicada más adelante.
Timestamp última sesión: Esta es la hora en formato timestamp , en la que el usuario inició la visita actual.

Por lo tanto en la primera visita de un usuario los tres valores de fecha deberán ser iguales.

Contador Visitas: Esta parte no necesita mucha más explicación es el número de sessiones/visitas que el usuario a realizado en nuestra web.

__utmb

Se utiliza para saber el tiempo que pasa el usuario en nuestra página y el número de páginas que visita, o lo que es lo mismo lo que duran las visitas/sessiones de las visitas. Por defecto esta cookie expira a los 30 minutos, aunque se puede modificar este tiempo fijando la variable _setSessionCookieTimeout al tiempo que queramos, se fija el tiempo en milisegundos.

Hash Domain: El mismo hash para el dominio que teníamos en el valor __utma
Contador páginas vistas sesión:  Por cada página que visita el usuario durante la misma sesión o visita, este contador se irá incrementando en uno.
Token: ( sin confirmar ) El código de Google Analytics tiene un mecanismo que evita que se envíen cientos de peticiones a sus servidores, este  Token se encarga de llevar la cuenta de el. Cabe destacar que los propios servidores de Google tienen una limitación propia también de 500 impactos GATC  ( Google Analytics tracking code ) por sesión, contando tanto las páginas vistas como los eventos.
Timestamp última página vista: Es el timestamp en el cual el usuario vió una página de nuestra web, por lo tanto se actualiza con cada página vista o evento generado.

__utmc

Esta cookie se utiliza de forma conjunta con __utmb para saber si se establece una nueva sesión para el usuario. Esta cookie expira cuando se cierra el navegador, por lo que si el usuario entra y no existe esta cookie, se debe fijar una sessión nueva, por ejemplo si un usuario cierra el navegador y vuelve a entrar a los 45 minutos. Esto es diferente desde el cambio en la forma de medición de las visitas de hace unos meses. Sigue siendo válido en instalaciones no actualizadas de Google Analytics
Es valor de esta cookie tan solo incluye el timestamp en el que el usuario visitó nuestra página web.

__utmz

Está cookie se utiliza para realizar la atribución de la visita, es decir desde dónde y cómo ha llegado el usuario a nuestra web. Tiene una duración por defecto de 6 meses, que se puede modificar con la función _setCampaignCookieTimeout fijando el tiempo en milisegundos.

Los valores son DomainHash.Timestamp.ContadorSesion.ContadorCampaña.
El valor de ContadorSesion será el mismo que tenemos en el valor __utma , y el ContadorCampaña, se incrementará cada vez que se cambie de campaña independientemente del valor del Contador de Sesiones.

Google Analytics, sobreescribe siempre el valor de la campaña mientras el valor no se "Directo" , esto quiere decir:
El usuario entra a nuestra web directamente poniendo el dominio, el valor será direct.
Este mismo usuario entra al día siguiente a nuestra web el Buscador de Google: El valor sería google.

Pongamos el caso anterior de forma inversa, es decir primero entra desde Google y al día siguiente de forma directa, la atribución de la siguiente visita, se seguiría manteniendo para Google.

Si por ejemplo el usuario entrase desde un mailing etiquetado con las etiquetas de UTM, este valor también se sobreescribiría, así como si entra desde un enlace en otra web ( referrer ).
Tal y como hemos dicho la única ocasión que no se sobreescribe la atribución de la visita es cuando el tráfico es directo, siempre que no sea la primera visita. Si es durante la misma sesión el referrer tampoco se sobreescribe si cambiase en el transcurso de esta.

Los parámetros que se escriben sobre la fuente de la visita son los siguientes:
utmcsr=google | La fuente desde la que han llegado a nuestra web
utmccn=(organic) | El nombre de la campaña
utmcmd=organic | El medio de la visita
utmctr=thyngster%20urchin | La palabra clave/término utilizado.
utmcct =     |  El contenido

Estos son además de los parámetros utilizados en el etiquetado de campañas que utiliza Google Analytics.

__utmv


Este parámetro lo podemos fijar nosotros para distinguir visitas, por ejemplo para saber las visitas de usuarios registrados o no registrados, se fija mediante el método _setVar . El formato sería el siguiente DomainHash.Valor 

__utmx

Esta cookie se utiliza conjuntamente cuando se realizan test de A/B Testing o Multivariate con GWO ( Google Website Optimizer )

__utmk

Esta cookie contiene un Hash ( Digest ) de todas la variables UTM, se utiliza en el seguimiento entre dominios, para verificar la integridad de las cookies pasadas entre dominios

Como ya sabemos Google Analytics utiliza first-party cookies , es decir cookies generadas en el propio dominio del usuario, que casi nunca están bloqueadas por los navegadores, pero los impactos al __utm.gif están en el dominio www.google-analytics.com , por lo que hace el javascript es enviar los parámetros de las cookies por GET en la variable utmcc .<

Para terminar de definir como mide las visitas/sesiones Google Analytics, se incrementa el contador en los siguientes casos:

    Actualización 17 Septiembre 2012

    Con el tiempo se ha quedado el post un poco desactualizado, por lo que voy a ampliarlo con el resto de información de las cookies posibles que utiliza Google Analytics:

    __utmli

    Esta cookie se utiliza cuando estamos utilizando la atribución de enlaces mejorada . Cuando se hace click en algún enlace se genera una cookie nueva ( __utmli ), con una caducidad de 30 segundos con el valor del ID que contenga este enlace, posteriormente en la página de destino se lee esta cookie y se añade esa información a esa visualización de página. La utilidad es poder diferenciar en el reporte de Analítica de página, diferentes enlaces que apunten a un mismo destino.

    __utmm­obile

    Esta cookie tan solo se genera cuando se utiliza en SDK para móviles, y tiene la misma función que tiene la cookie __utma para entornos Web.  Lo que hace es generar un hash MD5 en base a diferentes valores, selecciona una parte del hash y le añade por delante '0x-'  . Con ella Google Analytics puede identificar los dispositivos móviles como si de usuarios únicos se tratara.