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 la página y proporcionan datos al respecto. No obstante, también es posible realizar el seguimiento de la información de tiempos personalizados para medir la información de rendimiento específica 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, realizando solicitudes AJAX y cargando recursos web.

Implementación

Los hits de tiempos de usuario se pueden enviar con el comando send y especificando 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 está registrando (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 que la visualización de los tiempos de usuario en los informes sea más flexible (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 segundos 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 pasan en 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 código 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 de tiempos de navegación, que incluye métodos en el objeto window.performance para medir el rendimiento de las páginas web a través de 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 la primera página empezó a cargarse:

// 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 el envío de hits de Google Analytics que no se procesarán, analytics.js permite controlar el porcentaje de hits que se envían a través de las opciones de configuración sampleRate y siteSpeedSampleRate. De forma predeterminada, estos campos están configurados como 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 recuentos de páginas vistas diarias.