Obtener y configurar los datos del objeto de seguimiento

En ocasiones, obtener y configurar los datos de campo de un objeto de seguimiento requiere tener una referencia al propio objeto de seguimiento. Puesto que los comandos agregados a la cola de comandos de ga() se ejecutan de forma asíncrona y no devuelven un 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 devolución de llamada de proceso preparado.

Devolución de llamada de proceso preparado

La devolución de llamada de proceso preparado es una función que puedes agregar 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, agregar una devolución de llamada de proceso preparado después de agregar un comando create garantizará que dicha devolución se ejecute una vez que se haya creado el objeto de seguimiento. Si se ha creado un objeto de seguimiento predeterminado cuando se invoca la devolución de llamada de proceso preparado, se pasa como el primer argumento (y único) de la devolución de llamada.

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 de objeto de ga.

Una vez que la biblioteca analytics.js se ha cargado por completo, agrega métodos adicionales al objeto ga. Para acceder a los objetos de seguimiento se usan dos de estos métodos, getByName y getAll.

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 actualmente en dicho 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 los datos del objeto de seguimiento

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 agregando un comando set a la cola de comandos de ga().

Como obtener una referencia a un objeto de seguimiento requiere usar la devolución de llamada de proceso preparado, la forma recomendad de actualizar un objeto de este tipo es usar la cola de comandos de ga().

Usar la cola de comandos de ga()

El comando set se puede invocar de dos formas: pasando dos parámetros (un campo y su valor correspondiente) o pasando un objeto de pares campo-valor.

En el ejemplo siguiente se configura el campo page como '/about' 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 pasar 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 la sintaxis del signo & y solo se debe usar 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 agrega 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.