Google Tag Manager para Test A/B: Guía de Configuración
Guía de Google Tag Manager para test A/B: activador de evento personalizado, variables de capa de datos, etiqueta de GA4 y cómo probarlo en Vista previa.

📚 Este artículo es parte de la guía GA4 y Test A/B: la Guía Completa de Integración.
Configurar Google Tag Manager (GTM) para un test A/B es el paso que conecta la división de tráfico de tu herramienta de test con GA4 y test A/B: sin ese puente, GA4 no sabe qué variación vio cada visitante. Esta guía muestra la configuración completa y real, pieza por pieza: el activador de evento personalizado que escucha el dataLayer, las variables de capa de datos que leen el nombre del experimento y de la variación, la etiqueta del tipo Evento de GA4 que une las dos puntas, la nomenclatura que evita confusión entre tests, cómo probarlo todo en el modo de Vista previa antes de publicar el contenedor y el error más común que distorsiona el conteo: disparar el evento antes de que la variación termine de cargar.
Por qué Google Tag Manager entra entre el test A/B y GA4
El camino más común en la práctica no es escribir gtag() directo en el código de la página: es usar GTM como capa intermedia, porque eso separa “qué disparar” de “dónde vive la lógica de negocio”. La pieza central sigue siendo la misma cubierta en la guía de rastreo de eventos de test A/B en GA4: un evento personalizado que carga el nombre del experimento y de la variación. La diferencia es que, con GTM, esa configuración vive en un contenedor gestionado visualmente, con Vista previa antes de publicar e historial de versiones, en lugar de quedar esparcida dentro del código fuente del sitio.
El dataLayer, el array global que tanto GTM como gtag.js leen para recibir eventos y variables, es el punto de encuentro entre las dos partes. Tu snippet de test A/B (o la herramienta de test que uses) empuja algo como el ejemplo de abajo apenas la variación se decide para ese visitante:
A partir de ese push, tres piezas dentro de GTM necesitan encajar: un activador que escuche ese evento, variables que lean los dos parámetros y una etiqueta que envíe todo a GA4. Las siguientes secciones cubren cada pieza.
Activador de evento personalizado: cómo GTM escucha el dataLayer.push
Según la documentación oficial de Google Tag Manager sobre eventos personalizados, un activador del tipo Evento personalizado monitorea la capa de datos en busca de un nombre de evento específico: cuando algo empuja ese nombre vía dataLayer.push, GTM lo reconoce y dispara las etiquetas asociadas a ese activador. La configuración pide un campo de Nombre del evento, donde escribes exactamente el valor que usa tu dataLayer.push (en el ejemplo de arriba, experiment_impression).
Existe también una opción de coincidencia regex: activada, permite hacer coincidir el campo con un patrón en lugar de exigir igualdad exacta, lo que es útil cuando quieres que un único activador cubra varios nombres de evento relacionados (por ejemplo, experiment_impression y experiment_click del mismo test) sin duplicar la configuración.
Para el caso de esta guía, lo más común es mantener la coincidencia exacta (regex desactivado) y usar un único nombre de evento, como experiment_impression, reaprovechado por todos los tests A/B del sitio. Eso simplifica la auditoría: un activador, un nombre, todas las etiquetas de test A/B colgadas de él.
Variables de capa de datos: leyendo experiment_name y variation_name
El activador decide cuándo disparar; las variables deciden qué leer. Según la documentación oficial de Google Tag Manager sobre tipos de variable, la Variable de Capa de Datos (Data Layer Variable) busca un valor que fue empujado a la capa de datos vía dataLayer.push y lo transforma en una variable utilizable en etiquetas, activadores y otras variables. La configuración pide el Nombre de la variable de capa de datos, que es la clave exacta del objeto empujado (experiment_name o variation_name, en el ejemplo de esta guía), y una Versión de la capa de datos, que controla cómo GTM interpreta un punto (“.”) dentro del nombre de la clave: la versión 1 trata el punto como parte literal del nombre, mientras que la versión 2 lo interpreta como acceso a un nivel anidado dentro de un objeto. Ningún parámetro de esta guía usa punto en el nombre, así que la elección entre las dos versiones no cambia el resultado aquí.
Para el test A/B, la práctica recomendada es crear exactamente dos variables de ese tipo:
| Variable (nombre en GTM) | Nombre de la clave en el dataLayer | Lee qué |
|---|---|---|
| DLV - experiment_name | experiment_name |
Identificador del test, ej.: cta_hero_test |
| DLV - variation_name | variation_name |
Brazo visto por el usuario, ej.: control, variacion_b |
Esas dos variables se reutilizan en todos los tests A/B que pasen a empujar el mismo formato de evento: no necesitas crear un par nuevo de variables en cada experimento, solo un nuevo valor para los parámetros dentro del dataLayer.push de cada test.
Etiqueta del tipo Evento de GA4: uniendo activador y variables
Con el activador y las variables listos, la última pieza es la etiqueta que efectivamente envía el evento a GA4. Según la documentación oficial de Google Tag Manager sobre cómo configurar eventos de Google Analytics, el tipo de etiqueta correcto es Google Analytics: Evento de GA4, y la configuración pide tres cosas: el ID de medición (o una etiqueta de configuración de Google ya existente en la misma cuenta, reaprovechada vía referencia), un Nombre del evento (el nombre que va a aparecer en los reportes de GA4, aquí experiment_impression) y, opcionalmente, Parámetros del evento, una tabla de nombre/valor donde apuntas cada parámetro a la variable correspondiente.
Si ya reaprovechas parámetros entre varias etiquetas de GA4 (moneda, valor, o los propios experiment_name/variation_name en múltiples eventos del mismo test), Google recomienda centralizar eso en una variable de Configuración de eventos (Event Settings), en lugar de repetir la tabla de parámetros en cada etiqueta individual.
Buenas prácticas de nomenclatura
Un test A/B rastreado mal en GTM casi siempre es un problema de nomenclatura inconsistente, no de configuración técnicamente equivocada. Vale la pena fijar una convención única antes de crear el segundo test:
| Elemento | Convención recomendada | Ejemplo |
|---|---|---|
| Nombre del evento | snake_case, minúscula, fijo para todos los tests | experiment_impression |
| Nombre del experimento | snake_case, describe la página y el cambio | cta_hero_test, checkout_envio_gratis |
| Nombre de la variación | siempre la misma lista de valores posibles | control, variacion_b, variacion_c |
| Activadores en GTM | prefijo por tipo | Trigger - experimento |
| Variables en GTM | prefijo por el tipo de variable | DLV - experiment_name |
| Etiquetas en GTM | prefijo por el destino | GA4 Event - experimento |
Sin espacio, sin acento y sin mayúscula mezclada en el valor que va a GA4: nombres de evento y de parámetro con espacio o acento pueden ser normalizados de formas diferentes dependiendo de la capa (GTM, gtag.js, GA4), y la misma variación termina apareciendo como dos valores distintos en el reporte.
Cómo probarlo en el modo de Vista previa antes de publicar el contenedor
Ninguna configuración de GTM debería ir a producción sin pasar por el modo de Vista previa y depuración. Según la documentación oficial de Google Tag Manager, al hacer clic en Vista previa en el espacio de trabajo, GTM conecta el Tag Assistant a tu sitio (todavía ejecutando la versión no publicada del contenedor) y muestra, en tiempo real, qué etiquetas se dispararon, en qué orden, y qué impidió o permitió cada disparo. La checklist práctica para este test específico:
- Abre la Vista previa, conéctate a la dirección de tu sitio (o de un entorno de pruebas) y navega hasta el punto en que se decide la variación del test A/B.
- En el panel del Tag Assistant, confirma que el activador de evento personalizado aparece como disparado en el momento correcto, no antes.
- Haz clic en el evento correspondiente y comprueba, en la pestaña de variables, si
DLV - experiment_nameyDLV - variation_namemuestran los valores esperados (el nombre del test y la variación que estás viendo en esa sesión). - Confirma que la etiqueta Google Analytics: Evento de GA4 aparece como disparada justo después del activador, con el nombre del evento y los dos parámetros rellenados.
- Abre el DebugView de GA4 en paralelo (en una pestaña aparte) y comprueba que el mismo evento llega del otro lado con los mismos valores.
- Repite la prueba alternando manualmente a la otra variación (o usando una segunda sesión), para confirmar que el valor de
variation_namecambia correctamente y no se queda trabado en el primer valor visto.
Solo después de que esa checklist pase tiene sentido enviar el espacio de trabajo a publicación. Según la documentación de Google, la Vista previa también permite compartir un enlace de depuración con otra persona del equipo, útil cuando quien está probando no tiene acceso de edición al contenedor.
| Paso de la checklist | Qué comprobar | Dónde mirar |
|---|---|---|
| El activador se disparó | El nombre del evento coincide, momento correcto (después de aplicada la variación) | Panel de resumen del Tag Assistant |
| Variables rellenadas | experiment_name y variation_name con los valores esperados |
Pestaña de variables del evento, en el Tag Assistant |
| La etiqueta de GA4 se disparó | La etiqueta aparece como “disparada”, justo después del activador | Panel de resumen del Tag Assistant |
| El evento llegó a GA4 | Los mismos valores aparecen del otro lado | DebugView de GA4 |
| La variación cambia correctamente | variation_name cambia entre sesiones diferentes |
Repetir la Vista previa cambiando de variación |
El error común: disparar el evento antes de que cargue la variación
El error más frecuente en esta configuración no es de sintaxis, es de momento: el activador se dispara demasiado pronto, antes de que la herramienta de test termine de aplicar la variación en la página. Eso suele ocurrir cuando alguien usa un activador genérico de carga de página (como “Todas las páginas” o un evento de DOM listo) en lugar de dejar que el propio script de test A/B dispare el dataLayer.push solo después de decidir y aplicar la variación.
El efecto práctico: parte de los visitantes que en realidad vieron la variación B termina contada como control (o el parámetro llega vacío y ni siquiera entra en la dimensión), lo que infla artificialmente el volumen del control y esconde volumen de la variación, una distorsión parecida a un Sample Ratio Mismatch, solo que la causa vive en el momento del disparo dentro de GTM, no en el sorteo de tráfico de la herramienta de test. Vale la pena comprobarlo con un verificador de SRM siempre que la división de visitantes por variación, en el propio GA4, aparezca torcida sin explicación obvia.
La corrección es siempre la misma: el activador de evento personalizado debe escuchar un evento disparado por el propio script de test, en el momento exacto en que terminó de decidir y aplicar la variación, nunca un activador genérico de carga de página que corre a una hora fija independiente del test. Si la herramienta de test A/B que usas ya expone un callback o evento de “variación aplicada”, ese es el gancho correcto para el dataLayer.push, no el window.onload ni un activador de “DOM listo” suelto.
Un ejemplo trabajado, con los números que llegaron a GA4 vía GTM
Supón que el test cta_hero_test corrió con el evento configurado exactamente como describe esta guía, y el reporte de Exploración de GA4 (alimentado por la etiqueta configurada en GTM) mostró los siguientes números, agrupados por la dimensión de variación: el control (A) tuvo 10.000 usuarios con el evento experiment_impression y 500 conversiones; la variación B tuvo 10.000 usuarios y 575 conversiones.
- Tasa de A: 500 ÷ 10.000 = 5,00%. Tasa de B: 575 ÷ 10.000 = 5,75%.
- Mejora relativa: (5,75 − 5,00) ÷ 5,00 = +15,0%.
- Tasa combinada p̄: (500 + 575) ÷ 20.000 = 5,375%.
- Error estándar: √[0,05375 · 0,94625 · (1÷10.000 + 1÷10.000)] ≈ 0,00319.
- Score z: (0,0575 − 0,0500) ÷ 0,00319 ≈ 2,35.
- Valor p (bilateral) ≈ 0,0187.
- Intervalo de confianza del 95% de la diferencia: aproximadamente +0,125 a +1,375 puntos porcentuales.
Con un valor p de 0,0187 (por debajo del corte de 0,05) y el intervalo de confianza entero por encima de cero, el resultado es estadísticamente significativo: la variación B ganó con una mejora relativa del 15%. Ese veredicto solo es confiable, sin embargo, si la auditoría de las secciones anteriores pasó, es decir, si el evento realmente se disparó después de aplicarse la variación, sin el error de momento descrito arriba inflando uno de los dos lados. Comprueba la misma cuenta en la calculadora de abajo, pegando los números exportados de tu reporte de GA4:
Test z bilateral de dos proporciones. "Sin significancia" casi siempre significa que falta muestra, no que las versiones sean iguales.
Haz esto automático en Donnu
Todo lo que cubrió esta guía (diseñar el evento, configurar activador y variables, montar la etiqueta de GA4, probar en Vista previa y no caer en el error de momento que distorsiona el conteo) es trabajo real de ingeniería de tracking, y un error en cualquiera de esas piezas puede convertirse en semanas de datos contaminados sin que nadie lo note. Donnu resuelve la causa raíz: la división de tráfico y el registro de qué variación vio cada visitante ocurren dentro de la propia herramienta, en el momento correcto, sin depender de un activador de GTM configurado a mano ni de una etiqueta de GA4 apuntando a las variables correctas. El cálculo de significancia también sale listo, sin necesidad de montar un reporte de Exploración ni pegar números en una calculadora aparte.
Empieza una prueba gratis en Donnu y deja de depender de activador, variable y etiqueta configurados manualmente para saber, con confianza, qué variación está ganando. Si tu proceso de decisión todavía depende de GA4 como fuente de comportamiento e ingresos complementaria, la guía completa de GA4 y test A/B muestra cómo encajan las dos piezas.
Referencias
- Google. Eventos personalizados en Tag Manager (activador de evento personalizado, coincidencia regex). support.google.com/tagmanager/answer/7679219.
- Google. Tipos de variables definidas por el usuario para la Web (Variable de Capa de Datos, versiones 1 y 2). support.google.com/tagmanager/answer/7683362.
- Google. Configurar eventos de Google Analytics en Tag Manager (etiqueta Evento de GA4, parámetros de evento). support.google.com/tagmanager/answer/13034206.
- Google. Configurar la etiqueta de Google en Tag Manager (ID de medición, configuración de eventos reutilizable). support.google.com/tagmanager/answer/9442095.
- Google. Previsualizar y depurar contenedores (modo de Vista previa, Tag Assistant, compartir enlace de depuración). support.google.com/tagmanager/answer/6107056.
Lee también: GA4 y test A/B: la guía completa de integración · Cómo rastrear eventos de test A/B en GA4 · Verificador de SRM para test A/B
Preguntas frecuentes
- ¿El activador de evento personalizado de GTM exige cambiar el código del sitio?
- No, en la mayor parte de los casos. Según la documentación oficial de Google Tag Manager, el activador de evento personalizado solo escucha lo que ya llega vía dataLayer.push, así que el cambio de código queda restringido al snippet que ya hace la división de tráfico del test (o a la herramienta de test A/B que uses), que pasa a empujar el evento con el nombre del experimento y de la variación. El activador, las variables y la etiqueta entera se configuran dentro del propio GTM, sin tocar el resto del código de la página.
- ¿Necesito publicar el contenedor de GTM para probar si la etiqueta de GA4 se está disparando bien?
- No. El modo de Vista previa y depuración de Google Tag Manager prueba la configuración del espacio de trabajo todavía no publicada: al hacer clic en Vista previa, el Tag Assistant se conecta a tu sitio y muestra, en tiempo real, qué activadores se dispararon, en qué orden y con qué valores de variable, todo eso antes de que cualquier visitante real vea el cambio. Solo después de confirmar que el activador, las variables y la etiqueta de GA4 se comportan como se espera tiene sentido publicar el contenedor.
- ¿La variable de capa de datos funciona si el nombre del parámetro tiene un punto?
- Depende de la versión de la variable. Según la documentación oficial de Google, la Variable de Capa de Datos tiene dos versiones de interpretación del punto en el nombre de la clave: la versión 1 trata el punto como carácter literal del nombre, mientras que la versión 2 interpreta el punto como acceso a un nivel anidado del objeto (por ejemplo, "a.b.c" se convierte en una ruta dentro de un objeto anidado). Para los parámetros de esta guía, experiment_name y variation_name, ninguna de las dos versiones importa, porque ninguno de los dos nombres usa punto.
- ¿Por qué el mismo evento de test A/B aparece contado de más (o de menos) en GA4 después de configurarlo en GTM?
- El motivo más común es el activador disparándose demasiado pronto: si el dataLayer.push del experimento ocurre antes de que la herramienta de test aplique efectivamente la variación en la página (por ejemplo, en un activador de carga de página genérico en lugar de un evento disparado por el propio script de test), el parámetro variation_name puede llegar vacío o con el valor predeterminado del control, incluso para quien está viendo la variación B. El síntoma en GA4 se parece a un Sample Ratio Mismatch: una división que debería estar equilibrada aparece torcida, solo que la causa vive en el momento del disparo, no en el sorteo de tráfico.