Obtener y definir datos de campo

En ocasiones, para obtener y definir 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 ga() se ejecutan de forma asíncrona y no devuelven ningún valor, y 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 lleva a cabo con la función ready callback.

Ready callback

La función ready callback es una retrollamada que se puede añadir a la cola de comandos ga(). Dicha función se invocará en cuanto la biblioteca analytics.js se haya cargado por completo y se hayan ejecutado todos los comandos anteriores que se hayan añadido a la cola.

Como todos los comandos de la cola se ejecutan en orden, al añadir la retrollamada después de un comando create te aseguras de que se ejecute una vez que se haya creado el objeto de seguimiento. El objeto de seguimiento predeterminado se transmite como primer (y único) argumento de la retrollamada si se ha creado al invocar la función "ready callback".

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 objetos de seguimiento mediante los métodos del objeto 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, sirven para acceder a los objetos de seguimiento.

getByName

Si sabes 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 con 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 la 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'));
});

Modificar datos

Los objetos de seguimiento se pueden modificar con el método set. Para ello, llama al método set de un objeto de seguimiento en el propio objeto o añade un comando set a la cola de comandos ga().

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

Cola de comandos 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 definen 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 define el campo page en 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 con el signo &

Normalmente, los valores de los campos de los objetos de seguimiento se obtienen y definen utilizando sus nombres. Consulta la referencia de los campos para ver una lista completa de los campos de analytics.js y sus nombres.

Otra forma de obtener y definir los campos es referirse a ellos por sus correspondientes nombres de parámetros del Protocolo de medición.

Por ejemplo, las dos expresiones console.log siguientes 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 modificar los datos que contienen, el paso siguiente es aprender a enviar datos a Google Analytics para procesarlos.