Cómo funciona analytics.js

Casi todo lo que necesitas 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 interacciones de los usuarios.

La cola de comandos de ga

La etiqueta de Google Analytics define la función global ga, conocida como "cola de comandos". Recibe este nombre porque, en vez de ejecutar inmediatamente los comandos que recibe, los añade a una cola que retrasa la ejecución hasta que la biblioteca analytics.js se ha cargado 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 matriz vacía. Antes de cargar la biblioteca analytics.js, la llamada de la función ga() añade la lista de argumentos transmitidos a la función ga() al final de la matriz q.

Por ejemplo, si ejecutaras la etiqueta de Google Analytics y registraras inmediatamente el contenido de ga.q en la consola, verías una matriz con dos elementos que contienen los dos conjuntos de argumentos ya transmitidos a la función ga():

console.log(ga.q);

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

Una vez cargada la biblioteca analytics.js, inspecciona el contenido de la matriz ga.q y ejecuta cada comando en orden. A continuación, se redefine la función ga(), de modo que todas las llamadas posteriores se ejecutan inmediatamente.

Este patrón permite a los desarrolladores usar la cola de comandos de ga() sin tener que preocuparse de si ha terminado de cargarse la biblioteca analytics.js. Proporciona una interfaz simple de carácter síncrono que elimina la complejidad del código asíncrono.

Añadir comandos a la cola

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

El método al que hace referencia un determinado comando puede ser un método global, comocreate; un método del objeto ga; o un método de instancia de un objeto de seguimiento, como send. Si la cola de comandos de ga() recibe un comando que no reconoce, lo ignora, por lo que las llamadas a la función ga() son muy seguras, ya que prácticamente nunca se generará un error.

En la referencia de la cola de comandos de ga(), encontrarás una lista con todos los comandos que se pueden ejecutar mediante la cola.

Parámetros de comandos

La mayoría de los comandos de analytics.js (y sus métodos correspondientes) aceptan parámetros con diferentes formatos. De este modo, resulta más fácil transferir campos que se utilizan habitualmente a determinados métodos.

Por ejemplo, veamos estos dos comandos de la etiqueta de Google Analytics:

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

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

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

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

En la referencia de la cola de comandos de ga(), puedes consultar una lista con todos los parámetros opcionales que se permiten con cada uno de los comandos.

Pasos siguientes

Después de leer esta guía, ya deberías saber cómo ejecutar comandos con analytics.js y cómo funciona la cola de comandos. En la guía siguiente explicaremos cómo crear objetos de seguimiento.