Un clic en el botón de WhatsApp no se mide solo. El enlace wa.me te saca del sitio hacia un dominio ajeno y no deja rastro en Analytics. Para medirlo hay que empujar un evento al dataLayer cuando alguien pulsa, recogerlo con un activador de evento personalizado en Google Tag Manager, mandarlo a GA4 como evento y marcarlo ahí como evento clave. Y después separar cuatro cosas que no son la misma: el clic, la conversación abierta, la conversación contestada y la oportunidad. Solo la última se puede llevar a euros.
¿Por qué no aparece ningún dato del botón de WhatsApp en Analytics?
Acá hay un malentendido que se repite mucho: la gente asume que si el botón está en su web, el clic es de su web. Y no.
Ese botón es un enlace normal a wa.me o a api.whatsapp.com, el formato de enlace de clic para chatear que documenta la propia WhatsApp. Cuando alguien lo pulsa, el navegador abandona tu página y abre otra cosa: la app de escritorio, la app del móvil o web.whatsapp.com. Nada de eso es tuyo. El script de GA4 vive en tu página, y tu página deja de existir en el momento del clic.
Así que lo que ve GA4 no es un evento de contacto. Ve una sesión que se acabó. Con suerte la cuenta como salida y, si el usuario vuelve más tarde, como una sesión nueva sin relación con la anterior.
Ojo con esto porque cambia el diagnóstico: el problema no está en Analytics ni en la configuración de tu propiedad. Está en que nunca le dijiste a nadie que ese clic era importante. Los eventos de interacción que GA4 recoge sin que hagas nada cubren los patrones que Google puede reconocer solo, como el scroll o la salida a un enlace externo si tienes activada la medición mejorada. Ese último caso puede darte un click con el dominio de destino, pero mezclado con cualquier otro enlace saliente del sitio y sin decirte de qué botón vino. Para trabajar con el dato hace falta que lo declares tú.
Cómo medir el clic, paso a paso

wa_click y ubicacion son nombres de ejemplo; elige los tuyos y mantenlos estables.Son cuatro eslabones y ninguno es opcional. El clic tiene que avisar, el aviso tiene que llegar a Tag Manager, Tag Manager tiene que traducirlo a un evento de GA4 y GA4 tiene que saber que ese evento cuenta.
El aviso es un dataLayer.push: el mecanismo que documenta Google para pasarle información a Tag Manager desde la página. Le mandas el nombre del evento y, si eres listo, un segundo dato con la ubicación del botón.
Si el botón es un enlace tuyo
<a href="https://wa.me/34600000000"
id="wa-flotante"
onclick="dataLayer.push({event:'wa_click', ubicacion:'flotante'})">
Escríbenos por WhatsApp
</a>
El onclick vale para salir del paso, pero ensucia el HTML y se pierde en cuanto alguien reedite el bloque desde el constructor. La versión de abajo es la que se mantiene sola.
Si el botón lo inyecta un script (y no existe cuando carga la página)
document.addEventListener('click', function (e) {
var boton = e.target.closest('a[href*="wa.me"], a[href*="api.whatsapp.com"]');
if (!boton) return;
window.dataLayer = window.dataLayer || [];
dataLayer.push({
event: 'wa_click',
ubicacion: boton.dataset.wa || 'sin-etiquetar',
pagina: location.pathname
});
});
Escucha en el documento entero, así que funciona con botones que aparecen después: el listener no necesita que el elemento exista al cargar. Cubre las dos formas de enlace que usa WhatsApp, wa.me y api.whatsapp.com. Y si a cada botón le pones un data-wa="cabecera", ya sabes cuál se pulsa.
La segunda versión es la que yo dejaría puesta. Escucha el clic en el documento entero en lugar de atarse a un elemento concreto, así que sigue funcionando cuando el botón lo pinta un script que carga después, cuando alguien duplica el botón en otra página o cuando el constructor reescribe el HTML en la siguiente actualización. Con closest() sube desde donde cayó el clic hasta el enlace, que es lo que evita que se te escape cuando el usuario pulsa justo encima del icono y no del texto.
En Tag Manager creas un activador de tipo evento personalizado con el mismo nombre que pusiste en el push, y le cuelgas una etiqueta de evento de GA4. Si quieres conservar la ubicación, la recoges con una variable de capa de datos y la mandas como parámetro del evento.
Y falta el paso que se olvida siempre: en GA4, marcar ese evento como evento clave. Hasta que no lo marcas, el evento se registra pero no cuenta como conversión, no aparece donde esperas y no se puede importar a Google Ads.
Antes de dar nada por bueno, pasa por el modo vista previa de Tag Manager y comprueba dos cosas: que el evento sale al pulsar, y que no sale en ningún otro momento. Un activador demasiado abierto que dispare con cualquier enlace te va a inflar la cifra durante meses sin que lo notes.
¿Qué método de instalación te deja medir y cuál no?
Esto es lo que casi nadie te cuenta cuando eliges cómo poner el botón: la decisión de instalación decide también qué vas a poder medir después. Si el botón no vive en tu DOM, no hay listener que lo alcance.
| Cómo lo tienes puesto | ¿Puedes medir el clic? | Qué hace falta |
|---|---|---|
Enlace wa.me escrito por ti en el HTML |
Sí, sin límites | Nada especial. Es tu elemento: le pones el id que quieras y el activador de GTM lo caza por el selector. |
| Botón del constructor (Elementor, Divi, Webflow) | Sí | Añadirle una clase o un ID personalizado desde el panel de opciones avanzadas. Todos los constructores serios lo permiten. |
| Plugin de botón flotante | Casi siempre | Comprobar en el inspector si el enlace acaba en tu DOM. Si lo ves con clic derecho e «Inspeccionar», el listener delegado lo alcanza. |
| Widget JS de un tercero | Depende | Si pinta el botón en tu DOM, el listener delegado sirve. Si el widget expone su propio evento, mejor usar el suyo: sobrevive a sus actualizaciones. |
Widget dentro de un <iframe> |
No, desde fuera | El clic ocurre en otro documento y no llega al tuyo. O el proveedor te manda el evento, o esa etapa la mides en su panel, no en el tuyo. |
La fila del iframe no es una opinión mía, es cómo funciona el navegador: un documento de otro origen no propaga sus eventos de clic al documento padre. Si tu widget se sirve así, esa etapa la vas a medir en el panel del proveedor o no la vas a medir.
Si lo que necesitas es poner el botón y no lo tienes todavía, te dejo aparte cómo se instala el widget y la página del widget de WhatsApp de Clientify, que es la parte de producto. Acá vamos con lo de después.
¿Qué métricas de verdad importan?
Medí uno a uno los cinco resultados que salen primero para esta búsqueda en España el 24 de agosto de 2026. Tres explican cómo instalar el botón y no mencionan GA4 ni una sola vez. Los otros dos explican cómo medir el clic con Tag Manager y se paran exactamente ahí. Ninguno de los cinco pasa del clic.
Y el clic es la primera de cuatro etapas.

| Qué mides | Dónde vive el dato | Qué te dice | Qué cambias si va mal |
|---|---|---|---|
| Clics en el botón | GA4, vía GTM | Cuánta gente quiere hablar contigo y desde qué páginas | La ubicación del botón, el copy que lo acompaña, en qué páginas aparece |
| Conversaciones abiertas | Tu bandeja de WhatsApp | Cuántos de esos clics acabaron en un mensaje enviado de verdad | El mensaje prerrellenado: si asusta o suena a formulario, se abandona ahí |
| Conversaciones contestadas | Tu bandeja, si alguien la mira | Si tu equipo llega a tiempo o la gente se cansa de esperar | Turnos de atención, avisos, respuestas rápidas para el primer contacto |
| Oportunidades creadas | El CRM | Cuántas conversaciones eran negocio y no una consulta suelta | La cualificación: qué preguntas hace tu equipo en los dos primeros mensajes |
La tercera es la que duele, porque es invisible desde los dos lados. Analytics no la ve, y el equipo tampoco la mira: la conversación entró en el móvil de alguien, ese alguien estaba en una reunión y cuando volvió ya había veinte mensajes por encima. Nadie va a abrir un informe para descubrirlo. Por eso conviene que las conversaciones no vivan en un móvil, sino en un sitio donde se pueda ver cuáles siguen sin respuesta; es la mitad de la que hablo en el inbox de WhatsApp.
Si solo vas a medir una de las cuatro, mide la cuarta. Es la única que se convierte en dinero y la única que te dice si el botón vale la pena.
¿Cómo sabes de qué campaña vino cada conversación?
Si llevas anuncios a WhatsApp, acá hay una trampa.
Ojo con los anuncios que llevan a WhatsApp. Un clic desde un anuncio click-to-WhatsApp no pasa por tu web, así que no genera sesión, no arrastra UTM y no aparece en GA4 por mucho que mires. Lo que sí viaja es el mensaje de referencia que la plataforma adjunta a la primera conversación.
Traducido: la campaña de origen la tienes que leer de ese mensaje y guardarla tú en el contacto. Si esperas a verla en Analytics, no va a llegar.
Lo que sí existe es el objeto de referencia que Meta adjunta al primer mensaje de una conversación que empieza desde un anuncio, y que llega por webhook con el identificador del anuncio de origen. Eso es lo que hay que leer y guardar en la ficha del contacto en el momento en que entra, porque en el segundo mensaje ya no está.
De ahí para adelante es medición de campañas normal, la misma lógica que cuento en cómo medir el impacto de tus campañas. Y si estás montando ahora los anuncios, la mecánica de los formatos está en la guía de WhatsApp Ads.
Dónde encaja un CRM en todo esto
Las etapas 1 y 2 se resuelven con GTM y con tu bandeja. Las dos que se pierden —quién contestó y qué pasó después— necesitan que la conversación deje rastro en algún sitio que no sea el móvil de un comercial.
En Clientify, las conversaciones de WhatsApp entran en un inbox compartido y quedan colgadas de la ficha del contacto, con su origen y su historial. Cuando una de esas conversaciones se convierte en oportunidad, ya no hay que reconstruir de dónde venía: está en el mismo sitio donde se cerró la venta.
¿Cuánto le cuesta a tu web ese botón?
Ninguno de los cinco artículos que medí menciona esto, y me parece raro, porque es lo primero que miro cuando alguien me pide instalar un widget.
Un enlace a wa.me con un icono es HTML y CSS: no pesa nada y no bloquea nada. Un widget de terceros es otra cosa. Es JavaScript que descargas de un dominio que no controlas, que puede traerse sus propias fuentes y sus propios iconos, y que se ejecuta en el hilo principal mientras el usuario espera.
Dos consecuencias concretas. Si el botón es visible sin hacer scroll y es grande, puede acabar siendo el elemento que define tu LCP, la métrica que mide cuándo aparece el contenido principal. Y si el script se carga sin diferir, compite por el hilo principal justo en el peor momento, cuando el usuario empieza a interactuar.
El arreglo casi siempre es el mismo: cargar el widget con defer, o esperar al primer scroll o a un par de segundos de inactividad para inyectarlo. El botón de WhatsApp no lo necesita nadie en el milisegundo cero.
Y mídelo. Pasa PageSpeed antes de instalarlo y otra vez después, con la misma URL y en móvil. Si el número se movió, ya sabes cuánto te está costando ese botón y puedes decidir con criterio en lugar de con fe.
El repaso de diez minutos, en orden
- Mira cómo está puesto tu botón. Clic derecho, «Inspeccionar». Si ves el enlace en tu DOM, tienes vía libre. Si estás dentro de un
iframe, salta al paso 5. - Pega el listener delegado en GTM como etiqueta de HTML personalizado, con activador de vista de página. Un solo bloque cubre todos los botones del sitio.
- Crea el activador de evento personalizado con el nombre exacto que hayas puesto en el
pushy cuélgale una etiqueta de evento de GA4. - Comprueba en el modo vista previa que el evento sale al pulsar, y solo al pulsar. Después ábrelo en los informes en tiempo real de GA4.
- Márcalo como evento clave en GA4. Hasta que no lo hagas no cuenta como conversión ni se puede importar a Google Ads.
- Apunta en el calendario una revisión a 30 días. Los widgets se actualizan, los constructores reescriben el HTML y las etiquetas se caen sin avisar a nadie.
Si haces solo una cosa hoy, que sea el paso 2: pega el listener, comprueba en vista previa que el evento sale, y déjalo corriendo. Dentro de un mes vas a tener el primer dato real de cuánta gente quiere hablar contigo, y podrás decidir lo demás con eso encima de la mesa.
Preguntas frecuentes
¿Un clic en el botón de WhatsApp cuenta como conversión?
Cuenta si tú decides que cuente. En GA4 un clic solo se convierte en conversión cuando lo marcas como evento clave. Aun así, mide intención, no venta: entre el clic y la oportunidad hay dos etapas más que Analytics no ve, y conviene medirlas por separado.
¿Cómo envío el clic del botón de WhatsApp a Google Analytics 4?
Con tres piezas: un dataLayer.push con el nombre del evento cuando alguien pulsa, un activador de evento personalizado en Google Tag Manager que escuche ese nombre, y una etiqueta de evento de GA4 colgada de ese activador. Después márcalo como evento clave en GA4 para que cuente.
¿Puedo saber de qué campaña vino cada conversación de WhatsApp?
Sí, pero no desde Analytics. Un anuncio click-to-WhatsApp no pasa por tu web, así que no genera sesión ni arrastra UTM. Lo que llega es un mensaje de referencia adjunto a la primera conversación, con el anuncio de origen: hay que leerlo y guardarlo en el contacto.
¿El widget de WhatsApp ralentiza mi web?
Depende de cómo esté puesto. Un enlace wa.me es HTML y no pesa nada. Un widget de terceros carga JavaScript externo y puede retrasar el renderizado. Si el botón aparece arriba del todo, además entra en el cálculo del LCP: mídelo antes y después de instalarlo.
¿Necesito Google Tag Manager para medir el botón de WhatsApp?
No es obligatorio: puedes llamar a gtag directamente desde el código de tu web. Pero con Tag Manager cambias la medición sin tocar la plantilla ni pedir un despliegue, y tienes el modo vista previa para comprobar que el evento sale antes de darlo por bueno.
Que ninguna conversación se quede sin dueño
Prueba Clientify gratis, sin tarjeta. Inbox compartido de WhatsApp, cada conversación colgada de su contacto y la oportunidad en el mismo sitio donde se cierra la venta.
Probar Clientify gratis