Tue. Dec 10th, 2024

#GTMTips: Evite la repetición de transacciones | El weblog de Simo Ahava


En este consejo, veremos cómo aprovechar una cookie propia personalizada para evitar visitas repetidas de cualquier tipo. Esto es más útil para transacciones, ya que un problema común con Google Analytics (tradicional) seguimiento de comercio electrónico es que un hit de transacción se envía nuevamente en entradas posteriores a la página de recibo, por ejemplo usando el botón Atrás del navegador. En algunos casos, y esto no es una buena práctica, se envía un correo electrónico de recibo al usuario con un enlace volver a la página del recibodonde la transacción se envía una y otra vez al ingresar.


incógnita


El boletín a fuego lento

Suscríbete al Boletín a fuego lento para recibir las últimas noticias y contenido de Simo Ahava en su bandeja de entrada de correo electrónico.

Este es el caso de uso:

  1. El usuario llega a la página del recibo

  2. La etiqueta de transacción verifica si el ID de la transacción está en la cookie de transacción

  3. Si la identificación está en la cookie, la etiqueta de transacción no se activa

  4. Si el ID no está en la cookie, se activa la etiqueta de transacción

  5. El ID de la transacción se agrega a la cookie en el hitCallback de la etiqueta

Entonces es muy comparable a lo que escribí hace algún tiempo sobre disparar una etiqueta solo una vez por sesión.

Para que esto funcione, necesitarás cuatro variables:

  1. Variable de capa de datos para la clave transactionId en la carga útil de la transacción en la página del recibo

  2. Variable de cookie de origen, que recupera el valor de la cookie donde se almacenan todos los ID de transacción del usuario.

  3. Variable JavaScript personalizada, que devuelve verdadero si el ID de la transacción en la página del recibo se encuentra en la cookie

  4. Variable JavaScript personalizada, que devuelve la función de devolución de llamada, donde el ID de la transacción precise se agrega a la cookie después de que se haya activado la etiqueta de la transacción.

Variable de capa de datos: {{ID de transacción dlv}}

Éste es fácil. Simplemente cree una nueva variable de capa de datos llamada {{id de transacción dlv}}y haga que apunte a la variable donde se almacena el ID de la transacción en la página del recibo (debe ser transactionId).

Cree una nueva variable de cookie de origen llamada {{transacciones de usuarios de cookies}}y haga que se refiera al nombre que desee que se le dé a su cookie. En este ejemplo, usaré user_transaction_ids.

El propósito de esta variable es devolver verdadero si el ID de la transacción en la página de agradecimiento se encuentra en la cookie. Esto significa que una de las condiciones del activador de activación de la etiqueta de transacción es verificar si el valor de la cookie no es verdadero. Esto significaría que este usuario aún no ha activado el ID de transacción. El código se ve así:

operate() {
  return /(,|^){{dlv transaction id}}/.take a look at({{cookie consumer transactions}});
}

En esta variable JavaScript personalizada, agregaremos el valor devuelto por {{ID de transacción}} a la cookie a la que se hace referencia en la variable que acabamos de crear arriba. Como supongo que el visitante puede realizar múltiples transacciones, a la cookie se le agregará el valor, no se sobrescribirá. La fecha de vencimiento depende de la vida útil de un único ID de transacción. En mi caso, asumo que siempre son únicos, por lo que tengo un tiempo de vencimiento de dos años (cifra completamente arbitraria). Si sabe que los ID de las transacciones no son únicos, debe acortar el vencimiento para reflejarlo.

Esto es lo que {{js hitcallback establece cookie de transacción}} debe tener dentro:

operate() {
  return operate() {
    var d, expires;
    var cvalue = '';
    // Run the code provided that a transaction is discovered within the knowledge layer
    if ({{dlv transaction id}}) {
      d = new Date();
      d.setTime(d.getTime() + (2*365*24*60*60*1000));
      expires = 'expires='+d.toUTCString();
      // If the cookie already exists, append not overwrite
      if ({{cookie consumer transactions}}) {
        cvalue = {{cookie consumer transactions}} + ',';
      }    
      doc.cookie = 'user_transaction_ids=' + 
            cvalue + {{dlv transaction id}} + '; ' + 
            expires + '; path=/';
    }
  };
}

Configurar la etiqueta

Finalmente, necesitas configurar la etiqueta. Las únicas modificaciones que necesitas hacer son el gatillo de disparo y el hitCallback campo. Para el gatillo de disparo, debe agregar la siguiente condición:

{{js es el ID de transacción en la cookie}} no es igual verdadero

Esto significa que la etiqueta sólo se activará si el ID de transacción en la plantilla de página no se encuentra en la galleta. Tiene sentido, ¿verdad?

A continuación, debe configurar el hitCallback campo. Así que desplácese hacia abajo hasta Más configuraciones -> Campos para configurary full los valores de esta manera:

Y eso debería bastar.

Resumen

Esto es lo que debería ocurrir cuando un usuario llega a la página de recibo:

  1. La etiqueta de transacción verifica si el ID de transacción en la plantilla de página (almacenado en {{id de transacción dlv}}) se puede encontrar en el valor devuelto por la variable cookie {{transacciones de usuarios de cookies}}.

  2. Si el ID existe en la cookie, significa que ya se ha activado una transacción con este ID, por lo que no se hace nada.

  3. Si el ID no existe, se activa la etiqueta de transacción.

  4. Después de que la etiqueta haya completado su ejecución, el hitCallback función, {{js hitcallback establece cookie de transacción}} es invocado.

  5. Esta función comprueba si la cookie ya existe. Si es así, agrega el ID de la transacción precise al ultimate de la cookie (usando una coma como separador). Si la cookie no existe, se crea una nueva cookie con el ID de la transacción como único valor.

  6. De esta manera, cualquier visita repetida a la página con el mismo ID de transacción en la plantilla no hará que la etiqueta se energetic nuevamente.

Parece una forma complicada de hacer las cosas y, en algún nivel, probablemente lo sea. Sin embargo, GTM y GA no tienen estado en el navegador del usuario. Lo único que persisten son las cookies de seguimiento. Todo lo demás lo debe hacer el usuario, por lo que debemos crear manualmente las cookies y la lógica detrás de ellas.

ACTUALIZAR: David Vallejo ha escrito una excelente guía sobre cómo lograr lo mismo en el comercio electrónico mejorado. Échale un vistazo!

Related Post

Leave a Reply

Your email address will not be published. Required fields are marked *