Google Analytics lanzó un nuevo método llamado ‘_set page’ que lleva ya varios meses funcionando, el problema es que no existe documentación alguna (ni por parte del propio Google). Así que he decidido crear este tutorial para que veáis sus ventajas. Una de ellas es que se trata de la solución (o una de ellas) a la perdida total de transacciones en Analytics en algunos perfiles (con filtros) a partir de septiembre del año pasado.
Antes de nada aviso que este artículo es bastante técnico! Si haces el seguimiento de ecommerce en Google Analytics, trabajas con páginas virtuales y con filtros que actúen sobre estas, este post es para ti.
Antecedentes
Hasta septiembre del año pasado, los hits del ecommerce de Analytics no estaban asociados a una dimensión de página o hostname, así que cualquier filtro basado en estas dimensiones no afectaban a la recogida a de transacciones. Ahora cuando se lanza una transacción, los hits de ecommerce incluyen el título de la página (utmdt), el hostname (utmhn), la URI (utmp) y el término de búsqueda interna. Con lo cual cualquier filtro que trabaje con estas dimensiones eliminaría las transacciones del ecommerce.
Es decir, este parámetro utmp de la transacción es propio del tracktrans y recoge la URL REAL de la página y se ve afectado por los filtros, además no se puede modificar (o casi como se verá mas adelante) como hacemos normalmente con las páginas para añadir la parte lógica o virtual.
Pongamos un ejemplo de funcionamiento:
Imaginemos que queremos crear un perfil idiomático, es decir, un perfil que recoja datos del consumo de contenido en inglés siendo nuestras direcciones así: uri?virtualpage=/id_en/
- Si hacemos un filtro include por url lógica (incluye todo lo que sea “/id_en”), nos cargaremos el ecommerce ya que esta URL no tiene parte lógica.
- Si hacemos un filtro exclude por url lógica (excluye todo lo que no sea “/id_en) se pasan todas las urls física sin parte lógica y por tanto aparecerá todo el ecommerce independientemente del idioma o la versión idiomática del sitio donde se hace la transacción.
El método _set
Así que una solución a esto la encontramos con el nuevo método ‘_set’, que lo que hace es modificar la manera en la que se registrará una página a partir de ese momento, independientemente de si es un trackpageview, un trackevent o un tracktrans. Sería como decir, “a partir de ahora esa página se llama X”.
Su funcionamiento es el siguiente:
_gaq.push(['_set','page','/nombre-pagina']);
De esta forma que quedaría el código de Google Analytics de una transacción por ejemplo:
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXX-X']);
_gaq.push(['_set','page','/apples/page.html']);
_gaq.push(['_trackPageview']);
_gaq.push(['_addTrans', 'apples-1234', '', '12']);
_gaq.push(['_addItem', 'apples-1234', 'SKU-ABCD', '', '', '12', '1']);
_gaq.push(['_trackTrans']);
Además si queremos también podemos modificar el titulo de esa página, no solamente la uri de la siguiente manera:
_gaq.push(['_set','title','Nombre título']);
Con esto ya se puede tener un nombre lógico asociado a un ecommerce 😀
Y lo mismo para los eventos. Por ejemplo, imagina que estás lanzando unos eventos sobre unas páginas virtuales de un proceso de compra que mantiene la misma url física en todos los pasos. Lo que ocurre es que no vas a poder ver en qué página exactamente se ha lanzado ese evento. Entonces en ese caso también vendría bien aplicar el método _set, de este modo el evento quedará asociado de forma automática a la página que decidas.