Tiempos de usuario

En esta guía se describe cómo medir periodos mediante analytics.js.

Descripción general

Según varios estudios, al reducir el tiempo de carga de las páginas se mejora la experiencia de usuario general de los sitios web. Google Analytics dispone de una serie de informes muy eficaces que miden automáticamente los tiempos de carga de las páginas y proporcionan datos al respecto. No obstante, también es posible registrar información de tiempos personalizados para medir el rendimiento de tu sitio web.

Con los tiempos de usuario, los desarrolladores pueden medir periodos utilizando la biblioteca analytics.js, lo cual resulta muy útil para que los desarrolladores midan la latencia, o el tiempo transcurrido, enviando solicitudes AJAX y cargando recursos web.

Implementación

Para enviar hits de tiempos de usuario, puedes ejecutar el comando send y especificar un hitType de timing. El comando send tiene la siguiente firma para el tipo de hit timing:

ga('send', 'timing', [timingCategory], [timingVar], [timingValue], [timingLabel], [fieldsObject]);

Campos de tiempos de usuario

En la tabla siguiente se ofrece un resumen de los campos de tiempos de usuario:

Nombre del campo Tipo de valor Obligatorio Descripción
timingCategory texto Cadena para clasificar todas las variables de tiempos de usuario en grupos lógicos (por ejemplo, 'JS Dependencies').
timingVar texto Cadena para identificar la variable que se va a registrar (por ejemplo, 'load').
timingValue entero Número de milisegundos del tiempo transcurrido que se notificará a Google Analytics (por ejemplo, 20).
timingLabel texto no Cadena que se puede usar para añadir flexibilidad a la visualización de los tiempos de usuario en los informes (por ejemplo, 'Google CDN').

Ejemplos:

El comando siguiente envía un hit de tiempo de usuario a Google Analytics que indica que la página web actual ha tardado 3549 milisegundos en cargar todas las dependencias de JavaScript externas:

ga('send', 'timing', 'JS Dependencies', 'load', 3549);

Al igual que sucede con todos los comandos send, los campos que se transfieren con los parámetros auxiliares también se pueden especificar en fieldsObject. El comando anterior se podría reescribir de la siguiente forma:

ga('send', {
  hitType: 'timing',
  timingCategory: 'JS Dependencies',
  timingVar: 'load',
  timingValue: 3549
});

Medir el tiempo

Al enviar datos de tiempo de usuario, se especifica la cantidad de milisegundos transcurridos en el parámetro timingValue. Tú te debes encargar de escribir el código necesario para capturar este periodo.

La forma más sencilla de hacerlo es crear una marca de tiempo al principio de un periodo de tiempo y otra al final. Después, puedes calcular la diferencia entre ambas marcas de tiempo para averiguar el tiempo transcurrido.

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 hit to Google Analytics.
  ga('send', 'timing', 'JS Dependencies', 'load', timeSincePageLoad);
}

Consideraciones de muestreo

Google Analytics realizará un muestreo de hits de tiempos durante el procesamiento para garantizar una distribución equitativa de los recursos del sistema para esta función.

La frecuencia con la que se muestrean los hits de tiempos se determina mediante el número total de los hits 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 tiempos:

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

Limitar el número de hits enviados

Para evitar enviar hits de Google Analytics que no se procesarán, analytics.js permite controlar el porcentaje de hits que se envían mediante las opciones de configuración sampleRate y siteSpeedSampleRate. De forma predeterminada, estos campos tienen asignados los valores 100 % y 1 %, respectivamente. Puedes ajustar estos valores para aproximarte lo máximo posible al número de hits de tiempos que Google Analytics procesará según tu media de páginas vistas diarias.