Medir los tiempos de usuario con gtag.js

Al reducir el tiempo de carga de las páginas, se consigue mejorar la experiencia global de los usuarios en los sitios. En esta página se describe cómo enviar información de tiempos de usuario a Google Analytics.

Implementación

Utiliza el comando event para enviar un evento timing_complete:

gtag('event', 'timing_complete', {<timing_parameters>});

<timing_parameters> es uno o varios pares de valor de parámetro. Separa cada par con una coma. Por ejemplo, con el siguiente comando se envía un evento de tiempos de usuario a Google Analytics, donde se indica que la página en cuestión ha tardado 3549 milisegundos en cargar dependencias externas de JavaScript.

gtag('event', 'timing_complete', {
  'name' : 'load',
  'value' : 3549,
  'event_category' : 'JS Dependencies'
});

Parámetros de tiempos de usuario

En la tabla siguiente se ofrece un resumen de los parámetros de tiempos de usuario:

Nombre del parámetro Tipo de datos Obligatorio Descripción
name string Cadena para identificar la variable que se está registrando (por ejemplo, 'load').
value integer Número de milisegundos del tiempo transcurrido que se notificará a Google Analytics (p. ej., 20)
event_category string No Cadena para clasificar todas las variables de tiempos de usuario en grupos lógicos (por ejemplo, 'JS Dependencies').
event_label string No Cadena que se puede usar para añadir flexibilidad al visualizar los tiempos de usuario en los informes (por ejemplo, 'Google CDN').

Medir el tiempo

El evento timing_complete necesita un parámetro value que especifique el tiempo transcurrido en milisegundos. Debes escribir código que capte este valor.

La forma más sencilla de hacerlo es crear una marca de tiempo al principio de un periodo de tiempo y otra al final. Luego, calcula el tiempo transcurrido entre las dos marcas de tiempo.

La mayoría de los navegadores modernos admiten la API Navigation Timing, que incluye métodos en el objeto window.performance para medir el rendimiento de las páginas web a través de los datos de tiempo de alta resolución.

En el ejemplo siguiente se usa el método performance.now(), que devuelve el tiempo que ha transcurrido desde que empezó a cargarse la página:

// Feature detects Navigation Timing API support.
if (window.performance) {
  // Gets the number of milliseconds since page load
  // (and rounds the result since the value must be an integer).
  var timeSincePageLoad = Math.round(performance.now());

  // Sends the timing event to Google Analytics.
  gtag('event', 'timing_complete', {
    'name': 'load',
    'value': timeSincePageLoad,
    'event_category': 'JS Dependencies'
  });
}

Consideraciones de muestreo

Google Analytics hará un muestreo de los eventos de tiempo para que haya una distribución equitativa de los recursos del sistema en esta función.

La frecuencia con la que se muestrean los eventos de tiempo se determina mediante el número total de páginas vistas recibidas durante el día anterior en la propiedad. En la siguiente tabla se describe cómo se determina la frecuencia de muestreo de los eventos de tiempo:

Recuento del total de páginas vistas (día anterior) Número máximo de eventos de tiempo que se procesarán
De 0 a 1000 100
De 1000 a 100.000 10 % del recuento total de páginas vistas
De 100.000 a 1.000.000 10.000
Más de 1.000.000 1 % del recuento total de páginas vistas