Tutoriales 11 min de lectura

Cómo configurar Google Tag Manager avanzado: triggers y variables

Qué vas a lograr

Configurar en GTM: eventos de scroll depth (25%, 50%, 75%, 90%), time on page (30s, 60s), visibilidad de elemento específico (formulario en pantalla), variables personalizadas con lógica JavaScript, y dataLayer push para pasar datos dinámicos del sitio al tracking. Todo sin pedir ayuda al developer para cada cambio.

Requisitos previos

  • GTM instalado y funcionando en tu sitio
  • GA4 básico configurado en GTM
  • Acceso Editor a GTM
  • Conocimiento básico de HTML y JavaScript (ayuda pero no es obligatorio)
  • Chrome con extensión Tag Assistant instalada

Paso 1 — Variables avanzadas: dataLayer y JavaScript custom

  1. GTM: Variables → New → Data Layer Variable
  2. Sirve para capturar valores que el sitio empuja al dataLayer: nombre del producto, precio de carrito, categoría, ID de usuario logueado
  3. Tu developer agrega en el código del sitio: window.dataLayer.push con objeto JSON que contiene event y los valores a pasar
  4. En GTM: Variable → Data Layer Variable → Data Layer Variable Name con el nombre exacto del campo
  5. Ahora usas esa variable en cualquier tag o trigger con la notación de doble llave
  6. Custom JavaScript Variable: Variables → New → Custom JavaScript → escribe función que retorna el valor que necesitas, por ejemplo capturar el H1 de cualquier página automáticamente

Paso 2 — Trigger de Scroll Depth

  1. GTM: Triggers → New → Scroll Depth
  2. Configura: Vertical Scroll Depths con 25, 50, 75, 90 (porcentajes), This trigger fires on All Pages
  3. Crea tag GA4 Event que dispara con este trigger: Event Name scroll_depth, Parámetro percent_scrolled → valor variable built-in Scroll Depth Threshold
  4. Publica el workspace y verifica en GA4 que el evento aparece con el parámetro correcto

Paso 3 — Trigger de Visibilidad de Elemento

  1. Triggers → New → Element Visibility
  2. Selection Method: CSS Selector
  3. Element Selector: el ID o clase del elemento que quieres trackear (ej. #contactForm o .pricing-section)
  4. When to fire: Once per element
  5. Minimum Percent Visible: 50% (se dispara cuando la mitad del elemento es visible en pantalla)
  6. Crea tag GA4 Event: element_visible para saber qué porcentaje de visitantes llegan a ver tu formulario o sección de precios

Paso 4 — Trigger de Timer (tiempo en página)

  1. Triggers → New → Timer
  2. Interval: 30000 (30 segundos en milisegundos)
  3. Limit: 3 (máximo 3 disparos: 30s, 60s, 90s)
  4. Enable when: Page URL contains /blog/ para limitar solo a blog
  5. Tag GA4: evento time_on_page con parámetro de segundos calculado
  6. Permite segmentar lectores reales (30+ segundos) de rebotes rápidos

Verificación y troubleshooting

  • Usa siempre Preview Mode de GTM antes de publicar. El panel muestra cada trigger que se dispara en tiempo real con todos sus valores.
  • Tag no se dispara: revisa el orden de condiciones en el trigger, todas deben cumplirse simultáneamente
  • Eventos duplicados en GA4: verifica en Preview que el mismo evento no se dispara 2+ veces en el mismo momento
  • dataLayer variable undefined: verifica que el push del dataLayer ocurre ANTES de que GTM lea la variable

Próximos pasos y optimización

  • Versioning: nombra tus versiones descriptivamente en GTM para poder hacer rollback si algo falla
  • Environments: crea GTM Environment de Staging para probar cambios antes de publicar en producción
  • Folder organization: agrupa tags, triggers y variables en folders por propósito (GA4, Meta Pixel, Hotjar) para workspace limpio

En Weblindrome ofrecemos Análisis de datos para ayudarte con esta y otras implementaciones. Solicita una cotización personalizada.

Preguntas frecuentes

¿Cuándo usar GTM avanzado vs hardcodear los eventos en el código?

GTM avanzado gana cuando: el equipo de marketing necesita cambiar tracking frecuentemente sin esperar al developer, tienes múltiples herramientas de analytics, y el ritmo de cambios es ágil. Hardcodear tiene ventaja cuando: el sitio usa frameworks SPA (React/Vue) donde GTM tiene limitaciones, o cuando la precisión máxima es crítica en transacciones de alto valor.

¿Los triggers de GTM afectan la velocidad del sitio?

Mínimamente si se configura bien. GTM en sí agrega ~50-100ms de carga. Los triggers no añaden tiempo porque se evalúan después de la carga de página. Lo que sí puede afectar velocidad son los scripts de terceros que GTM dispara. Solución: usar loading async en GTM y diferir tags no críticos.

¿Qué es el dataLayer y por qué es tan importante?

dataLayer es un array JavaScript que actúa como canal de comunicación entre tu sitio y GTM. Tu developer empuja objetos JSON con información del contexto actual (producto visto, usuario logueado, valor del carrito). Sin dataLayer: GTM solo puede trackear interacciones básicas del DOM. Con dataLayer: puedes trackear cualquier dato de negocio con precisión.

¿Puedo usar GTM para A/B testing?

Para A/B tests simples: sí. Para tests complejos que modifican HTML: mejor usar plataforma dedicada (VWO, Optimizely) que integras via GTM. Advertencia: A/B testing via GTM puede causar Flash of Unstyled Content si no se implementa cuidadosamente.

¿Cómo compartir GTM con mi equipo sin dar acceso completo?

GTM tiene 4 niveles: No Access, Read, Edit, Publish. Para analista: nivel Edit sin Publish (requiere aprobación para llevar cambios a producción). Para cliente que solo necesita ver: Read. Esta estructura de aprobación evita que alguien sin experiencia rompa el tracking en producción.