En esta guía se describe cómo analytics.js usa las cookies y cómo establecer la configuración para sitios web multidominio.
Descripción general
De forma predeterminada, la biblioteca analytics.js usa una cookie individual denominada _ga
para almacenar un identificador de cliente único (ID de cliente), que es un número generado aleatoriamente. Una vez generado el ID, se almacena en la cookie y se incluye en cada hit o solicitud que se envía a Google Analytics. Después, los servidores de Google Analytics lo utilizan para calcular los datos de usuarios, sesiones y campañas.
La cookie _ga
es una cookie propia a la que solo se puede acceder mediante el dominio en el que se ejecuta el código JavaScript. En el caso de determinadas implementaciones, es posible que sea necesario modificar el modo en que Google Analytics establece su cookie y en este documento se explicará cómo hacerlo.
Implementación
El fragmento JavaScript predeterminado para analytics.js crea un objeto de seguimiento con el método create
:
ga('create', 'UA-XXXX-Y');
De este modo se crea una nueva cookie en la que:
- Su nombre es
_ga
, - Su dominio es el del sitio web, sin el prefijo
www.
- Su caducidad es de 24 meses (dos años) y la caducidad se actualiza cada vez que se envía un hit.
Configuración de las opciones predeterminadas
Para modificar cualquiera de estos valores, pasa al método create
un objeto de configuración como el último parámetro. El objeto de configuración es un objeto JavaScript normal en el que cada propiedad es el nombre del campo que quieres anular. Por ejemplo:
ga('create', 'UA-XXXX-Y', { 'cookieName': 'new_cookie_name', 'cookieDomain': 'mynew.domain.com', 'cookieExpires': 60 * 60 * 24 * 28 // Time in seconds. });
De este modo se cambia la configuración de cookie predeterminada a sus valores correspondientes.
Configuración automática de dominios de cookie
ga('create', 'UA-XXXX-Y', 'auto');
La configuración automática de dominios de cookie simplifica las implementaciones de seguimiento multidominio si se utiliza el parámetro auto
. Cuando se usa en el dominio www.example.co.uk
, intentará escribir las cookies en el siguiente orden:
co.uk
example.co.uk
www.example.co.uk
Analytics.js no podrá escribir una cookie en co.uk
, pero sí en example.co.uk
. Como se ha escrito una cookie en un dominio de nivel más alto, se saltará www.example.co.uk
.
Configuración de cookies en localhost
En algunos casos, puedes ejecutar analytics.js desde un servidor web que se ejecute en localhost
. Para configurar las cookies de analytics.js, debes inhabilitar el dominio de cookie predeterminado mediante:
ga('create', 'UA-XXXX-Y', { 'cookieDomain': 'none' });
También puedes hacerlo de esta manera más sencilla:
ga('create', 'UA-XXXX-Y', 'none');
Varios objetos de seguimiento en el mismo dominio
La biblioteca analytics.js configura una cookie individual con el ID de cliente único para que todos los objetos de seguimiento compartan esta misma cookie. Si vas a implementar analytics.js en varios subdominios, o en diferentes subdirectorios del mismo dominio, debes:
- configurar todos los objetos de seguimiento para establecer una cookie en el dominio más alto posible,
- omitir el prefijo
www
y.
(punto) del dominio.
Por lo tanto, si tienes un sitio con dos subdominios, one.example.com
y two.example.com
, ambos objetos de seguimiento se configuran del siguiente modo:
// Configuration for one.example.com ga('create', 'UA-XXXX-Y', {'cookieDomain': 'example.com'});
// Configuration for two.example.com ga('create', 'UA-XXXX-Y', {'cookieDomain': 'example.com'});
Modificación de la caducidad de las cookies
Cada vez que se envía un hit o una solicitud a los servidores de Google Analytics, el tiempo de caducidad de la cookie se actualiza según el tiempo actual más el valor del tiempo de cookieExpires
(en segundos). Por ejemplo, al configurar:
ga('create', 'UA-XXXX-Y', { 'cookieExpires': 60 });
el tiempo de caducidad de la cookie se configura como 60 segundos (un minuto) en el futuro.
Si has configurado el tiempo de cookieExpires
como 0
(cero) segundos, la cookie se convierte en una cookie basada en sesión y caduca cuando finaliza la sesión de navegador actual.
ga('create', 'UA-XXXX-Y', { 'cookieExpires': 0 });
Obtención del ID de cliente
Los programadores no deben acceder a la cookie que establece analytics.js ya que su formato puede cambiar sin previo aviso. Esto podría provocar errores de secuencia de comandos y datos incorrectos. En su lugar, deben usar el comando get
para recuperar el valor de clientId
cuando sea necesario. Estos son los pasos a seguir:
ga(function(tracker) { var clientId = tracker.get('clientId'); });
Después de que se haya cargado la biblioteca analytics.js, se ejecutará la función pasada a ga
y el parámetro tracker
incluirá una referencia al objeto de seguimiento predeterminado. A continuación, el objeto de seguimiento se usa para obtener el valor de clientId
.
Inhabilitación de las cookies
De forma predeterminada, analytics.js usa una cookie individual para mantener un identificador de cliente único en diferentes páginas. En algunos casos, es recomendable usar un mecanismo de almacenamiento propio y enviar los datos directamente a Google Analytics sin usar cookies.
Puedes inhabilitar que analytics.js configure cookies del siguiente modo:
ga('create', 'UA-XXXX-Y', { 'storage': 'none', 'clientId': '35009a79-1a05-49d7-b876-2b884d0f825b' });
Al inhabilitar el almacenamiento de cookies, tendrás que proporcionar tu propio parámetro clientId
, excepto en el caso especial en el que uses parámetros de enlace multidominio.