Cómo funciona analytics.js

Casi todo lo que necesitas para medir con analytics.js se puede hacer con la cola de comandos de ga(). En esta guía, se explica qué es la cola de comandos, cómo funciona y cómo ejecutar comandos para medir las interacciones del usuario.

La cola de comandos de ga

La etiqueta de Google Analytics define una función ga global conocida como "cola de comandos". Se denomina cola de comandos porque, en lugar de ejecutar los comandos que recibe de inmediato, los agrega a una cola que retrasa la ejecución hasta que la biblioteca analytics.js se carga por completo.

En JavaScript, las funciones también son objetos, lo que significa que pueden contener propiedades. La etiqueta de Google Analytics define una propiedad q en el objeto de la función ga como un array vacío. Antes de que se cargue la biblioteca analytics.js, llamar a la función ga() agrega la lista de argumentos que se pasan a la función ga() al final del array q.

Por ejemplo, si ejecutaras la etiqueta de Google Analytics y, luego, registraras inmediatamente el contenido de ga.q en la consola, verás un array de dos elementos de longitud con los dos conjuntos de argumentos que ya se pasaron a la función ga():

console.log(ga.q);

// Outputs the following:
// [
//   ['create', 'UA-XXXXX-Y', 'auto'],
//   ['send', 'pageview']
// ]

Una vez que se carga la biblioteca analytics.js, inspecciona el contenido del array ga.q y ejecuta cada comando en orden. Después de eso, se vuelve a definir la función ga(), por lo que todas las llamadas posteriores se ejecutan de inmediato.

Este patrón permite a los desarrolladores usar la cola de comandos ga() sin tener que preocuparse por si la biblioteca analytics.js terminó de cargarse o no. Proporciona una interfaz simple y síncrona que abstrae la mayoría de las complejidades del código asíncrono.

Agrega comandos a la cola

Todas las llamadas a la cola de comandos de ga() comparten una firma común. El primer parámetro, "command", es una cadena que identifica un método de analytics.js en particular. Los parámetros adicionales son los argumentos que se pasan a ese método.

El método al que hace referencia un comando específico puede ser global, como create, o en el objeto ga, o bien puede ser un método de instancia en un objeto de seguimiento, como send. Si la cola de comandos ga() recibe un comando que no reconoce, simplemente lo ignora, por lo que las llamadas a la función ga() son muy seguras, ya que casi nunca generarán un error.

Para obtener una lista completa de todos los comandos que se pueden ejecutar a través de la cola de comandos, consulta la referencia de la cola de comandos de ga().

Parámetros de comando

La mayoría de los comandos de analytics.js (y sus métodos correspondientes) aceptan parámetros en varios formatos diferentes. Esto se hace para facilitar el paso de campos de uso común a ciertos métodos.

A modo de ejemplo, considera los dos comandos en la etiqueta de Google Analytics:

ga('create', 'UA-XXXXX-Y', 'auto');
ga('send', 'pageview');

En el primer comando, create acepta los campos trackingId, cookieDomain y name para que se especifiquen de forma opcional como el segundo, el tercero y el cuarto parámetro, respectivamente. El comando send acepta un segundo parámetro opcional hitType.

Todos los comandos aceptan un parámetro final fieldsObject que también se puede usar para especificar cualquier campo. Por ejemplo, los dos comandos anteriores en la etiqueta podrían reescribirse de la siguiente manera:

ga('create', {
  trackingId: 'UA-XXXXX-Y',
  cookieDomain: 'auto'
});
ga('send', {
  hitType: 'pageview'
});

Consulta la referencia de la cola de comandos de ga() para obtener una lista completa de los parámetros opcionales permitidos para cada uno de los comandos.

Próximos pasos

Después de leer esta guía, sabrás cómo ejecutar comandos con analytics.js y cómo funciona la cola de comandos. En la siguiente guía, se explica cómo crear objetos de seguimiento.