Para que Google Analytics determine que dos hits distintos pertenecen al mismo usuario, se debe enviar un identificador único, asociado con ese usuario en particular, con cada hit.
La biblioteca analytics.js logra esto a través del campo ID del cliente , una cadena única generada aleatoriamente que se almacena en las cookies de los navegadores, de modo que las visitas posteriores al mismo sitio se puedan asociar con el mismo usuario.
De forma predeterminada, analytics.js utiliza una sola cookie de origen denominada _ga
para almacenar el ID de cliente, pero el nombre, el dominio y el tiempo de caducidad de la cookie se pueden personalizar. Otras cookies creadas por analytics.js incluyen _gid
, AMP_TOKEN
y _gac_<property-id>
. Estas cookies almacenan otras identificaciones generadas aleatoriamente e información de campañas sobre el usuario.
El uso de cookies permite que analytics.js identifique usuarios únicos en las sesiones de navegación, pero no puede identificar usuarios únicos en diferentes navegadores o dispositivos. Si su sitio tiene su propio sistema de autenticación, puede usar la función de ID de usuario , además de la ID de cliente, para identificar con mayor precisión a un usuario en todos los dispositivos que usa para acceder a su sitio.
Esta guía explica cómo personalizar la configuración de las cookies y cómo configurar el campo de ID de usuario para medir con mayor precisión la actividad del usuario en todas las sesiones.
Configurar los ajustes del campo de cookies
La siguiente tabla muestra los valores de campo de cookies predeterminados utilizados por analytics.js:
Nombre del campo | Tipo de valor | Valor por defecto |
---|---|---|
cookieName | texto | _ga |
cookieDomain | texto | El resultado de la siguiente expresión de JavaScript:document.location.hostname |
cookieExpires | entero | 63072000 (dos años, en segundos) |
cookieUpdate | booleano | true |
cookieFlags | texto |
|
Para modificar cualquiera de estos valores, puede especificarlos en el fieldObject
al pasar el comando create
. Por ejemplo:
ga('create', 'UA-XXXXX-Y', {
'cookieName': 'gaCookie',
'cookieDomain': 'blog.example.co.uk',
'cookieExpires': 60 * 60 * 24 * 28 // Time in seconds.
'cookieUpdate': 'false',
'cookieFlags': 'SameSite=None; Secure',
});
El campo de cookie más común para establecer es cookieDomain
, como tal, el comando create
acepta el campo cookieDomain
como un tercer parámetro opcional por conveniencia:
ga('create', 'UA-XXXXX-Y', 'blog.example.co.uk');
Configuración automática de dominio de cookies
La etiqueta recomendada de Google Analytics establece la cadena 'auto'
para el campo cookieDomain
:
ga('create', 'UA-XXXXX-Y', 'auto');
Especificar 'auto'
como cookieDomain
habilita la configuración automática del dominio de cookies, lo que le dice a analytics.js que determine automáticamente el mejor dominio de cookies para usar.
La configuración automática del dominio de cookies establece la cookie _ga
en el dominio de nivel más alto posible. Por ejemplo, si la dirección de su sitio web es blog.example.co.uk
, analytics.js establecerá el dominio de la cookie en .example.co.uk
. Además, si analytics.js detecta que está ejecutando un servidor localmente (p. ej., localhost
), establece automáticamente cookieDomain
en 'none'
.
Caducidad de las cookies
Cada vez que se envía un hit a Google Analytics, el tiempo de caducidad de la cookie se actualiza para ser el tiempo actual más el valor del campo cookieExpires
. Esto significa que si usa la cookieExpires
predeterminada, el tiempo de vencimiento es de dos años y un usuario visita su sitio todos los meses, su cookie nunca caducará.
Si establece el tiempo cookieExpires
en 0
(cero) segundos, la cookie se convierte en una cookie basada en la sesión y caduca una vez que finaliza la sesión actual del navegador:
Actualización de cookies
Cuando cookieUpdate
se establece en true
(el valor predeterminado), analytics.js actualizará las cookies en cada carga de página. Esto actualizará la caducidad de la cookie que se establecerá en relación con la visita más reciente al sitio. Por ejemplo, si la caducidad de la cookie se establece en una semana y un usuario visita usando el mismo navegador cada cinco días, la caducidad de la cookie se actualizará en cada visita y, por lo tanto, nunca caducará.
Cuando se establece en false
, las cookies no se actualizan en cada carga de página. Esto tiene el efecto de que la caducidad de la cookie es relativa a la primera vez que un usuario visitó el sitio.
Banderas de cookies
Agrega banderas adicionales a la cookie cuando se establece. Las banderas deben estar separadas por punto y coma.
Obtener el ID de cliente de la cookie
No debe acceder directamente a los conjuntos de cookies analytics.js, ya que el formato de la cookie puede cambiar en el futuro. En su lugar, los desarrolladores deben usar readyCallback
para esperar hasta que se cargue analytics.js y luego obtener el valor clientId
almacenado en el rastreador.
ga(function(tracker) { var clientId = tracker.get('clientId'); });
Deshabilitar cookies
En algunos casos, es posible que desee utilizar su propio mecanismo de almacenamiento (como localStorage
o Service Worker ) para conservar el ID de cliente entre sesiones sin utilizar cookies. Puede impedir que analytics.js establezca cookies configurando el campo storage
en 'none'
.
ga('create', 'UA-XXXXX-Y', { 'storage': 'none' });
Si está almacenando el campo clientId
usted mismo, deberá asegurarse de configurar el campo cliendId
cuando cree el rastreador.
ga('create', 'UA-XXXXX-Y', { 'storage': 'none', 'clientId': '76c24efd-ec42-492a-92df-c62cfd4540a3' });
Para deshabilitar las cookies _gac_<property-id>
, establezca el campo storeGac
en false
en el comando create
:
ga('create', 'UA-XXXXX-Y', {
storeGac: false,
});
Uso de localStorage para almacenar la identificación del cliente
El siguiente ejemplo de código muestra cómo podría modificar la etiqueta de JavaScript para usar localStorage
para almacenar el ID de cliente en lugar de cookies:
var GA_LOCAL_STORAGE_KEY = 'ga:clientId';
if (window.localStorage) {
ga('create', 'UA-XXXXX-Y', {
'storage': 'none',
'clientId': localStorage.getItem(GA_LOCAL_STORAGE_KEY)
});
ga(function(tracker) {
localStorage.setItem(GA_LOCAL_STORAGE_KEY, tracker.get('clientId'));
});
}
else {
ga('create', 'UA-XXXXX-Y', 'auto');
}
ga('send', 'pageview');
ID de usuario
El ID de usuario permite el análisis de grupos de sesiones, en todos los dispositivos, utilizando una cadena de ID única, persistente y no identificable personalmente que representa a un usuario. Para saber por qué debe implementar la ID de usuario, consulte Beneficios de usar la función de ID de usuario .
Para implementar el ID de usuario con analytics.js:
- Proporcione su propio ID de cadena único, persistente y no identificable personalmente para representar a cada usuario que inició sesión. Este ID suele ser proporcionado por un sistema de autenticación.
- Establezca la ID de usuario en el rastreador:
ga('create', 'UA-XXXXX-Y', 'auto', { userId: USER_ID }); ga('send', 'pageview');
Manejo de la autenticación después de la carga de la página
Al crear aplicaciones de una sola página u otros sitios web dinámicos que manejan el inicio de sesión del usuario después de la carga de la página inicial, el proceso de configuración del valor de ID de usuario en el rastreador no puede ocurrir en el momento de la creación.
En tales casos, puede usar el comando set
para establecer el valor en el rastreador tan pronto como se conozca.
// Creates the tracker and sends a pageview as normal // since the `userId` value is not yet known. ga('create', 'UA-XXXXX-Y', 'auto'); ga('send', 'pageview'); // At a later time, once the `userId` value is known, // sets the value on the tracker. ga('set', 'userId', USER_ID); // Setting the userId doesn't send data to Google Analytics. // You must also use a pageview or event to send the data. ga('send', 'event', 'authentication', 'user-id available');
Al usar este enfoque, los hits enviados antes de que se establezca el campo userId
no contendrán valores de ID de usuario. Sin embargo, a través de un proceso conocido como unificación de sesión , Google Analytics puede asociar estos hits con el usuario correcto en el momento del procesamiento.