Blog, sitio web y publicación de páginas

Patricia_AS
Miembro

No perder UTM's en los elementos de una landing

resolver

Hola, 

 

Tenemos unas landings específicas hechas en Hubspot que se usan para campañas de Paid. Éstas, tienen el tracking añadido en la plataforma de Google Ads, por lo que cuando llegan los leads a través de las landings, mediante ese tracking, Hubspot las identifica como que vienen de búsqueda de pago. 

 

Sin embargo, hemos detectado que cuando un usuario hace clic en los diferentes elementos de la landing que están anclados (logo, otros botones, etc), antes de rellenar el formulario y enviar la información, la página se recarga y los utm's se pierden. Por lo que cuando ese usuario finalmente se registra, entra en el sistema como tráfico directo y no como búsqueda de pago. 

 

¿Sabéis cómo podemos configurarlo para que esos utm's no se pierdan al clicar en otros elementos de la landing?

 

Gracias,

2 Soluciones aceptadas
JuanGomez0818
Solución
Asesor destacado

No perder UTM's en los elementos de una landing

resolver

Hola @Patricia_AS creo que hay una solución que te podría funcionar, primero debes ir a tu landing page y seleccionar  Configuración >  Avanzado > HTML del Pie de Página. 

Captura de pantalla 2025-04-24 a la(s) 5.50.07 p.m..png

Aquí el código:

<script>
(function() {
  const params = new URLSearchParams(window.location.search);
  const utmParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content'];
  utmParams.forEach(param => {
    const value = params.get(param);
    if (value) {
      localStorage.setItem(param, value);
    }
  });

  // Reescribir enlaces internos para que conserven los UTM
  document.addEventListener("DOMContentLoaded", function() {
    document.querySelectorAll('a').forEach(link => {
      const href = link.getAttribute('href');
      if (href && !href.startsWith('mailto') && !href.startsWith('tel')) {
        const isSameDomain = href.startsWith('/') || href.includes(window.location.hostname);
        if (isSameDomain) {
          const url = new URL(href, window.location.origin);
          utmParams.forEach(param => {
            const value = localStorage.getItem(param);
            if (value && !url.searchParams.get(param)) {
              url.searchParams.set(param, value);
            }
          });
          link.setAttribute('href', url.toString());
        }
      }
    });
  });
})();
</script>


Esto básicamente lo hace es capturar los enlaces de tu sitio web, en caso de que se recarge el sitio web los reescribe, así no perderías tus UTM's. 

Espero que te funcione, saludos. 




Juan Gómez
Hubspot Consultant | HubSpot Freelancer | Hubspot Solution Provider | TheWhiteHub.io

Contáctame aquí



Ver la solución en mensaje original publicado

Patricia_AS
Solución
Miembro

No perder UTM's en los elementos de una landing

resolver

Hola!! 

 

Pues creo que sí que puede ser la solución! Desafortunadamente estamos usando unas plantillas donde la configuración avanzada no está disponible (adjunto captura del mensaje). image.png

De todas formas, hemos probado otra plantilla y sí que nos deja añadir un código, así que plantearemos el cambio de plantillas para poder usar esta solución. 

 

Muchas gracias por la rapidez. 

 

Un saludo,

Ver la solución en mensaje original publicado

3 Respuestas 3
JuanGomez0818
Solución
Asesor destacado

No perder UTM's en los elementos de una landing

resolver

Hola @Patricia_AS creo que hay una solución que te podría funcionar, primero debes ir a tu landing page y seleccionar  Configuración >  Avanzado > HTML del Pie de Página. 

Captura de pantalla 2025-04-24 a la(s) 5.50.07 p.m..png

Aquí el código:

<script>
(function() {
  const params = new URLSearchParams(window.location.search);
  const utmParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content'];
  utmParams.forEach(param => {
    const value = params.get(param);
    if (value) {
      localStorage.setItem(param, value);
    }
  });

  // Reescribir enlaces internos para que conserven los UTM
  document.addEventListener("DOMContentLoaded", function() {
    document.querySelectorAll('a').forEach(link => {
      const href = link.getAttribute('href');
      if (href && !href.startsWith('mailto') && !href.startsWith('tel')) {
        const isSameDomain = href.startsWith('/') || href.includes(window.location.hostname);
        if (isSameDomain) {
          const url = new URL(href, window.location.origin);
          utmParams.forEach(param => {
            const value = localStorage.getItem(param);
            if (value && !url.searchParams.get(param)) {
              url.searchParams.set(param, value);
            }
          });
          link.setAttribute('href', url.toString());
        }
      }
    });
  });
})();
</script>


Esto básicamente lo hace es capturar los enlaces de tu sitio web, en caso de que se recarge el sitio web los reescribe, así no perderías tus UTM's. 

Espero que te funcione, saludos. 




Juan Gómez
Hubspot Consultant | HubSpot Freelancer | Hubspot Solution Provider | TheWhiteHub.io

Contáctame aquí



Patricia_AS
Solución
Miembro

No perder UTM's en los elementos de una landing

resolver

Hola!! 

 

Pues creo que sí que puede ser la solución! Desafortunadamente estamos usando unas plantillas donde la configuración avanzada no está disponible (adjunto captura del mensaje). image.png

De todas formas, hemos probado otra plantilla y sí que nos deja añadir un código, así que plantearemos el cambio de plantillas para poder usar esta solución. 

 

Muchas gracias por la rapidez. 

 

Un saludo,

DianaGomez
Administrador de la comunidad
Administrador de la comunidad

No perder UTM's en los elementos de una landing

resolver

Hola @Patricia_AS, gracias por tu pregunta.

Consultemos con nuestros expertos si tienen alguna sugerencia para ti.

Hola @Lucila-Andimol , @Gilempert , @JuanGomez0818  tienen de casualidad una idea que pueda ayudar a @Patricia_AS con su objetivo?

Gracias a todos por contribuir.

Saludos,
Diana


HubSpot’s AI-powered customer agent resolves up to 50% of customer queries instantly, with some customers reaching up to 90% resolution rates.
Learn More.


¿Sabías que la Comunidad está disponible en Español?
¡Participa hoy en conversaciones en el idioma de tu preferencia,cambiando el idioma en tus configuarciones!
0 Me gusta