Actualidad

Seguimiento de eventos en páginas virtuales con Google Analytics

Planteamos el siguiente escenario: tomamos como ejemplo un site cuya vista «A» tiene la url «/a», y bajo esa misma url dispone de otra vista «B». En la vista «A» hay un botón que queremos rastrear como evento… y en la vista «B» hay otro botón que queremos rastrear.

Para rastrearlo, haremos uso del etiquetado de páginas virtuales:

Cuando un usuario visualiza la vista «A»(en la url «/a»), lo rastrearemos usando:

_gaq.push([‘_trackPageview’, »]);

Cuando un usuario hace click en el botón de la vista «A»:

_gaq.push([‘_trackEvent’, ‘A’, ‘evento-A’]);

Ahora visualiza la vista «B». Como no cambia la url, para rastrearla haremos uso del etiquetado virtual:

_gaq.push([‘_trackPageview’, ‘/b’]);

Del mismo modo, cuando el usuario haga click sobre el botón de la vista «B»:

_gaq.push([‘_trackEvent’, ‘B’, ‘evento-B’]);

Hasta aquí, todo correcto.

La sorpresa nos la llevaremos al ir al informe de Eventos de Google Analytics: la página sobre la que se ha disparado el evento «B», curiosamente, es la página «/a». Esto se explica porque Google Analytics asocia la url actual del navegador al evento lanzado. Podemos comprobarlo si analizamos la request del __utm.gif correspondiente al evento del botón de la vista «B» y nos fijamos en el parámetro utmp. Su valor será /a.

Pongamos por caso que la página “B” la quisiésemos recoger en un perfil exclusivo para ese tipo de páginas, en el que quisiésemos recoger los eventos asociados a ese tipo de vistas. Al configurar un filtro para incluir sólo las urls “/b” (o bien excluir todas las demás), observaremos que no estamos recogiendo ningún evento. El motivo es que el filtro de inclusión o exclusión por uri, utiliza como valor el parámetro utmp.

¿Cómo modificamos el valor del parámetro utmp? Para asociar a los eventos de una vista el nombre virtual que le demos a dicha vista, deberemos enviar un “_set” de “page” antes de enviar el “_trackPageview” virtual. Ejemplo:

_gaq.push([‘set’,’page’,’/b’]) _gaq.push([‘_trackPageview’,’/b’]);

De esta forma, si observamos el valor del parámetro después de enviar un evento en la página “B”, obtendremos lo siguiente:

utmp=%2Fb

Si revisamos ahora los informes de GA, donde antes no recogíamos ningún evento, ¡voila! ¡Ahora ya sí tenemos eventos!