Enviando una copia local de los hits de Universal Analytics

En muchas ocasiones por mucho que intentemos debuggear nuestras implementaciones, estas pueden fallar en algunas situaciones pues la cantidad de casuísticas que se pueden generar del lado del cliente pueden ser infinitas.

Con urchin.js y ga.js podríamos decirle a Google Analytics que enviase una copia de los hits de forma local,  lo cual nos podía ayudar a ver todos los hits que se estaban envíando para poder ver si por algún motivo en una transacción no se estaban envíando de forma correcta todos los valores necesarios, o porqué en algúnas situaciones los datos no se están registrando como nosotros esperamos.

Para hacer esto vamos a utilizar las tareas ( “tasks” ) del API de Universal Analytics.

Cada vez que se utiliza el comando “send” , analytics.js ejecuta una serie de tareas para validar, construir y enviar el hit en base a protocolo de medicion ( “measurement protocol” ).

De acuerdo con la información publicada por Google, las siguiente table muestra las tareas actuales que ejecuta Universal Analytics    a medida que se va cargando . Estas tareas se ejecutan en el orden en el que se muestran en la tabla.

Nombre TareaDescripción
previewTaskAborta el hit, si tan solo se está renderizando la página para el ‘Top Sites’ de Safari.
checkProtocolTaskAborta el hit si el protocolo no es http(s).
validationTaskAborta el hit si los campos requeridos no son válidos .
checkStorageTaskAborts el hit si analytics.js está fijado para utilizar cookies y estás no están disponibles en el navegador del usuario.
historyImportTaskImporta la information de las cookies __utm* para preservar el historial del usuario durante la migración a Unviersal Analytics.
samplerTaskEstá función se encargar de filtrar los hits de forma aleatoría en base al valor de “sampleRate“.
buildHitTaskConstruye el its y lo almacena en el campo “hitPayload“.
sendHitTaskEnvía el hit, con el payload almacenado en el campo “hitPayload“.
timingTaskGenera el hit del SiteSpeed en base al sample rate fijado en “siteSpeedSampleRate“.

Por lo tanto, en nuestro caso, vamos a sobreescribir la tarea “sendHitTask” para enviar una copia local de los hits,  y utilizaremos el valor del campo “hitPayload” para contruir nuestro hit local.

A continuación, os muestro un pequeño snippet, donde podréis ver como realizar esto icon smile Enviando una copia local de los hits de Universal Analytics google analytics analitica web

<script>// <![CDATA[
ga('create', 'UA-XXXXXXX-YY', 'thyngster.com');
ga(function(tracker) { 
  // Vamos a guardar la referencia a la funcion original que envía los hits 
  var originalSendHitTask = tracker.get('sendHitTask'); 
  // Modificamos la funcion sendHitTask para 
  // enviar una copia local después de haber envíado 
  // el hit a los servidores de Google Analytics 
  tracker.set('sendHitTask', function(model) { 
  // Vamos a recuperar los valores del payload, 
  // para después añadirlos a nuestro hit local. 
  var payLoad =model.get('hitPayload'); 
  // Aquí envíamos le hit original generado por analytics.js 
  originalSendHitTask(model); 
  // Vamos a enviar una copia del hit a nuestro propio servidor 
  var i=new Image(1,1); 
  i.src="/__utm.gif"+"?"+payLoad; 
  i.onload=function() { return; } 
  });
});
ga('send', 'pageview');
// ]]></script>

Una vez que pongáis este código, esto es lo que sucederá al cargar vuestras páginas:

local hits universal analytics Enviando una copia local de los hits de Universal Analytics google analytics analitica web

De esta forma podremos tener una copia local de los hits que se envien desde los navegadores de nuestros usuarios, bien para intentar buscar algún fallo en nuestras implementaciones,  o si queremos saber si realmente Google Analytics procesa correctamente nuestras visitas icon wink Enviando una copia local de los hits de Universal Analytics google analytics analitica web

Nueva herramienta para probar tus filtros de Google Analytics

Todos sabemos el peligro de jugar con los filtros de los perfiles ( ahora llamados vistas ) en Google Analytics, la posibilidad de que los hagamos mal y terminemos con datos con el formato que no queremos o con datos excluidos de forma incorrecta suele ser bastante alta. Además si nos equivocamos no hay manera de echar marcha atrás, los datos de las las horas y o incluso días en los que los filtros hayan estado configurados de manera incorrecta no serán recuperables.

Para paliar en la manera de lo posible este problema acabamos de publicar en Analytics Debugger ( Herramienta online para depurar implementaciones de Analítica Web ) una nueva funcionalidad que nos deja construir nuestros filtros viendo los resultados en tiempo real.  Es decir podremos ver que datos se estarían capturando según las expresiones regulares que estemos utilizando así como podremos simular como quedarían los campos que estemos sobreescribendo.

Podéis ver el siguiente video donde se muestra cómo fácilmente podemos probar nuestros filtros y como ver en tiempo real el resultado que quedaría registrado en Google Analytics.

 

Con este paso Analytics Debugger deja de ser tan solo una herramienta de depurado y añade su primera herramienta que podrán utilizar los analistas para trabajar.  Como hasta ahora esta utilidad es gratuita y podrá ser utilizada por cualquier usuario icon smile Nueva herramienta para probar tus filtros de Google Analytics google analytics analitica web

Introducción al DataLayer de Google Tag Manager

Aunque parezca mentira hace ya casi año y medio que Google hizo público su herramienta de Tag Management. Durante todo este tiempo las actualizaciones de la herramienta ha sido continua aunque por desgracia no haya ningún changelog que reflejen los contínuos añadidos que va recibiendo la herramienta.

Por lo que voy leyendo por ahí, para la gran mayoría de la gente la herramienta no es más que la manera  de moda de configurar Google Analytics ( añado el código de GTM a mi web y añado un tag de pegeview ), sin aprovechar la herramienta lo más mínimo.

Por ello vamos a hablar del dataLayer , que es como su propio nombre indica una “capa” de datos mediante la cual vamos a pasar los datos a Google Tag Manager ( recordar que todo esto será utilizable también con cualquier otra herramienta de Tag Management ) , para poder interactuar en base a esos datos.

Así pues el dataLayer no es más que un objeto que contendrá la información ( formato JSON ‘clave’:’valor’ ) que queramos tener accesible desde el Tag Manager.

Para ellos deberemos inicializarlo antes del tag de Google Tag Manager ( si bien el propio gtm lo inicializará de forma implícita ) de la siguiente manera:

<script>
  var dataLayer = datalayer || [];
</script>

Con esto inicializaremos nuestro objecto tan solo si no lo estaba ya anteriormente, es decir si ya tuviese algún valor en el momento de ejecutarse este código se mantendrían los valores que tenga.

Por poner un ejemplo ilustrativo de esto pongamos un post de un blog, por ejemplo este mismo post

<script>
dataLayer.push({
    'categoria' : 'Google Analytics',
    'titulo' : 'Introducción al dataLayer de Google Tag Manager',
    'autor' : 'David Vallejo',
    'fecha' : '2014-02-08',
    'lenguaje' : 'es',
    'logeado': true,
    'event' : 'pageview'
 });
</script>

Bien ya tenemos toda la info de la página que se está visualizando, ahora lo que tenemos que hacer es crear macros para poder acceder a los datos disponibles en el dataLayer desde nuestros tags.

Por lo tanto crearíamos una macro por cada uno de datos que tenemos de la siguiente manera:

datalayer macros Introducción al DataLayer de Google Tag Manager google analytics

Continue reading

Aprende a utilizar el hitCallBack en Universal Analytics

Ya desde la versión anterior de Google Analytics ( ga.js ), existe una función que si no está muy documentada si que se podría utilizar, estamos hablando del método hitCallback .

Esta función lo que nos permite ( tal y como claramente indica el nombre de la función es realizar una acción solo y tan solo después de que se haya enviado un hit de forma correcta a los servidores de Google Analytics.

Desde que se publicó Universal Analytics, esta función es todavía más flexible puesto que nos permite de forma sencilla aplicar está función a cualquier tipo de hit de forma independiente. Seguramente en algúna ocasión habremos leído posts o visto plugins para hacer seguimiento de enlaces salientes ( eventos onClick o onMousedown ), o cuando se envíe un formulario ( evento onSubmit ) , pero a la hora de implementarlos también se nos habrá dado la situación de que tal vez el usuario llegué a la página de destino antes de que se lleguen a enviar los datos de forma correcta a Google Analytics, perdiendo con ellos estos datos.

Aquí es donde entra en escena la función hitCallback, puesto que nos va a permitir saber cuando se han terminado realmente de enviar los hits y con ello una manera de poder asegurarnos de que siempre se envíen los datos.

El funcionamiento sería el siguiente:

  1. Paramos la acción por defecto ( bien el click del usuario, o bien por ejemplo la acción de enviar el formulario ).
  2. Enviamos los datos a Universal Analytics.
  3. Utilizamos el hitCallback para una vez que estamos seguros los datos se han enviados continuar con la acción que empezó el usuario.

Como ejemplo os pongo un pequeño fragmento de código que se encargaría de todo esto, y que os servirá de guía para cualquier otra implementación más avanzada que queráis realizar ( comprobar si el enlace es saliente, etc, etc ). Más abajo comentaremos el script línea por línea:

<script>
function doLink(event,href){
event.preventDefault();
ga('send', 'pageview', {
'page': location.pathname,
'hitCallback': function() {
location.href = href;
}
});
}
</script>
<a href="http://www.google.es/" onClick="doLink(event,this.href);">TEST</a>

Vamos a comentar paso a paso lo que sucede:

<a href="http://www.google.es/" onClick="doLink(event,this.href);">TEST</a>

Aquí tan solo tenemos un enlace ( href ), al cual le estamos diciendo que cualquier un  usuario pinche en el enlace ( evento onclick ), lance la función doLink(), con los parémetros del evento como primer parámetro y en enlace en el cual ha hecho click el usuario. Entonce veamos que pasa después.

event.preventDefault();

event.preventDefault(). Lo que va a hacer es detener la acción por defecto que realizaría el nevagador en el evento en cuestión, en este caso el evento sería el click y lo que haría es llevarnos al enlace que tengamos. Pues ahora mismo esto no sucederá y no redigirá al usuario, no nos preocupemos esto lo forzaremos  depués para que el usuario termine yendo a donde marca el enlace icon smile Aprende a utilizar el hitCallBack en Universal Analytics google analytics analitica web

ga('send', 'pageview', {
'page': location.pathname,
'hitCallback': function() {
location.href = href;
}
});

Aquí tenemos lo que sería el _trackPageview de toda la vida en formato Universal Analytics. Al estar pasándole unos parámetros deberemos pasarle obligatoriamente el parámetro ‘page’ , o no nos recogerá bien los datos, por ello le pasamos la URI actual del usuario ( location.href ), o bien podríamos incluso personalizarla.

Y seguido le estamos pasando el hitCallback, ¿qué quiere decir esto? , le estamos diciendo a Universal Analytics, mira cuando hayas enviado el hit de la página vista, haz esto. Por lo tanto una vez los datos se hayan enviado vamos a redigir al usuario a su página de destino.

Pues es tan sencillo como esto, de esta forma, el usuario no se redigirá al enlace hasta que los datos e hayan enviado correctamente. Por supuesto esto es extrapolable al enviar un evento, social hit, hit de ecommerce, o cualquier otro tipo de hit disponible en Universal Analytics, así como a cualquier otro evento de JavaScript ( Form submits, etc ).

A partir de ahora podremos estar seguros que los datos se van a enviar cuando el usuario realice una acción concreta.

 

Cómo hacer tracking de la actividad de comentarios en Disqus con Universal Analytics

Actualmente Disqus goza de una gran aceptación en muchísimas webs, por lo que resulta realmente interesante el hecho de poder enviar eventos a nuestro perfil de Google Analytics para por ejemplo poder medir una micro-conversión cada vez que alguen usuario de nuestra web nos deja un comentario en nuestro Blog.

disqus Cómo hacer tracking de la actividad de comentarios en Disqus con Universal Analytics google analytics analitica web

Disqus es un sistema de comentarios externo, que se puede añadir por ejemplo a nuestro WordPress fácilmente mediante un simple plugin, y permite a los usuarios de nuestra web realizar comentarios logeando a través de Facebook o de Twitter.

Actualmente Disqus proporciona un sistema de callbacks bastante limitado, este es el listado de callbacks disponible a día de hoy:

                callbacks: {
                    preData: [],
                    preInit: [],
                    onInit: [],
                    afterRender: [],
                    onReady: [],
                    onNewComment: [],
                    preReset: [],
                    onPaginate: [],
                    onIdentify: []
                }

Pero nosotros vamos a utilizar únicamente, los de nuevos comentarios, paginación, identificación. Para lo cual tendramos que añadir el siguiente código a vuestras páginas.

window.onload = function(){
    if(window.DISQUS){
        DISQUS.reset({
              reload: true,
              config: function () {
              this.callbacks.onNewComment = [function(){ ga('send', 'event', 'Disqus', 'New Comment', window.location.href); }];
              this.callbacks.onPaginate = [function(e){ ga('send', 'event', 'Disqus', 'Pagination', window.location.href); }];
              this.callbacks.onPaginate = [function(e){ ga('send', 'event', 'Disqus', 'User Logged', window.location.href); }];
              }
         });
    }
};

Os sugiero que copieis el código directamente desde Github para evitar problemas, podéis acceder al código fuente en la siguiente dirección:

https://github.com/thyngster/universalanalytics

La configuración de callbacks se ha de realizar antes de que este se haya cargado, por lo que de forma habitual, deberiamos añadir la configuración antes del código principal de Disqus, sin embargo lo que vamos a hacer es utilizar la función reset para reiniciar Disqus con los nuevos valores. Esto lo hacemos tan solo cuando la página esté totalmenta cargada para ello utilizamos el evento window.onload

El código actualmente lanza los eventos con el formato de Universal Analytics, pero se puede utilizar sin ningún problema un push al objeto _gaq como se ha hecho siempre para lanzar eventos a Google Analytics

 

Novedades en la herramienta de analítica web AngelFish Software

No es la primera vez que hablamos de esta herramienta de Analítica Web in-house. Ya sabemos que es

Una de las opciones más demandadas desde que la primera versión vió la luz, ha sido la disponibilidad de una versión para el sistema operativo Windows. Pues bien el mes pasado sacaron la primera versión para esta plataforma, junto con otras muchas más novedades que vamos a comentar a continuación.

  • Versión para sistemas operativos Windows
  • Read logs on UNC paths
  • Google Analytics Upload
  • Default Filters: Include Known Browsers and Exclude SharePoint Content
  • Nuevo asistente para la creación de perfiles
  • Nuevo Report: Stolen Bandwidth.
  • Nuevo Report: Leeching Domains: Averigua que dominios están haciendo hot-linking a tu contenido.
  • Nuevo Reporte: Descargas
  • Nuevo Reporte: Usuarios
  • Opción de poder aplicar filtros directamente a los logs

Y en los últimos meses han añadido los siguientes nuevos métodos de trackeo.

  • Pass-through Authentication
  • Session ID Tracking
  • Urchin/GA Tracking

También se han añadido un montón de mejoras tanto en script de tracking como en la interfaz como por ejemplo.

  • Indicador del métido de tracking utilizado
  • Mejorado el detelle de información en el archivo de errores
  • Posibilidad de excluir hits que terminen en /
  • Nuevo formato de logs: NCSA Combined + Cookie
  • Nuevo navegador añadido: Chrome Mobile
  • angelfish.js: Detección de dispositivos móviles
  • Utilidad para resetar el password de administrador
  • Incrementada la eficacia de procesado de logs.
  • Mejorada la velocidad de la interfaz.

Y muchas más que podréis ver en el changelog.

Es una buena señal de cómo va avanzando el desarrollo de la herramienta, que recordemos es la única dentro de su categoría después de que Google descontinuara Urchin hace ya más de 1 año. Una opción muy a tener en cuenta para instituciones donde la privacidad de los datos de sus usuarios sea un punto ineludible, ya que recordemos que al tratarse de una herramienta que se instala en nuestros servidor, la información no terminará en manos de terceros, así como ofrece la posibilidad de re-procesar nuestros datos si por algún motivo nuestra información se hubiese visto alterada ( un mal filtro, etc ).

No cabe olvidar la flexibilidad que ofrece, al poder al través de filtros ( tanto a nivel de perfil como de log ), modificar los datos de los que disponemos, y la abierta posibilidad de formatos de tracking si por algún motivo el utilizar el javascript no fuera posible.

Sin duda, si eres usuario de Urchin Software, es la opción más recomendable que existe actualmente, ya que incluso te permite la migración de tus datos actuales. Contando con el soporte de una empresa detrás de la herramienta que te permite estar seguro que si tienes algún problema tendrás un soporte al que poder acudir para solucionar tus problemas y asegurarte que la herramienta seguirá aplicando actualizaciones.

Podéis descargar y probar la herramienta durante un periodo trial, accediendo a la siguiente dirección: http://analytics.angelfishstats.com/trial/ .

Información: http://analytics.angelfishstats.com/features/

 

 

Analytics Debugger recibe su primera “gran” actualización

Hace un tiempo comentaba en este mismo blog que habíamos lanzado una utilidad para auditar implementaciones de analítica web , se trataba de Analytics Debugger .

La herramienta ha estado funcionando unos meses y esta semana le ha tocado su primera gran actualización. Han sido muchos meses, días y horas, pero ha merecido la pena y por ello estamos contentos, puesto que se trata de un gran paso hacia adelante. La herramienta sigue siendo gratuíta, y para realizar la auditoría de tus páginas sigues sin necesitas nada más que tu navegador consiguiendo toda la información necesaria que de otra manera te llevaría mucho tiempo conseguir y además tenían que invertir tiempo en instalar aplicaciones o plugins externos.

Han sido muchísimos cambios, en el core de la herramienta, cambios visuales, optimizaciones, nuevas features. Aquí os dejamos el listado de los cambios realizados.

  • Nuevo site con toda la información de la herramienta www.analytics-debugger.com
    ad new home Analytics Debugger recibe su primera gran actualización urchin piwik open web analytics google analytics countly angelfish stats analitica web
  • Rediseño del interfaz de la herramienta, haciéndola más simple y sencillo de utilizar.
  • Se ha reescrito el motor de depurado, ahora soporta todos los métodos que se pueden utilizar en Google Analytics así como detacta cualquier tipo de hit enviado.
  • Simulación de tag, si utilizas Google Analytics ó Universal Analytics te muestra un tag simulado para que sepas con exactitud como se está ejecutando analytics en tu página.
    ad sim Analytics Debugger recibe su primera gran actualización urchin piwik open web analytics google analytics countly angelfish stats analitica web
  • Se ha añadido soporte de depurado avanzado para Universal Analytics.
  • Se ha añadido un módulo nuevo para poder monitorizar en tiempo real los eventos que se generan en tu página web, por ejemplo al hacer click en un enlace, cuando se hace scroll en la página o cualquiera que sea la implementación que tengas realizada en tu web.
  • A partir de ahora puedes añadir tu web, y Analytics Debugger te avisará diariamente si detecta algún cambio en la configuración de Google Analytics en tu página web,
  • Antes se mostraba tan sólo el último hit envíado por cada herramienta detectada, desde ahora se pueden ver los datos de todos los hits enviados por las herramientas soportadas actualmente.
    ad hits debug Analytics Debugger recibe su primera gran actualización urchin piwik open web analytics google analytics countly angelfish stats analitica web
  • Mejorado el soporte de errores, cualquier error que tenga tu tag se mostrará, por ejemplo si utilizas llamadas a funciones que ya no son válidas, si utilizas una cadena cuando deberías utilizar un número entero, etc.
    ad errors Analytics Debugger recibe su primera gran actualización urchin piwik open web analytics google analytics countly angelfish stats analitica web
  • Ahora la herramienta está bajo SSL para asegurar la privacidad de tus datos.

Lo mejor de todo es que estamos encantados de anunciaros es que no vamos a parar aquí, en las próximas semanas habrá muchas más novedades, muchas más herramientas detectadas y quien sabe si alguna otra sorpresa más icon smile Analytics Debugger recibe su primera gran actualización urchin piwik open web analytics google analytics countly angelfish stats analitica web

Descubre todas las novedades en Piwik 1.12

Desde hace unas semanas la nueva versión de Piwik 1.12 estaba en beta y acaba de salir de ese estado para ser una versión estable. Esta es la última versión antes de cambiar de rama a la 2.0

La verdad es que últimamente no hace más que sorprenderme por la rápidez con la que se está acercando a otras herramientas de pago o incluso líderes en el sector.

Vamos a hacer un repaso por las principales novedades que incluye esta nueva versión:

Editor de Segmentos Avanzados

Una de las features más esperadas, a partir de ahora podremos segmentar nuestros datos desde la interfaz sin necesidad de recurrir al API para realizar esta acción.
piwik adv segments Descubre todas las novedades en Piwik 1.12 piwik analitica web

Widget de visitas en tiempo real y Mejoras en el widget de SEO

Se ha añadido un widget nuevo para que lo agregemos a nuestro dashboard que nos dirá los usuarios y acciones en nuestra web en tiempo real. Así como se ha mejorado widget de SEO, que ahora nos da dos métricas desde Majestic SEO, la cantidad de backlinks a nuestro sitio, así como la cantidad de dominios que nos enlazan.

piwik real time seo Descubre todas las novedades en Piwik 1.12 piwik analitica web

Detección de dispositivos móviles

Con la colaboración de clearcode.cc a partir de ahora Piwik detectará los dispositivos móviles. Esta función estará disponible por defecto a partir de la version 2.0, pero la podemos activar si queremos de forma manual desde el menú de plugins.

piwik devices Descubre todas las novedades en Piwik 1.12 piwik analitica web

Detección de dispositivos en Piwik

 

Actualización de Proveedores

Se ha aprovechado para actualizar el listado de proveedores.

piwik providers Descubre todas las novedades en Piwik 1.12 piwik analitica web

Customize the background/text/axis color of graphs.

También podremos a partir de ahora personalizar el color del fondo, del texto y de los axis de los gráficos.

piwik graphs colors Descubre todas las novedades en Piwik 1.12 piwik analitica web

 
Desde esta versión podremos enviar junto a nuestras peticiones los parémetros de latitud y longitud de la siguiente manera:

_paq.push(['appendToTrackingUrl', 'lat=X&long=Y']);

Incluye además muchísimas mejoras en cuanto al API se refiere. Podéis ver todos los cambios en la siguiente dirección:
http://piwik.org/blog/2013/05/last-piwik-1-x-release-v1-12-new-features-api-improvements-screenshots/

 

Enviando eventos o páginas a todos los trackers de Google Analytics activos en una página

A veres se puede dar el caso de que estemos utilizando una medición dual ( o incluso triple ) en nuestros sitios webs, o lo que es lo mismo envíando los datos a más de una cuenta de Google Analytics al mismo tiempo.

Por lo que nos interesa por ejemplo si estamos haciendo un seguimiento de enlaces salientes en nuestra web, estamos midiendo algunos elementos en Ajax o tal vez estemos modificando el bounce rate lanzando un evento de forma automática, que este evento se lance en todos los trackers que tengamos configurados en nuestro sitio web.

Se podría hacer haciendo un _trackEvent para cada nombre de forma manual que tengamos configurado,  pero si cambia por lo que sea puede haber algún problema. Por ello el API del JavaScript de Google Analytics nos ofrece algunos métodos de los que podemos hacer uso para hacerlo todo de forma automática sin tener que andar introduciendo los nombres de los trackers a mano.

Imaginemos que tenemos una implementación del tipo:

<script type="text/javascript">

var _gaq = _gaq || [];
_gaq.push(['first._setAccount', 'UA-XXXXX-1']);
_gaq.push(['_trackPageview']);
_gaq.push(['second._setAccount', 'UA-XXXXX-2']);
_gaq.push(['_trackPageview']);

(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

</script>

Y queremos enviar nuestros eventos a las 2 cuentas a la vez ( se podría crear una función para las páginas, los tracking sociales, o los tiempos de usuario si fuese necesario )

Para ello crearemos una función como la siguiente:
Continue reading

Universal Analytics – Medición entre dominios ( Cross-Domain Tracking )

Si hace un par de días comentabamos en nuestro post de migración a Universal Analytics , que estabamos pendientes de la información de cómo realizar la medición entre dominios con Universal Analytics. Por fin ya tenemos esa información disponible.

Para la realizar la medición entre dominios (o cross-domain tracking) con universal analytics, el principio sigue siendo el mismo, es decir pasar el valor de las cookies entre los dominios. En este caso tan solo hay que pasar el valor de una cookie “_ga” .

ua logo Universal Analytics   Medición entre dominios ( Cross Domain Tracking ) google analytics analitica web

Hay un cambio importante, y es que los links utilizados para pasar los datos entre los dominios tienen una caducidad, por lo que a partir de ahora no deberíamos modificar todos los enlaces a nuestro segundo dominio al imprimir la página, por que pasados 2 minutos estos no serán válidos. Con lo cual nos toca trabajar con Event Listeners para modificar el link cuando se haga click en algún enlace o bien en cualquier otro evento que queramos.

El primer paso que debemos hacer es fijar el allowLinker a true, tal y como ya había que hacer en la versión anterior, para realizar este paso, crearemos el tracker de la siguiente manera.

ga('create', 'UA-XXXX-Y', {'allowLinker': true});

El módulo “linker” se carga de forma automática, así que ahora tan solo nos queda añadir a nuestros enlaces la información de las cookies.

Universal Analytics nos ofrece 2 formas de conseguir este dato, una es conseguir el valor del linker que tendremos que utilizar para que lo podamos añadir nosotros, o bien la función decorate que se encargará de darnos el link final que tendremos que utilizar.

Cómo saber los parámetros para en linker

Para ello tendremos que poner el siguiente código:

ga(function(tracker) {
var linker = new window.gaplugins.Linker(tracker);
var linkerParam = tracker.get('linkerParam');
});

Entonces tendremos en la variable linkerParam el valor del linker, que debería tener este formato:

_ga=1.38895075.1749825416.1359153636

Ahora tan solo tendríamos que poner ese valor en los enlaces a nuestro segundo dominio, bien por querystring (?) ó utilizando un hash (#) .

Si hemos habilitado el allowlinker en nuestro dominio de destino, este actualizará los datos de las cookies del dominio con las que le estamos enviando, consiguiendo con ello la continuidad de la visita y del usuario.

Utilizando el método Decorate

Se trata de una utilidad que nos devolverá en enlace con el valor del linker añadido al enlace que le hayamos proporcionado.

ga(function(tracker) {
  var linker = new window.gaplugins.Linker(tracker);
  var salida= linker.decorate('http://www.google.com');
});

A partir de este momento en la variable salida, tendríamos el siguiente valor:

http://www.google.com?_ga=1.38895075.1749825416.1359153636

El método decorate, acepta un segundo parámetro, y que si se lo pasamos como true, nos devolverá nuestro enlaces pero utilizando el hash.

ga(function(tracker) {
  var linker = new window.gaplugins.Linker(tracker);
  var salida= linker.decorate('http://www.google.com',true);
});

Nos devolvería en la varible salida, lo siguiente:

http://www.google.com#_ga=1.38895075.1749825416.1359153636

Bien, pues básicamente estas son las maneras que tenemos para obtener la información que necesitamos para poder pasar los valores de nuestras cookies entre nuestros dominios.

Os propongo un pequeño snippet para JQuery, que os ayudará a etiquetar los enlaces de forma automática y cada vez que se hace click en los enlaces a nuestro segundo dominio, recordemos que se debe hacer así porqué si se hace al cargar la página y el usuario no hace click antes de 2 minutos la página de destino no aceptará los valores de la cookie

ga(function(tracker) {
// Corremos todo dentro de una llamada de Universal Analytics
// para asegurarnos que de que se ejecu si se ha cargado.

// El dominio externo, modificar segun necesidades
var externalDomain = 'thyngster.com';

// Iniciamos la utilidad del linker
var linker = new window.gaplugins.Linker(tracker);

// Monitorizamos todos los clicks de nuestro site
$('a').click(function() {
// Si el enlace incluye el dominio que hemos definido arriba
// modificamos el enlace con los parametros de las cookies
href = $(this).attr('href');
if(href.indexOf(externalDomain)>-1)
{
// Generamos nuestro enlace
var linked_url = linker.decorate($(this).attr('href'));
// Actualizamos el enlace
$(this).attr('href',linked_url);
}
});
});

Para la medición entre dominios con formularios sería básicamente lo mismo, pero deberemos cambiar la dirección a la cual apunta el formulario, basándonos por ejemplo en el evento “onSubmit”.

Y esto es todo lo que debemos saber para poder medir diferentes dominios de forma conjunta con Universal Analytics.

Si tienes alguna duda o problema, deja un comentario o contáctame por medio del formulario.

Información Oficial sobre la medición entre dominios: https://developers.google.com/analytics/devguides/collection/analyticsjs/cross-domain

Analítica Web, Conversión y otros derivados