Analytics

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.

Ilustración plana en verde oscuro y teal sobre fondo verde menta: una plataforma a la izquierda con tres marcadores en un asta conectada por una línea a un gráfico de barras creciente a la derecha, también coronado por marcadores, representando eventos etiquetados que viajan hasta el reporte

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:

dataLayer.push({ event: ‘experiment_impression’, experiment_name: ‘cta_hero_test’, variation_name: ‘variacion_b’ })

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.

El campo de coincidencia del activador de evento personalizado, con y sin regexEl activador de evento personalizado tiene un campo de nombre del evento. Sin la opción de regex activada, el nombre necesita ser exactamente igual al que llega en el dataLayer.push. Con la opción de regex activada, el mismo campo coincide con cualquier nombre de evento que combine con el patrón indicado.Activador: Evento personalizadoCampo: Nombre del eventoRegex desactivado (predeterminado)necesita ser exactamente igual:experiment_impressioncualquier otro nombre no disparaRegex activadocoincide con cualquier nombre que combine con^experiment_cubre impression, click, etc. en el mismo activador
Según la documentación de Google, el mismo campo de nombre del evento se comporta como igualdad exacta o como patrón regex, dependiendo de una opción en la configuración del activador.

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.

Anatomía de la etiqueta Google Analytics: Evento de GA4 en GTMLa etiqueta del tipo Evento de GA4 tiene cuatro campos: ID de medición, nombre del evento, parámetros del evento apuntando a las variables de capa de datos, y la activación por el activador de evento personalizado.Etiqueta: Google Analytics: Evento de GA4ID de medición: G-XXXXXXX (o etiqueta de configuración)Nombre del evento: experiment_impressionParámetro: experiment_name = DLV - experiment_nameParámetro: variation_name = DLV - variation_nameActivación: activador de evento personalizadoGA4 registra el evento con los parámetros
Los cuatro campos de la etiqueta de GA4 en GTM: identificación de la propiedad, nombre del evento, los parámetros conectados a las variables de capa de datos y el activador que decide cuándo disparar.

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:

  1. 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.
  2. En el panel del Tag Assistant, confirma que el activador de evento personalizado aparece como disparado en el momento correcto, no antes.
  3. Haz clic en el evento correspondiente y comprueba, en la pestaña de variables, si DLV - experiment_name y DLV - variation_name muestran los valores esperados (el nombre del test y la variación que estás viendo en esa sesión).
  4. 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.
  5. 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.
  6. Repite la prueba alternando manualmente a la otra variación (o usando una segunda sesión), para confirmar que el valor de variation_name cambia 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.

Orden correcto y orden equivocado del disparo del evento de test A/BEn el orden correcto, la variación se aplica en la página antes del dataLayer.push, y GA4 registra la variación correcta. En el orden equivocado, el evento se dispara en la carga inicial de la página, antes de que se aplique la variación, y GA4 registra el valor predeterminado del control incluso para quien vio la variación B.Orden correctoVariación B aplicadaen la páginadataLayer.push convariation_name=variacion_bGA4 registra Bconteo correctoOrden equivocadoEl evento se dispara en lacarga de la páginavariation_name todavíavacío o = controlGA4 registracontrol (equivocado)
El mismo dataLayer.push, disparado en momentos diferentes, genera dos reportes diferentes en GA4: uno confiable, uno con conteo faltante o duplicado.

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.

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:

Calculadora de significancia estadística
Control (A)
Variación (B)
Control (A) · Tasa-
Variación (B) · Tasa-
Mejora relativa-
valor-p-
IC 95% de la diferencia-

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


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.