En nuestro
anterior post, comentamos las soluciones que podrían implementarse para evitar que, al implementar el tag de ecommerce, pudieran darse transacciones duplicadas que “estropeasen” nuestras estadísticas contabilizando una misma transacción más de una vez.
Como recordarán, algunas de las formas comunes en las que se pueden generar transacciones duplicadas son:
- Al recargar la página de confirmación donde hemos instalado el tag de ecommerce.
- Al pinchar, en un link de confirmación que tuviésemos guardado en nuestros favoritos o bien hubiésemos recibido en un email.
En este post, queremos poner un ejemplo desarrollado de cómo evitar este problema, es decir transacciones duplicadas ya sea por recarga de la página o por vuelta del usuario a través de un link a la página donde hemos colocado nuestro tag de ecommerce.
Esta solución se basa en utilizar una de las Variables Personalizadas de Google Analytics para realizar el seguimiento de transacciones, por lo cual debemos tener en cuenta que:
- En caso de borrar cookies, si el usuario dispone de un link o acceso directo a la página con nuestro tag de ecommerce, la transacción volverá a realizarse.
- Al utilizar una Variables Personalizadas de Analytics, debemos tener en cuenta que sus valores aparecerán en los informes aunque en principio no aporten nada de valor.
- La Variables Personalizadas, solo almacena la última transacción realizada, por tanto si el usuario vuelve a la página de ecommerce mediante un acceso directo habiendo realizado otras compras con posterioridad, la transacción volverá a contabilizarse. Para este caso, una solución si tu sistema de ecommerce registra las transacciones en orden creciente, es preguntar si la transacción actual es mayor que la última guardada. Si es así se ejecuta el ecommerce en caso contrario no.
El problema
Imaginemos la siguiente situación:
Un usuario llega a nuestro site y realiza una compra. Al llegar a la página de confirmación el usuario recarga la página.
Si no hacemos nada para evitarlo, estaremos mandando la misma transacción por duplicado al Analytics.
Puedes utilizar una de las Variable Personalizadas para hacer el seguimiento de la última transacción realizada de forma que, antes de realizar cualquier transacción comprobamos si dicha transacción fue la última realizada y si es así, no la contabilizamos.
La solución
Para comenzar con la solución, veamos una implementación de ecommerce típica:
Si, como hemos comentado antes, el usuario recarga la página, el resultado es que este código se ejecutará dos o más veces con lo cual nuestros datos reflejarán transacciones inexistentes.
Para evitarlo debemos:
1. Lo primero que debemos hacer es crear la Variable Personalizada que usaremos para almacenar la última transacción realizada.
Para ello, pondremos la siguiente línea en nuestro código de seguimiento:
Por ejemplo, en nuestro caso hemos creado esta variable con el nombre de “transid” y le asignamos el valor de la última transacción realizada quedando el código de la siguiente manera:
2. Con la instrucción anterior, estaremos guardando el id de transacción. Ahora debemos agregar la lógica que evite que se dupliquen las transacciones, para ello preguntaremos antes de lanzar el tag de ecommerse si la transacción actual es igual a la última realizada.
En nuestro ejemplo quedaría de la siguiente manera:
Y esto es todo, con esta sencilla solución hemos controlado el problema de transacciones duplicadas por recarga de la página de confirmación y, con las salvedades mencionadas al comienzo, por accesos directos a la página de confirmación.
Si tienes alguna otra manera de controlar transacciones duplicadas o se te ocurren ideas para mejorar esta solución, te pedimos que la compartas y nos ayudes a todos a mejorar el seguimiento de las transacciones.
2 comentarios :
Esto siempre ha sido algo que me ha sorprendido que no este mejor implementado. En nuestro caso es un proceso de reserva de varios pasos y días de duración que puede o no acabar en una venta (reserva turística). Esta solución planteada es interesante pero nosotros hemos debido asegurarnos por PHP seteando un campo en el registro para que el código de analytics solo se envíe una vez... algo que nos limita mucho. Tal vez estudiemos esta vía por si pudiera ser una solución.
Buenos días
Me alegro que te haya parecido útil el artículo, como dices, en tu caso la solución se complica un poco por el hecho de que la transacción se puede realizar días más tarde.
Si finalmente aplicas nuestra solución, me gustaría que me contases que tal te ha ido, quizás sea interesante escribir otro artículo con un caso práctico.
Un saludo
Fernando
Publicar un comentario