Un problema muy común al que solemos enfrentarnos en la analítica web es el de las transacciones y/o conversiones repetidas. Fáciles de detectar, pero evitar que se midan no lo es tanto, y pueden llegar a distorsionar bastante cifras tan relevantes como son las de comercio, conversiones realizadas, formularios enviados, etc.
Para ver más claro el problema que nos ocupa se presenta el siguiente escenario:
“Un usuario, después de atravesar un proceso de compra y puede que una pasarela de pago (o TPV), llega a la página de confirmación de compra realizada donde, generalmente, se lanzan la inmensa mayoría de los pixels de conversión y parte del tracking de comercio de Analytics.”
Hasta ahí todo correcto, ahora viene cuando la matan. Se presentan dos posibilidades:
- El cliente navega a otra página distinta, o directamente cierra el navegador y se va.
- El cliente recarga la página actual; o navega a otra distinta y después decide volver atrás, otra vez a la página de “gracias” (porque se le ha olvidado apuntar el identificador del pedido, por ejemplo).
El primer escenario es la traza de comportamiento natural de un cliente: navega y mira, compra, paga, llega a la página de gracias y se marcha. Sin problemas.
El segundo escenario es el problemático. La mayoría de las webs no implementan un sistema nativo que impida a un usuario recargar ciertas URLs que son el resultado final de un proceso más largo, sin lanzar un error de página caducada o redireccionando al usuario a otra página. También existen otros portales donde directamente redirigen al usuario a la página de “gracias” cuando este decide ver los detalles de un pedido realizado.
En cualquier caso, es necesario asegurarse que la información de tracking asociada a esta clase de páginas solo se envíe una vez.
Google Tag Manager para evitar transacciones repetidas en Google Analytics
La solución propuesta pasa por usar un nuevo tipo de cookie. Es importante subrayar este punto puesto que será necesario actualizar la política de cookies del portal web, una vez implementado esta solución. Toda la implementación está basada en el uso de Google Tag Manager (el administrador de etiquetas de Google), el cual entre otras cosas, nos permite hacer virguerías como esta sin recurrir para nada a los programadores de la web. En un artículo anterior, os hablábamos sobre Google Tag Manager y sus opciones de configuración.
En resumidas cuentas, así es como funciona el método propuesto:
- 1. El usuario llega a la página de “gracias”
- 2. La etiqueta de transacción mira dentro de la nueva cookie si está el ID de la transacción que acaba de realizar el usuario.
- 3. Si el ID está en la cookie no se lanza la etiqueta.
- 4. Si el ID no está en la cookie, la etiqueta se lanza y el ID se añade a la cookie, actualizando la longevidad de ésta.
Para poder llevar a cabo este método necesitaremos 4 elementos nuevos, además de la etiqueta de tracking de transacciones y su correspondiente trigger (previamente existentes).
- Un DataLayer Variable que recoja el valor del ID de la transacción. Este valor ha de existir dentro del dataLayer de la página.
- Una 1st Party Cookie, que será nuestra nueva cookie, la encargada de almacenar temporalmente todos los IDs de las transacciones que vaya realizando el cliente.
- Un Custom Javascript que devuelva verdadero/falso en función de si el ID de la transacción actual se encuentra dentro de la cookie mencionada.
- Un Custom Javascript que se encargue de añadir el ID de la transacción a la nueva cookie (o de crearla si no existía previamente), además de actualizar el tiempo de vida de ésta.
Implementación en Google Tag Manager
Vamos a explicar paso a paso cada uno de los elementos que hay que ir creando y configurando en Google Tag Manager.
El ID de la transacción
Necesitamos crear una variable de tipo Data Layer que apunte al nombre de la variable que recoge el ID. Normalmente esta variable se llamará transactionId.
En el caso de estar usando una implementación estándar de Comercio Electrónico Mejorado, accederemos a esta variable de la siguiente manera:
ecommerce.purchase.actionField.id
La nueva cookie
Necesitamos una cookie que se encargue de ir acumulando los distintos IDs de las transacciones que lleve a cabo el cliente. A esta nueva cookie la bautizaremos con el nombre de: ga_tids (aunque se puede cambiar en cualquier momento).
Javascript: Es transacción repetida
Se trata de una sencilla función javascript que nos dirá si el ID de la transacción de la página de “gracias” en la que se encuentra el usuario es repetida.
Donde:
{{DL-EEC-Purchase-Transaction ID}}
es el nombre de la variable que hemos creado en el primer punto.{{Cookie-User transactions}}
es el nombre de la 1st Party cookie del segundo paso.
Llamaremos a esta variable {{JS-EEC-Transaccion repetida}}
Javascript: Cookie set
Por último creamos otro Custom Javascript con el siguiente código fuente:
En la primera línea daremos nombre e nuestra nueva cookie, en este caso ga_tids. Luego, lo que hace el script es comprobar lo primero que el ID de la transacción es visible y accesible. En tal caso, actualiza el tiempo de vida de la cookie y la crea con el formato adecuado y el valor del ID, o simplemente añade el ID al final si ésta ya existía.
El tiempo de vida configurado para la cookie en este ejemplo es de 24h, aunque se puede seleccionar cualquier otro intervalo que se desee.
Llamaremos a esta variable {{JS-EEC-Set user transactions cookie}}
.
Configurando la etiqueta en Google Analytics
Por último nos queda simplemente hacer un par de cambios en la etiqueta que envía los datos de comercio a analytics, y en su respectivo disparador.
Dentro de la configuración avanzada de la etiqueta de Google Analytics, en Fields to Set, añadiremos uno nuevo para el campo hitCallback con el valor devuelto por nuestra función javascript
{{JS-EEC-Set user transactions cookie}}.
Lo que le estamos diciendo a GTM con esta configuración es que ejecute el javascript especificado inmediatamente después de que se envíe el hit a Analytics, con lo que ya quedará registrado el ID de la transacción a partir de ese momento.
Configurando el disparador
Dentro de la configuración del trigger encargado de disparar tanto la etiqueta de tracking de comercio, como otro tipo de etiquetas de conversión o pixels (tipo Adwords por ejemplo), añadiremos la siguiente condición:
{{JS-EEC-Transaccion repetida}} does not equal true
Es decir, solo se disparará este trigger si la transacción de la página actual no está registrada dentro de nuestra nueva cookie.
En hiberus tenemos un área especializada en negocios digitales. Contacta con nosotros y estaremos encantados de ayudarte.
¿Quieres más información sobre nuestros servicios de publicidad y analítica digital?
Contacta con nuestro equipo de Semmántica