ctwa_clid es un identificador de clic que Meta puede incluir en el referral
del primer mensaje que inicia una conversación desde un anuncio
Click-to-WhatsApp. Se captura en el webhook de WhatsApp, se vincula al lead y
permite reportar resultados posteriores, siempre que exista una conversión real
validada.
Si tu reporte sólo muestra «conversaciones iniciadas», no sabes todavía qué anuncio generó un lead calificado, una oportunidad o una venta. El problema no se resuelve agregando otra etiqueta a la web: en un anuncio Click-to-WhatsApp, la persona puede pasar del anuncio al chat sin visitar tu sitio.
Este artículo explica qué señal trae Meta, cómo conservarla y en qué momento debe convertirse en un evento de negocio. No es una promesa de atribución perfecta: es una forma de evitar que una venta real termine atribuida por una suposición.
El chat que no pasa por tu sitio
GA4, el píxel y Google Tag Manager ven actividad de una página web. Un anuncio Click-to-WhatsApp puede abrir una conversación directamente en WhatsApp; si no hay visita, no hay URL que leer, cookie que guardar ni evento web que disparar.
Eso no significa que el origen sea imposible de conocer. Cuando la conversación
se inicia desde un anuncio elegible, WhatsApp Business Platform puede enviar los
datos de procedencia dentro del webhook de mensajes. Entre ellos está
ctwa_clid, que Meta describe como un identificador personal y único por clic.
La guía de Business Messaging indica que se obtiene del objeto referral y que
debe guardarse con la conversación. Documentación de Meta sobre Business
Messaging.
La consecuencia práctica es simple: el dueño de esta señal es tu integración de WhatsApp y tu backend, no el contenedor GTM del sitio.
Figura 1. Del anuncio a la señal de negocio. Cada etapa aporta evidencia, pero un clic o un chat no demuestran por sí mismos una venta.
ctwa_clid: el identificador del clic en el anuncio Click-to-WhatsApp
ctwa_clid identifica el clic que llevó a una persona desde un anuncio
Click-to-WhatsApp hacia una conversación. Meta puede incluirlo en el objeto
referral del webhook del mensaje. El payload real depende de la versión de
API y del tipo de mensaje, pero el patrón relevante es este:
{
"messages": [
{
"id": "wamid.ejemplo-primer-mensaje",
"from": "<identificador-del-contacto>",
"timestamp": "1767312000",
"referral": {
"source_type": "ad",
"source_id": "<id-del-anuncio>",
"headline": "<titulo-del-anuncio>",
"ctwa_clid": "<identificador-de-clic-de-meta>"
}
}
]
}
El ejemplo usa valores ficticios. No publiques payloads, números ni IDs reales de una cuenta de cliente. Meta mantiene un ejemplo de mensaje desencadenado por un anuncio Click-to-WhatsApp en su colección oficial de WhatsApp Cloud API. Revísalo aquí.
Antes de diseñar automatizaciones, prueba el flujo completo con un anuncio y
un contacto de prueba. Confirma que tu endpoint recibe el campo messages,
que el objeto referral se conserva antes de transformar el payload y que el
primer mensaje queda asociado al lead correcto.
Alcance de cada campo
| Dato | Origen | Para qué sirve | Lo que no demuestra |
|---|---|---|---|
ctwa_clid |
referral del webhook |
Vincular un resultado posterior al clic de un anuncio CTWA cuando Meta lo proporciona | Que toda conversación de WhatsApp provino de publicidad |
source_id |
referral del webhook |
Conservar el identificador del anuncio o publicación de origen | Que hubo una venta o un lead calificado |
| ID de mensaje / conversación | Webhook y CRM | Evitar duplicados y rastrear la cadena de eventos | La calidad comercial del lead |
| Estado «ganado» o pago confirmado | CRM, ERP o sistema de cobro | Decidir que ocurrió una conversión real | El origen publicitario si no existe señal de referral |
La ausencia de referral no es una invitación a inventar una atribución. Puede
tratarse de un mensaje orgánico, de un flujo no cubierto por esa señal o de un
problema de implementación que debes diagnosticar.
Figura 2. Diagnóstico ante una señal ausente. La falta de referral exige
revisar el flujo; no permite clasificar el resultado por cercanía temporal.
Modelo mínimo para conservar la señal
No basta con copiar el ID a una nota libre del CRM. Necesitas una relación que puedas consultar cuando el contacto avance de etapa. Como mínimo, conserva:
- el
ctwa_clidtal como lo entrega Meta; - el ID del mensaje o conversación que lo recibió;
- un identificador interno del lead o contacto;
- fecha y hora de recepción;
source_typeysource_idsi llegaron;- el estado de procesamiento, para saber si ya se guardó o se reenviaron eventos posteriores.
El diseño debe ser idempotente: si Meta reintenta un webhook o tu servidor procesa dos veces la misma entrega, no debes crear dos leads ni dos eventos de venta. Esta es una recomendación de arquitectura basada en práctica de campo; el mecanismo concreto puede ser una clave única por ID de mensaje o una tabla de eventos procesados.
También minimiza los datos. ctwa_clid es un identificador que Meta trata como
dato personal en su documentación de parámetros de cliente; no lo hashees si
la especificación pide enviarlo sin hash, y no lo combines con más datos de los
necesarios para el propósito de medición. Parámetros de información de cliente
de Meta.
Enviar la conversión real a Meta por CAPI
La llegada del webhook confirma una señal de origen. No confirma una venta. Primero tu proceso comercial debe definir qué resultado cuenta: por ejemplo, lead aceptado, oportunidad calificada, pago aprobado o contrato firmado.
Cuando ese resultado ocurra dentro de la conversación atribuida, tu integración puede enviar el evento correspondiente a Conversions API para Business Messaging. El cuerpo mínimo sigue esta estructura; todos los valores son ficticios y deben sustituirse por los que correspondan a tu dataset, WABA y evento de negocio:
{
"data": [
{
"event_name": "Purchase",
"event_time": "<timestamp-unix-de-la-conversion-real>",
"action_source": "business_messaging",
"messaging_channel": "whatsapp",
"user_data": {
"whatsapp_business_account_id": "<id-de-la-waba>",
"ctwa_clid": "<ctwa-clid-recibido-en-el-webhook>"
}
}
]
}
action_source expresa que la conversión ocurrió en mensajería de negocio;
messaging_channel identifica WhatsApp; y user_data conserva tanto la WABA
como el identificador de clic recibido. No es un parámetro suelto en el evento.
La configuración de dataset y la autorización de la cuenta deben corresponder
a la misma integración. Ejemplo oficial de Business
Messaging.
Usa la hora real de la conversión como event_time. No reutilices la hora del
clic ni la alteres para que el evento parezca más reciente. Meta especifica que
event_time puede ser como máximo siete días anterior al momento de enviar el
evento. Ese es un límite de aceptación de la API, no una garantía de que todos
los resultados ocurridos en siete días serán atribuidos a una campaña.
Límite de antigüedad de event_time.
La guía de implementación recomienda enviar señales en tiempo real o dentro de una hora; demoras mayores a dos horas pueden perjudicar la optimización y, a partir de 24 horas, pueden causar problemas importantes de atribución y entrega. Por eso «todavía estoy dentro de los siete días» no es una estrategia de medición. Frescura de datos en la implementación de CAPI.
Matriz de evidencia: qué puedes afirmar en cada etapa
| Etapa | Evidencia mínima | Afirmación válida | Afirmación que aún no corresponde | Acción siguiente |
|---|---|---|---|---|
| Clic en el anuncio | ctwa_clid válido recibido en referral |
Hubo una señal de origen asociada a un clic CTWA | Que la persona se convirtió o compró | Asociar la señal al mensaje y al lead interno |
| Conversación iniciada | ID de mensaje/conversación y lead persistidos | Existe una conversación trazable con una señal de origen | Que el lead es calificado | Procesar reintentos sin duplicar registros |
| Resultado comercial | Etapa CRM, pago o contrato confirmado por el sistema fuente | Ocurrió el evento de negocio definido por la empresa | Que Meta lo reportará o atribuirá necesariamente | Preparar un único evento CAPI con hora real |
| Evento enviado | Respuesta y registro de CAPI | Se envió un evento de Business Messaging a Meta | Que el reporte final ya refleja causalidad o ROI definitivo | Revisar diagnóstico, reporting y configuración de atribución |
Errores que rompen la atribución
Buscar el ID en el sitio web
Un tracker web sirve para clics que pasan por el sitio. No puede capturar un identificador que Meta entrega dentro de una conversación de WhatsApp. El webhook debe ser el punto de captura.
Guardarlo sin una clave de conversación
Si un mismo contacto conversa por varios canales o vuelve meses después, una nota sin ID de mensaje, fecha ni estado no permite saber qué conversión corresponde a qué origen. Guarda una relación trazable y procesa reintentos de forma idempotente.
Atribuir por última interacción cuando falta referral
Las UTMs, la última fuente de GA4 o una ventana temporal pueden servir para análisis complementarios, pero no reemplazan la señal de WhatsApp. Si el referral no existe, repórtalo como ausencia de señal o investiga el flujo; no lo declares CTWA sin evidencia.
Duplicar el mismo evento de negocio
Una venta puede activar varios procesos: cambio de etapa, factura, pago y actualización manual. Define un evento de negocio, un ID de deduplicación y una regla clara para reenviar sólo cuando cambie algo relevante.
Confundir la ventana de envío con la ventana de atribución
Los siete días aplican a la antigüedad aceptada de event_time frente al envío
de CAPI. No describas ese requisito de API como una promesa universal sobre
ventanas de campaña, reporting o ROI.
Checklist de implementación
- Confirma que el número y la cuenta están integrados con WhatsApp Business Platform y que el endpoint recibe mensajes.
- Ejecuta un anuncio y un mensaje de prueba; guarda un payload redactado para depurar, nunca uno de producción en un repositorio compartido.
- Verifica que
referral.ctwa_clid, el ID de mensaje y el lead interno queden asociados en almacenamiento persistente. - Haz idempotente el procesamiento de webhook y registra los fallos de forma segura.
- Define en CRM/ERP qué significa una conversión y qué sistema es la fuente de verdad para decidirlo.
- Envía el evento CAPI con el tiempo real, los parámetros requeridos y la configuración de Business Messaging adecuada.
- Prueba una conversión controlada, revisa la respuesta de API y documenta el resultado antes de automatizar campañas completas.
- Revisa periódicamente permisos, versiones de API, privacidad y retención de datos.
Preguntas frecuentes
¿ctwa_clid es una cookie?
No. Es un identificador de clic que Meta puede exponer en el referral de un
mensaje de WhatsApp originado por un anuncio CTWA. No depende de que una página
web haya cargado ni de la cookie _ga.
¿Llega en todas las conversaciones de WhatsApp?
No debes asumirlo. Sólo úsalo cuando el webhook recibido contiene una referencia válida; los mensajes orgánicos o los flujos sin referral requieren otro tratamiento de medición.
¿Se puede enviar una conversión siete días después?
Meta acepta un event_time de hasta siete días antes del momento de envío de
un evento CAPI. Eso no elimina la recomendación de enviar en tiempo real ni
define por sí solo la ventana de atribución de una campaña.
¿Reemplaza el consentimiento o las políticas de privacidad?
No. Es una señal técnica de atribución. La organización sigue siendo responsable de definir una base adecuada para tratar datos, informar a las personas y proteger el webhook y el CRM.
Cierra el circuito sin inventar datos
ctwa_clid es útil porque une un clic publicitario con una conversación cuando
la propia plataforma entrega esa referencia. Conserva la señal desde el primer
mensaje, valida la conversión en tu sistema comercial y envía el evento a Meta
sin falsificar fechas ni rellenar vacíos con una ventana temporal.
¿Tus anuncios llevan a WhatsApp y no puedes relacionar leads con ventas? Solicita una auditoría de atribución para revisar el webhook, el CRM y el flujo de eventos de punta a punta.