⚠️ El 15 de junio de 2026 Google cambia el control de datos. Tu tracking puede quedar ciego.
Análisis técnico · Actualizado mayo 2026

DataLayer y GTM:
cuando el tracking parece funcionar
pero no funciona

✍️ Juan Pittau — IA Senior Lab 📅 9 de mayo de 2026 ⏱ 8 min de lectura
Resumen ejecutivo

GTM Preview muestra verde. Tag Assistant confirma que la etiqueta disparó. GA4 recibe eventos. Y Smart Bidding sigue optimizando con datos incorrectos — porque el dataLayer disparó con los campos vacíos, con precio 0, o con el evento duplicado. El tick verde en el preview no garantiza que los datos sean correctos. Solo garantiza que la etiqueta se ejecutó.

El error más difícil de detectar no es el tracking que no funciona. Es el tracking que parece funcionar. Cuando GTM muestra verde y GA4 recibe datos, nadie sospecha que esos datos sean basura. Smart Bidding los acepta, aprende desde ellos, y optimiza en la dirección equivocada durante semanas o meses antes de que alguien compare los números con la realidad.

Qué es el dataLayer
y por qué es el punto más frágil

El dataLayer es un array de JavaScript que actúa como intermediario entre tu web y GTM. Cuando ocurre algo relevante — un usuario añade un producto al carrito, completa una compra, envía un formulario — tu web escribe esa información en el dataLayer. GTM la lee y la envía a GA4, Google Ads y el resto de herramientas.

El problema es que GTM no valida lo que recibe. No comprueba si el precio es correcto, si el email está bien formateado, si el campo value tiene un número real o un cero. Acepta lo que le llega y lo envía. Si el dataLayer pasa basura, GTM envía basura — y todo lo que viene después, GA4, Smart Bidding, Performance Max, trabaja desde esa basura.

El problema más costoso: el dataLayer roto no genera errores visibles. La página carga con normalidad. GTM funciona. GA4 recibe datos. Solo cuando alguien compara los números de GA4 con los pedidos reales de la tienda o los leads del CRM aparece la discrepancia — y para entonces el daño lleva semanas acumulándose.

El engaño del tick verde:
disparó no significa correcto

GTM Preview Mode es la herramienta estándar para verificar que el tracking funciona. Muestra qué etiquetas se disparan, cuándo y con qué datos. Es indispensable — pero tiene un límite crítico que muy pocos tienen claro.

El tick verde confirma que la etiqueta se ejecutó. No confirma que los datos sean correctos. Una etiqueta puede dispararse con value: 0, con item_id: undefined, o con un email vacío — y GTM Preview lo marca en verde. El evento llegó. Los datos son basura. Tag Assistant lo confirma igual.

Este es el escenario que aparece en auditorías de forma recurrente: el equipo verificó con GTM Preview, todo estaba en verde, nadie revisó los valores reales dentro de cada evento. Smart Bidding llevaba semanas aprendiendo desde precios en 0 y conversiones duplicadas.

Cuánto dinero perdés
según el escenario

Escenario Qué recibe Smart Bidding Impacto económico
add_to_cart con price: 0 ROAS calculado sobre valor falso desde el primer evento Pujas mal calibradas — el algoritmo no sabe cuánto vale cada conversión
"datalayer" vs "dataLayer" — case mismatch El push va a un array distinto — GA4 no recibe nada Conversiones perdidas sin ninguna alerta visible
Plugin de caché sirve JS desactualizado dataLayer con estructura del deploy anterior Datos históricos incorrectos acumulados durante semanas
Plugin de seguridad bloquea inline script dataLayer.push falla silenciosamente Eventos de conversión que nunca llegan a GA4 ni a Google Ads
Deploy de frontend rompe el contrato del dataLayer Campos renombrados o eliminados — GTM recibe undefined 10–30% de pérdida de datos — acumulada sin que nadie lo detecte

Los 5 fallos silenciosos
más frecuentes

Fallo 1 — Case sensitivity: "dataLayer" vs "datalayer"

El nombre del array es case-sensitive. La documentación oficial de Google lo especifica explícitamente. Si un plugin escribe datalayer con la L en minúscula y GTM escucha dataLayer con la L en mayúscula, el push va a un array completamente distinto.

Sin error. Sin aviso. Los eventos simplemente no llegan. GTM sigue mostrando que está activo. GA4 sigue recibiendo pageviews. Solo los eventos específicos desaparecen — exactamente los que Smart Bidding necesita para optimizar.

Fallo 2 — AJAX dispara el evento antes de que el servidor resuelva los datos

Documentado de forma extensa en WooCommerce, pero ocurre en cualquier implementación con add-to-cart asíncrono. El plugin AJAX dispara el push al dataLayer inmediatamente cuando el usuario hace clic en "Añadir al carrito" — antes de que el servidor haya calculado precio final, descuento aplicado y variante correcta.

El resultado: GA4 recibe el evento add_to_cart con price: 0 e item_variant: undefined. Tag Assistant muestra verde porque el evento se disparó. Los datos son basura porque llegaron antes de que existieran. Google Ads importa esas conversiones. Smart Bidding aprende desde ahí.

Fallo 3 — El plugin de caché sirve JavaScript desactualizado

WP Rocket, LiteSpeed Cache y similares cachean archivos JavaScript para mejorar el rendimiento. Si el dataLayer de inicialización está en un JS cacheado, un deploy que modifica la estructura puede tardar días en llegar a todos los usuarios.

Durante ese tiempo, parte del tráfico recibe el dataLayer nuevo y parte el viejo. Los datos son inconsistentes — algunos eventos tienen los campos correctos, otros no. GA4 acumula una mezcla de datos correctos e incorrectos. Nadie lo detecta porque el promedio parece razonable.

Fallo 4 — Plugin de seguridad bloquea inline scripts

Wordfence y otros plugins de seguridad bloquean scripts inline que consideran sospechosos. Un dataLayer.push() es exactamente ese tipo de código — JavaScript inline que ejecuta lógica en el navegador.

Cuando Wordfence bloquea ese push, el evento no llega a GTM. La página carga con normalidad. No hay ningún error visible para el usuario ni para el equipo técnico. Los datos simplemente desaparecen. Las conversiones dejan de llegar a GA4. Smart Bidding pierde señal sin que nadie lo conecte con el plugin de seguridad.

Fallo 5 — Un deploy de frontend rompe el contrato del dataLayer

El más frecuente y el más costoso a largo plazo. El equipo de desarrollo rediseña el checkout, renombra un campo de value a revenue, mueve el evento de purchase a una URL distinta, o reorganiza la estructura de items.

GTM sigue disparando exactamente igual — con las variables que configuraste hace seis meses. Pero los datos que esperaba ya no existen o se llaman distinto. GA4 recibe undefined en los campos críticos. Smart Bidding aprende desde ahí. El tracking "funciona" — en el sentido de que las etiquetas disparan. Los datos son incorrectos.

⚠️ El patrón más peligroso: el equipo técnico hace un deploy un viernes. El lunes, nadie revisa el tracking porque "no tocamos nada del tracking". Las conversiones empiezan a caer. El equipo de marketing atribuye la caída a la temporada. Tres semanas después, alguien compara GA4 con el CRM y descubre que el evento purchase lleva enviando value: undefined desde el viernes.

Cómo verificar el dataLayer
en 3 pasos sin GTM Preview

GTM Preview es útil para verificar que las etiquetas se disparan. No es suficiente para verificar que los datos son correctos. Esta verificación hay que hacerla directamente en la consola del navegador.

  1. 01Abrir Chrome DevTools (F12) → pestaña Consola → escribir dataLayer y pulsar Enter. Se muestra el array completo con todos los eventos y sus valores actuales. No los valores que GTM esperaba — los valores reales que tu web está enviando.
  2. 02Expandir el evento de compra o conversión que querés verificar. Comprobar que los campos críticos tienen valores reales: value tiene un número mayor que 0, currency tiene el código correcto, items tiene el array con los productos reales, transaction_id tiene un ID único. Si alguno muestra undefined, null o 0, hay un problema.
  3. 03Comparar el nombre exacto de las variables con lo que GTM espera — recordá que es case-sensitive. Si GTM tiene configurada una variable de dataLayer llamada ecommerce.value y tu web envía ecommerce.Value con V mayúscula, GTM recibirá undefined. Sin error. Sin aviso.

La conexión con el 15 de junio:
un dataLayer roto anula Enhanced Conversions

Enhanced Conversions necesita el dato de email del usuario para hashearlo y enviarlo a Google. Ese dato llega a EC a través del dataLayer. Si el dataLayer está roto — campo vacío, timing incorrecto, push que llega antes de que el usuario haya introducido su email — EC tiene match rate 0%.

Desde el 15 de junio, Google Ads depende exclusivamente de Consent Mode v2 + Enhanced Conversions para atribuir conversiones de usuarios que rechazan cookies. Un dataLayer roto que anula EC en esa fecha significa perder permanentemente esa señal de atribución — sin ningún mecanismo de recuperación.

📊 Contexto: Según una encuesta realizada en LinkedIn en abril de 2026 con 96 profesionales de marketing digital en España, el 86% trabaja con discrepancias entre GA4 y Google Ads. Una de las causas más frecuentes y menos detectadas es exactamente este patrón — dataLayer que parece funcionar, datos que son incorrectos, y Smart Bidding que aprende desde esa señal durante semanas sin que nadie lo detecte.

¿Tu dataLayer envía
datos reales o basura?

Revisamos el contenedor GTM completo, los valores reales del dataLayer y la coherencia entre lo que envía tu web y lo que recibe GA4. Informe técnico + plan de acción + sesión en vivo.

Ver el servicio de auditoría

Preguntas frecuentes
sobre el dataLayer y GTM

El dataLayer es un array de JavaScript que actúa como intermediario entre tu web y Google Tag Manager. Cuando ocurre una interacción relevante — una compra, un clic, un formulario enviado — tu web escribe esa información en el dataLayer. GTM la lee y la envía a GA4, Google Ads y otras herramientas. Es el punto más crítico de cualquier implementación de tracking porque GTM no valida los datos que recibe — los envía tal como llegan.
GTM Preview Mode confirma que la etiqueta se ejecutó — no que los datos sean correctos. Una etiqueta puede dispararse con campos vacíos, valores en 0 o campos con el nombre incorrecto, y GTM lo marca en verde igualmente. Para verificar que los datos son correctos hay que revisar los valores reales en la consola del navegador con el comando `dataLayer`, no confiar solo en el tick verde del Preview.
Abrí Chrome DevTools (F12) → Consola → escribí `dataLayer` y pulsá Enter. Se muestra el array completo con todos los eventos y sus valores reales. Revisá que los campos críticos — value, currency, items, transaction_id — tienen valores correctos y no undefined, null o 0. Comparar esos valores con lo que GTM espera, teniendo en cuenta que los nombres son case-sensitive.
Sí, y es el escenario más frecuente. Si el equipo de desarrollo renombra un campo del dataLayer — de `value` a `revenue`, por ejemplo — GTM sigue disparando con la configuración anterior y recibe `undefined` en ese campo. El tracking "funciona" en el sentido de que las etiquetas se disparan, pero los datos son incorrectos. La forma de prevenirlo es verificar el tracking después de cada deploy que toque el checkout o las páginas de conversión.
Enhanced Conversions recibe el dato de email del usuario a través del dataLayer para hashearlo y enviarlo a Google. Si el dataLayer tiene un problema de timing — el push llega antes de que el usuario haya introducido su email — o el campo está vacío o mal nombrado, EC recibe un dato vacío y el match rate es 0%. EC aparece activada en Google Ads pero es funcionalmente inútil. Esto es especialmente crítico desde el 15 de junio, cuando EC es el único mecanismo de atribución disponible para usuarios que rechazan cookies.
Juan Pittau
Juan Pittau
Especialista GA4 · GTM · Google Ads · IA Senior Lab
Más de 20 años configurando e implementando medición digital. Ex Google Ads Trainer oficial para América Latina (Disney, Ford, Movistar, Mercado Libre). Hoy audita implementaciones de tracking para agencias y e-commerce en España.