Obtener y configurar datos de campo

En ocasiones, para obtener y configurar los datos de campo de un objeto de seguimiento es necesario tener una referencia al propio objeto. Puesto que los comandos que se añaden a la cola de comandos de ga() se ejecutan de forma asíncrona y no devuelven ningún valor, y que los objetos de seguimiento se crean habitualmente con el comando create, para obtener una referencia a un objeto de seguimiento es necesario esperar a que se ejecute el comando create. Esta acción se realiza mediante la función ready callback.

Ready callback

La función ready callback es una retrollamada del proceso de preparado, y se puede añadir a la cola de comandos de ga(). Dicha función se invocará tan pronto como se cargue por completo la biblioteca analytics.js y se hayan ejecutado todos los comandos anteriores que se han agregado a la cola.

Como todos los comandos de la cola se ejecutan en orden, al añadir la retrollamada después un comando create se garantiza que esta se ejecute una vez que se haya creado el objeto de seguimiento. Si se ha creado un objeto de seguimiento predeterminado cuando se invoca ready callback, se pasa como el primer argumento (y único) de la retrollamada.

En el siguiente código se muestra cómo acceder al objeto de seguimiento predeterminado y registrarlo en la consola:

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

ga(function(tracker) {
  // Logs the tracker created above to the console.
  console.log(tracker);
});

Obtener los objetos de seguimiento mediante los métodos de objeto de ga

Si no utilizas un objeto de seguimiento predeterminado, o si tienes varios en la página, puedes acceder a ellos a través de uno de los métodos del objeto ga.

Una vez que la biblioteca analytics.js se ha cargado por completo, añade métodos adicionales al objeto ga. Dos de esos métodos, getByName y getAll, se usan para acceder a los objetos de seguimiento.

getByName

Si conoces el nombre del objeto de seguimiento al que quieres acceder, puedes hacerlo con el método getByName:

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

ga(function() {
  // Logs the "myTracker" tracker object to the console.
  console.log(ga.getByName('myTracker'));
});

getAll

Para obtener una matriz de todos los objetos de seguimiento creados, utiliza el método getAll:

ga('create', 'UA-XXXXX-Y', 'auto', 'tracker1');
ga('create', 'UA-XXXXX-Z', 'auto', 'tracker2');

ga(function() {
  // Logs an array of all tracker objects.
  console.log(ga.getAll());
});

Obtener los datos almacenados en un objeto de seguimiento

Una vez que tengas una referencia a un objeto de seguimiento, puedes usar su método get para acceder al valor de cualquier campo almacenado en ese objeto.

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

ga(function(tracker) {
  // Logs the trackers name.
  // (Note: default trackers are given the name "t0")
  console.log(tracker.get('name'));

  // Logs the client ID for the current user.
  console.log(tracker.get('clientId'));

  // Logs the URL of the referring site (if available).
  console.log(tracker.get('referrer'));
});

Actualizar datos

Los objetos de seguimiento se pueden actualizar con el método set. Se puede llamar al método set de un objeto de seguimiento en el propio objeto o añadiendo un comando set a la cola de comandos de ga().

Puesto que para obtener una referencia a un objeto de seguimiento se debe usar la función ready callback, se recomienda actualizar este tipo de objetos con la cola de comandos de ga().

Cola de comandos de ga()

El comando set se puede invocar de dos formas: transmitiendo dos parámetros, un campo y su valor correspondiente, o transmitiendo un objeto de pares campo/valor.

En el ejemplo siguiente se asigna el valor '/about' al campo page en el objeto de seguimiento predeterminado:

ga('set', 'page', '/about');

En este ejemplo se configuran los campos page y title al mismo tiempo:

ga('set', {
  page: '/about',
  title: 'About Us'
});

Usar un objeto de seguimiento con nombre

Si usas un objeto de seguimiento con nombre en vez del predeterminado, puedes transmitir su nombre en la cadena del comando.

Con la llamada siguiente se configura el campo page como el objeto de seguimiento llamado "myTracker":

ga('myTracker.set', 'page', '/about');

En el propio objeto de seguimiento

Si tienes una referencia al objeto de seguimiento, puedes llamar a su método set directamente:

ga(function(tracker) {
  tracker.set('page', '/about');
});

Sintaxis del signo &

Los valores de los campos de los objetos de seguimiento normalmente se obtienen y configuran con sus nombres. Consulta la referencia de campos para obtener una lista completa de los campos de analytics.js y sus nombres.

Una forma alternativa de obtener y configurar los campos es hacer referencia a ellos por sus nombres de parámetros de protocolo de medición correspondientes.

Por ejemplo, las dos siguientes expresiones de console.log registran el título del documento en la consola:

ga(function(tracker) {
  // Gets the title using the analytics.js field name.
  console.log(tracker.get('title'));

  // Gets the title using the measurement protocol
  // parameter name, prefixed with an ampersand.
  console.log(tracker.get('&dt'));
});

En general, no se recomienda usar el signo & excepto cuando no exista el nombre de campo de analytics.js de un parámetro del protocolo de medición, lo que sucede a veces si se añade una nueva función a dicho protocolo antes de que se implemente en analytics.js.

Pasos siguientes

Ahora que ya sabes cómo crear objetos de seguimiento y actualizar los datos que contienen, el paso siguiente es aprender a enviar datos a Google Analytics para procesarlos.