Guardar el GCLID aunque se navegue por la página

Post with image

Hoy gracias a una pregunta surgida en Marketineo PPC y realizada por Javier Inojosa:

Hola a todos!! A ver si podéis guiarme un poco. Al hacer clic en un anuncio de ads te lleva a la landing donde se incluye el GCLID. Este lo usamos para más tarde subir las conversiones.
El problema es que si en la landing clicas en algún enlace, te lleva a otra url donde se pierde el código GCLID y por tanto si convierte no podemos informar a google de esta.
¿Sabéis alguna forma de que este código no se pierda cuando pasas de una url a otra?
Mil gracias

Javier Inojosa

Traemos una forma para capturar ese GCLID y guardarlo como cookie de primera parte y que después el CMS pueda recuperar ese valor al enviar el formulario. Esto es útil sobre todo cuando tenemos conversiones offline y necesitamos subirlas posteriormente a Google Ads (Se viene ladrillo técnico con muchos acrónimos, si algún dia actualizo esto pondré el glosario)

Extraer el parámetro de la URL con GTM

El primer paso es extraer el parámetro de la URL, como el GCLID nos llega como parámetro GET, lo único que tenemos que hacer es crear una variable en GTM del tipo query de URL en la que extraemos el GCLID

Extraemos el GCLID de la URL guardándolo como variable

Incluir la librería con la que escribir las cookies (setear cookies)

Incluimos como HTML personalizado este código para que se dispare en todas las páginas, este código nos va a permitir guardar cookies permanentes o de sesión además de leerlas. Estas cookies serán de primera parte por lo que no tendríamos problemas de GDPR salvo que guardemos datos identificativos. En este caso el GCLID si lo es asi que cuidadito.

<script>
function setPersistentCookie(name, value, expires) {
 var cookie = name + "=" + value + "; path=/; domain=." + location.hostname.replace(/^www\./i, "");
if (typeof expires !== "undefined") {
var now = new Date();
now.setTime(now.getTime() + expires * 24 * 60 * 60 * 1000);
cookie += "; expires=" + now.toUTCString();
}
 
document.cookie = cookie;
}
 
function setSessionCookie(name, value) {
var cookie = name + "=" + value + "; path=/; domain=." + location.hostname.replace(/^www\./i, "");
 
document.cookie = cookie;
}
 
function getCookie(name) {
var cookies = document.cookie.split(";"),
toReturn;
 
for (var i = 0; i < cookies.length; i++) {
var cookie = cookies[i].trim();
if (cookie.indexOf(name + "=") === 0) {
toReturn = cookie.substring((name + "=").length, cookie.length);
}
}
 
return toReturn;
}
</script>
Librería para escribir y leer las cookies

Código para guardar el GCLID en la cookie

Ahora necesitamos otro código que nos permita guardar esa cookie que llamaremos _GCLID

Este código lo ejecutaremos solo cuando la URL contenga el parámetro con el disparador correspondiente.

<script>
(function() {
 setSessionCookie("_GCLID", {{GCLID}}, 30);
})();
</script>

Pues con estso sencillos pasos lo tendríamos, ahora tenemos el GCLID guardado para que cuando se envíe el formulario lo podamos recuperar, por ejemplo podríamos sacarlo en el datalayer y tenerlo disponible, ahi ya es cuestión de gustos.
Seguimos!

Photo by Markus Spiske on Unsplash

2 thoughts on “Guardar el GCLID aunque se navegue por la página”

  1. Gracias por el artículo: es muy útil para los que sabemos más de Google Ads que de programación pero nos toca «hacer un poco de todo».

    He leído tu artículo y solo me queda una duda: ¿cómo se traslada ese gclid guardado entre páginas a un formulario? En WordPress estoy trabajando con Ninja Forms y aunque puedo crear un campo oculto, no sé cómo hacer para que capture el gclid. No sé si pregunto de más, porque veo que tú también eres gestor de AdWords, pero te agradeceré cualquier orientación.

    1. Buenas Sandra, muchas gracias por tu comentario.
      No se como lo trabaja exactamente Ninjaforms, por lo que veo en su documentación https://developer.ninjaforms.com/codex/changing-field-values/ tienen un método para establecer el valor de un campo oculto con JS
      Usando la función getCookie() podemos sacar el valor con algo parecido a (Donde el 197 es el ID del campo oculto a modificar):

      var fieldID = 197;
      var newValue = getCookie(‘_GCLID’);

      jQuery( ‘#nf-field-‘ + fieldID ).val( newValue ).trigger( ‘change’ );

Leave a reply

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