Jul 242014
 
Artículo Analytics

En el momento de escribir este artículo, la nueva versión del código de seguimiento de Google Analytics “Universal Analytics”, basado en la librería analytics.js, es ya la versión oficial, y muchos webmasters deben prepararse para sustituir, en las páginas de los sitios que administran, el antiguo código de seguimiento “Classic Analytics” basado en la librería ga.js.

En este artículo se recogen algunas consideraciones a tener en cuenta a la hora de realizar esta migración.

Fases de la migración

Según la información que proporciona Google en la página principal de “Universal Analytics Upgrade Center“, la migración de Classic a Universal Analytics consta de cuatro fases, de las cuales actualmente (Julio de 2014)  nos encontramos en la tercera:

  • Phase 1: All properties can upgrade to Universal Analytics.
  • Phase 2: Auto-transfer process begins.
  • Phase 3: Universal Analytics out of beta. (Current Phase)
  • Phase 4: Universal Analytics is the operating standard for Google Analytics.

En la primera fase, los webmasters podían voluntariamente realizar la migración a Universal Analytics, que estaba todavía en fase beta.

En la segunda fase, Google ha ido migrando las propiedades definidas en las cuentas Analytics

Actualmente, la migración de la mayoría de las cuentas ha finalizado, por lo que los webmasters de los sitios que utilizan analytics deben proceder a sustituir el antiguo código de seguimiento basado en ga.js por el nuevo código basado en analytics.js

Ventajas de Universal Analytics frente a Classic Analytics

Las nuevas funcionalidades que aporta Universal Analytics están recogidas en el documento About Universal Analytics en el sitio web de soporte de Google:

  • Como principal novedad, con Universal Analytics es posible añadir un “User ID” a la información que recoge analytics para cada acceso que se realiza, de manera que es posible realizar un seguimiento de los accesos realizados por un mismo usuario a lo largo de distintas sesiones y desde distintos dispositivos.
  • Por otra parte, es posible crear nuevas dimensiones y métricas específicas para un sitio web, además de las que ofrece Analytics por defecto.
  • Universal Analytics también incluye la generación de informes mejorados de comercio electrónico, que permiten hacer un seguimiento detallado del rendimiento de un sitio de comercio electrónico.

Ejemplo de código de seguimiento utilizando ga.js

En los casos más sencillos, el código de seguimiento ga.js que podemos encontrar en una página es de la forma:

<script type="text/javascript">
//<![CDATA[
var _gaq=_gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXX-X']);
_gaq.push(['_trackPageview']);
(function(){var ga=document.createElement('script');
    ga.src='http://www.google-analytics.com/ga.js';
    ga.setAttribute('async', 'true');
    document.documentElement.firstChild.appendChild(ga);
})();
//]]>
</script>

Pero habitualmente, el webmaster ha modificado este código base, para incorporar criterios de seguimiento específicos. Por ejemplo:

<script type="text/javascript">
//<![CDATA[
var _gaq=_gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXX-X']);
try {
  var w=window,d=document,e=d.documentElement,g=d.getElementsByTagName('body')[0],
  x=w.innerWidth||e.clientWidth||g.clientWidth,
  y=w.innerHeight||e.clientHeight||g.clientHeight;
  _gaq.push(['_setCustomVar', 2, 'viewport', x+'x'+y, 2]);
}
catch(e) {}
_gaq.push(['_setDomainName', 'ejemplo.com']);
_gaq.push(['_trackPageview']);
_gaq.push(['_trackPageLoadTime']);
(function(){var ga=document.createElement('script');
    ga.src='http://www.google-analytics.com/ga.js';
    ga.setAttribute('async', 'true');
    document.documentElement.firstChild.appendChild(ga);
})();
//]]>
</script>

Comparando con el ejemplo anterior, podemos ver que en este ejemplo:

  • Se ha añadido al código base una variable “viewport” mediante la llamada a “_setCustomVar”.
  • También se ha establecido explícitamente el nombre del dominio que se utiliza para la generación de cookies de seguimiento, con la llamada a “_setDomainName”.
  • Por último, se ha incluido una llamada a “_trackPageLoadTime” para poder hacer un seguimiento del tiempo de carga de las páginas.

Ejemplo de código de seguimiento utilizando analytics.js

Al crear una nueva propiedad bajo una cuenta de Google Analytics, obtenemos el código base de seguimiento que debemos incorporar a las páginas del sitio:

<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-XXXXXX-X', 'auto');
  ga('send', 'pageview');

</script>

Al igual que ocurre en el caso del antiguo código de seguimiento, el webmaster deberá modificar este código base, para añadir funcionalidad de seguimiento específica del sitio.

En los siguientes apartados comentaremos algunos de los cambios más habituales.

Seguimiento conjunto de un dominio y sus subdominios

A menudo, un sitio web consta de un sitio principal y varios subdominios. Por ejemplo, www.ejemplo.com, madrid.ejemplo.com, barcelona.ejemplo.com y londres.ejemplo.com.

El webmaster puede estar interesado en que los accesos que realizan los usuarios a cualquiera de estos sitios sean contabilizados indistintamente como pertenecientes a una misma sesión, aunque pasen de un subdominio a otro durante su navegación por el sitio.

En el antiguo código de seguimiento, esto debía indicarse mediante una llamada a “_setDomainName”, precediendo a la llamada a “_trackPageView”:

_gaq.push(['_setDomainName', 'ejemplo.com']);

Al migrar al nuevo código, podemos indicar el argumento ‘auto’ en la llamada a ‘create’:

ga('create', 'UA-XXXXXX-X', 'auto');

De este modo ya no es necesario hacer nada especial para realizar el seguimiento conjunto de dominios y subdominios, porque el nombre de dominio que se seleccionará es el del dominio de más alto nivel posible (Se puede consultar una explicación más detallada en la página “Automatic Cookie Configuration” de la documentación de Google para desarrolladores de Analytics).

Seguimiento conjunto de distintos dominios de primer nivel

Un caso algo menos habitual es el de un sitio web que consta de varios dominios de primer nivel. Por ejemplo, www.ejemplo.com, www.ejemplo.es y www.ejemplo.co.uk

Si el webmaster quiere hacer un seguimiento conjunto de los accesos realizados por un mismo usuario durante una misma sesión a páginas de los distintos dominios:

En primer lugar, debe añadir  a la “lista de exclusiones de referencias” los dominios que se quiere tratar conjuntamente . La manera de hacer esto desde el interfaz de administración de Analytics se puede consultar la página Referral Exclusions en el sitio de soporte de Google.

Adicionalmente, debe modificar el código de seguimiento para indicar explícitamente los dominios que deben ser tratados como uno sólo:

ga('create', 'UA-XXXXXX-X', 'auto', { 'allowLinker': true });

// Cargar el plugin linker
ga('require', 'linker');

// Definir los dominios equivalentes en autoLink.
ga('linker:autoLink', ['ejemplo.com', 'ejemplo.es','ejemplo.co.uk']);

En este caso,  en la llamada a ‘create’ se añade un tercer argumento para habilitar la ejecución del plugin linker. A continuación, se añade al código base de analytics la carga del plugin ‘linker’. Por último, en la llamada a ‘autoLink’ se especifican los dominios que deben ser tratados como equivalentes.

(Para más información, ver “Cross Domain Auto Linking” en la documentación de Google para desarrolladores)

Seguimiento del tiempo de carga de las páginas

En Universal Analytics, el seguimiento del tiempo de carga de las páginas se hace por defecto, sin necesidad de hacer una llamada a “_trackPageLoadTime”.

Por defecto, el seguimiento del tiempo de carga se realiza sobre una muestra de un uno por ciento de las páginas. En un sitio web con poco tráfico, puede interesar aumentar este porcentaje para obtener una estadística más significativa. Por ejemplo, para establecer un porcentaje de un 50%, añadimos un parámetro adicional en la llamada a ‘create’:

ga('create', 'UA-XXXXXX-X', {'siteSpeedSampleRate': 50});

 

Migración de Custom Variables a Custom Dimensions

En ga.js, el webmaster podía definir variables específicas para el sitio web. En el ejemplo de código de seguimiento que presentamos más arriba, podemos ver que se ha definido una variable “viewport” para hacer seguimiento de las distintas resoluciones de pantalla utilizadas por los usuarios que visitan el sitio.

En analytics.js, la funcionalidad de “Custom Variables” ha sido sustituida por la de “Custom Dimensions” y “Custom Metrics”.

La implementación de una Custom Dimension se hace en dos fases:

Por una parte, en el frontend de administración de Analytics se crea la Custom Dimension.

Después, se modifica el código de seguimiento en las páginas del sitio para hacer uso de la misma.

Creación de una Custom Dimension

Habiendo hecho login en Analytics, hacemos click en Admin, y seleccionamos la cuenta y la propiedad a la que vamos a añadir la Custom Dimension.

En la columna “Property”, hacemos click en “Custom Definitions” -> “Custom Dimensions” -> “New Custom Dimension”, y le damos un nombre.

A continuación seleccionamos un nivel de visibilidad (“Scope”). Los posibles valores del Scope son  “Hit”, “Session”, “User”, o “Product”.

Estos tres primeros niveles de visibilidad se corresponden con los tres niveles que existían en la definición de una “Custom Variable” en ga.js, mientras que el nivel “Product” es un nuevo nivel de Universal Analytics.

Por último, hacemos click en el checkbox “Active”, y hacemos click en “Create” para finalizar la creación de la custom dimension.

Creación de una Custom Metrics

El procedimiento para la creación de una métrica específica es muy similar al seguido para crear una dimensión específica.

En el caso de una métrica específica, hay que especificar también el tipo de dato que se va a recoger: Integer, Currency o Time.

Establecer un valor de una Custom Dimension en el código de seguimiento

Para asignar un valor a una Custom Dimension se hace una llamada a ‘set’. Por ejemplo:

ga('set', 'dimension1', 'Paid');

En el ejemplo de antiguo código que hemos presentado más arriba, veíamos la definición de una custom variable “viewport”:

try {
  var w=window,d=document,e=d.documentElement,g=d.getElementsByTagName('body')[0],
  x=w.innerWidth||e.clientWidth||g.clientWidth,
  y=w.innerHeight||e.clientHeight||g.clientHeight;
  _gaq.push(['_setCustomVar', 2, 'viewport', x+'x'+y, 2]);
}
catch(e) {}

Para convertir este ejemplo al nuevo código, deberemos definir en el frontend de administración de analytics la dimensión “viewport” con una visibilidad a nivel de sesión (correspondiente al cuarto argumento con valor ‘2’ en la llamada a setCustomVar).

Después, procedemos a reemplazar la llamada a ‘_setCustomVar’ por una llamada a ‘set’:

try {
  var w=window,d=document,e=d.documentElement,g=d.getElementsByTagName('body')[0],
  x=w.innerWidth||e.clientWidth||g.clientWidth,
  y=w.innerHeight||e.clientHeight||g.clientHeight;
  ga('set', 'viewport', x+'x'+y );
}
catch(e) {}

Referencias

 

 Publicado por en 11:32 am

 Deja un comentario

(requerido)

(requerido)