DoubleTick DoubleTick

Click-to-WhatsApp · Atribución · Argentina

Anuncios de clic a WhatsApp: cómo saber qué anuncio trajo la venta

No hace falta inventar nada ni ponerle UTM al anuncio: Meta ya te manda el ID del anuncio adentro del primer mensaje. Cuando alguien toca un anuncio de clic a WhatsApp, el mensaje que entra al webhook trae un objeto referral con el source_id (el Ad ID), el titular, el texto del aviso y el ctwa_clid, que es la llave de atribución. El problema real no es que falte el dato: es que casi ningún CRM lo guarda, y cuando lo guarda no lo devuelve. Para cerrar el círculo hay que hacer dos cosas: persistir el ctwa_clid apenas entra, y devolverle a Meta el evento de venta por la Conversions API for Business Messaging — que además es lo único que habilita optimizar por compra en vez de por "conversación iniciada".

Actualizado: 9 de septiembre de 2026 · Verificado contra la documentación oficial de Meta · DoubleTick

Lo que Meta ya te está mandando (y nadie lee)

Cuando una persona toca un anuncio de clic a WhatsApp y manda el mensaje, el webhook de mensaje entrante trae un objeto referral. Meta aclara que ese objeto se incluye únicamente si el mensaje se envió a través de un anuncio de clic a WhatsApp. Estos son sus campos:

source_id

El Ad ID. Es tu llave para unir la conversación con el anuncio exacto, sin depender de nada más.

ctwa_clid

El click ID del anuncio de clic a WhatsApp. Es lo que se le devuelve a Meta en el evento de conversión. No se hashea.

source_url

La URL del anuncio: un enlace corto de tipo fb.me, no una URL con parámetros. Por eso los UTM acá no aplican.

headline

El titular del anuncio, tal cual. Sirve para agrupar por ángulo creativo sin consultar la API.

body

El texto principal del aviso. Mismo uso que el titular: te dice con qué mensaje entró esa persona.

media_type / image_url / video_url

Qué creativo vio: imagen o video, con su URL. Útil para atribuir rendimiento a la pieza.

welcome_message.text

El mensaje prellenado que el anuncio le puso en la boca al usuario. Se puede usar como etiqueta por anuncio.

source_type

Siempre vale "ad". Es la marca de que esa conversación nació de un anuncio y no de un contacto orgánico.

Con esto solo ya podés responder la pregunta del título. No es un problema de herramientas: es un problema de plomería. El dato llega a tu endpoint y se descarta si nadie lo persiste en la ficha del contacto en el mismo momento en que entra.

En CTWA no se ponen UTM (y está bien)

Es una de las preguntas más frecuentes y la respuesta corta es que no aplica. La documentación de creación de anuncios de clic a WhatsApp no contempla parámetros de URL ni UTM: el creativo apunta a una URL de WhatsApp y el número de destino sale del conjunto de anuncios, así que no hay una página propia donde colgar parámetros. El source_url que llega es un enlace corto de tipo fb.me, sin parámetros.

El reemplazo es mejor que un UTM: llega el Ad ID crudo. Un UTM lo escribe una persona y se equivoca; el source_id lo pone Meta y es exacto.

El agujero que no aparece en ningún reporte

Los anuncios en Estados de WhatsApp no traen click ID

Está escrito en la documentación de webhooks de Meta, en una sola línea que casi nadie cita: el ctwa_clid se omite por completo para los mensajes originados en un anuncio en Estados de WhatsApp.

Es decir: la conversación entra, el referral llega, pero falta la llave. Esos leads existen, se atienden y a veces compran, pero no se pueden devolver a Meta como conversión por la Conversions API. Y como las ubicaciones vienen en automático por defecto, hay anunciantes con una porción de su inversión cayendo ahí sin saberlo.

Qué hacer: mirar el desglose por ubicación antes de sacar conclusiones sobre rendimiento, y si Estados pesa, usar el mensaje prellenado distinto por anuncio como etiqueta de respaldo — es la única atribución que sobrevive sin click ID.

La ventana gratis de 72 horas, bien contada

Se cuenta mal en todos lados. Meta documenta tres condiciones que cambian por completo cómo hay que operar.

⏱️

Arranca cuando respondés VOS

No cuando el usuario hace clic. Las 72 horas se cuentan "desde el momento en que respondiste". Si contestás 20 horas después, empezás con 20 horas ya quemadas de la ventana de servicio.

📱

Sólo desde la app Android o iOS

Meta aclara que "nuestras aplicaciones de escritorio y web no están soportadas". El lead que clickeó desde WhatsApp Web no abre la ventana gratis.

🔀

Son dos ventanas, no una

La ventana gratis de 72 h y la de atención al cliente de 24 h son independientes. Podés estar dentro de las 72 h gratis pero fuera de las 24 h de servicio: ahí sólo mandás plantillas.

Por qué esto se vuelve una decisión de plata en octubre de 2026

Meta documenta que a partir del 1 de octubre de 2026 empieza a cobrar los mensajes de servicio —que no se cobraban desde noviembre de 2024— y los mensajes de utilidad enviados dentro de la ventana de atención de 24 horas. Al mismo tiempo confirma que los mensajes dentro de la ventana gratis de 72 horas de los anuncios de clic a WhatsApp siguen sin costo de entrega.

Traducción: esa ventana pasa a ser casi la única mensajería gratis que queda. Responder rápido deja de ser una buena práctica de atención y se convierte en una variable de costo directa.

🟢 Dato propio, medido: sobre las cuentas de WhatsApp Business que administramos, en 2026 pasaron más de 520.000 mensajes en Argentina y sólo 49 fueron pagos. El resto entró por esta ventana gratis. Es nuestra medición sobre nuestras cuentas —no un promedio de mercado—, y es la mejor ilustración de por qué el clic a WhatsApp tiene una economía distinta de la del envío masivo.

Cerrar el círculo: devolverle la venta a Meta

Capturar el ctwa_clid sirve para reportar. Lo que cambia el resultado de la campaña es devolvérselo a Meta con el evento de negocio: la Conversions API for Business Messaging. Se manda un evento al dataset con action_source: business_messaging, messaging_channel: whatsapp, el ID de la cuenta de WhatsApp Business y el click ID guardado.

Los eventos que soporta

Purchase, LeadSubmitted, QualifiedLead, InitiateCheckout, AddToCart, ViewContent, OrderCreated, OrderShipped, OrderDelivered, OrderCanceled, OrderReturned, CartAbandoned, RatingProvided y ReviewProvided.

Para una concesionaria el mapeo natural es LeadSubmitted (dejó los datos) → QualifiedLead (calificó: vehículo y forma de pago) → Purchase (boleto firmado, con valor y moneda).

Por qué vale la pena de verdad

No es por el reporte. Meta lo dice explícito: la Conversions API habilita el acceso a la optimización por compra para los anuncios que llevan a Messenger y a WhatsApp.

Sin eso, tu campaña optimiza por conversación iniciada: el algoritmo va a buscar gente que abra chats, no gente que compre. Con eso, va a buscar compradores.

⚠️ Dos trampas de implementación

El ctwa_clid NO se hashea. Está marcado como "no hashear" en la documentación de parámetros, a diferencia del mail y el teléfono que sí van con SHA-256. Si lo hasheás no da error: simplemente deja de atribuir, en silencio.

La deduplicación es tuya. Textual de Meta: no asiste con la deduplicación de eventos para esta API, "por lo que recomendamos encarecidamente a los anunciantes deduplicar antes de enviarlos". Acá no hay event_id que te salve como en la CAPI de web.

Por qué el Administrador y tu CRM nunca dan igual

No es que uno esté mal: miden cosas distintas. Cuatro causas, todas documentadas.

La métrica de Meta dedupea, tu CRM no

El nombre técnico de la métrica es literalmente onsite_conversion.messaging_conversation_started_7d. El sufijo _7d está en el nombre del campo que publica Meta: la métrica agrupa por ventana. Tu CRM, en cambio, cuenta conversaciones. Son dos definiciones distintas del mismo hecho, así que nunca van a dar igual.

Los webhooks se reintentan hasta 7 días

Meta lo documenta: si tu endpoint no devuelve 200, reintenta con frecuencia decreciente hasta 7 días, y manda los reintentos a todas las apps suscriptas, lo que "puede resultar en notificaciones de webhook duplicadas". Un CRM que no dedupea por message.id infla los leads — y con fecha corrida.

Meta NO deduplica lo que vos le mandás

Es lo contrario de la CAPI de web, donde el event_id y el Pixel deduplican solos. Textual de Meta para business messaging: no asiste con la deduplicación de eventos, "por lo que recomendamos encarecidamente a los anunciantes deduplicar antes de enviarlos". Si mandás el mismo evento dos veces, cuenta dos veces.

La fecha depende de cómo preguntes

Meta expone un parámetro action_report_time con dos modos. Si alguien vio el anuncio el 1 y convirtió el 2: con action_report_time=impression la conversión aparece el día 1; con action_report_time=conversion aparece el día 2. Sólo esto ya explica buena parte del "el CRM dice 40 el martes y el Administrador dice 31".

La salida no es hacerlos coincidir —no van a coincidir— sino elegir cuál es el número de gestión y usar siempre el mismo. Nuestra recomendación: el del CRM para decidir plata, porque es el único que sabe si el lead compró; el del Administrador para leer tendencia de entrega.

Si atendés desde el celular: el caso de la coexistencia

Es el escenario típico de la concesionaria: el vendedor contesta desde su teléfono con la app de WhatsApp Business, y el número también está conectado al API oficial. Meta documenta que cada vez que el negocio manda un mensaje desde esas apps se dispara un webhook smb_message_echoes, no un mensaje saliente de la API.

La consecuencia es concreta: si tu integración no procesa ese webhook, tu sistema cree que nadie contestó. Los tiempos de respuesta, las tasas de atención y los reportes de "conversaciones sin responder" quedan todos mal medidos, y en el sentido más caro posible: te muestran un problema de atención que no existe, o te esconden uno que sí.

Hay además un límite duro que conviene conocer: los mensajes enviados desde clientes complementarios no soportados no disparan webhooks de mensajes, así que directamente no existen para tu CRM. Cómo conectar el número sin perderlo está en la página de coexistencia.

Lo que circula y no pudimos confirmar

Esta sección existe porque en este tema hay mucho número repetido sin fuente. Si algo de lo siguiente aparece en una propuesta que te presentan, pedí la URL de Meta.

"El ctwa_clid vale 7 días"

Lo repiten al menos seis proveedores de plataformas de WhatsApp, ninguno citando una URL de Meta. Revisamos la guía de la Conversions API for Business Messaging, la de onboarding, el FAQ completo, la doc de parámetros y la de eventos automáticos: Meta no publica una ventana de atribución para este producto. Lo único verificable es que el nombre del action type de conversaciones lleva el sufijo _7d, que es otra cosa.

"WhatsApp tiene 98% de apertura"

No hay estudio primario detrás. Además la métrica base es parcialmente inobservable, porque la confirmación de lectura se puede desactivar. Lo que sí tiene metodología publicada da bastante más abajo, y de todos modos la apertura de plantillas no dice nada sobre el rendimiento de un anuncio de clic a WhatsApp.

"Con el Pixel se atribuye CTWA"

La documentación de Meta que se suele citar para esto no habla de CTWA: mide cuántos visitantes de una página hicieron clic en el botón de alta integrada. Es tracking del flujo de onboarding para proveedores, no atribución de conversaciones a anuncios.

"Las conversaciones iniciadas son leads"

Falso por diseño. Una conversación iniciada no implica un dato de contacto, ni una intención, ni una calificación. Es el primer mensaje. Tratarla como lead infla el numerador y hace que el costo por lead que reportás no se parezca al que tu negocio experimenta.

Lo dejamos medido de punta a punta

Todo lo de esta página es plomería: capturar el referral en el primer mensaje, guardarlo en la ficha del contacto, deduplicar por message.id, procesar los echoes de coexistencia y devolverle a Meta el evento cuando el lead avanza. Es trabajo de integración, no de configuración — y es exactamente lo que corre en nuestro bot y CRM de ventas sobre cuentas reales todos los días.

Preguntas frecuentes sobre medir anuncios de clic a WhatsApp

¿Cómo sé qué anuncio trajo cada conversación de WhatsApp?+

Por el objeto referral que Meta incluye en el mensaje entrante cuando la persona vino de un anuncio de clic a WhatsApp. Ese objeto trae el source_id, que es el ID del anuncio, más el titular, el texto y el creativo que vio, y el ctwa_clid, que es el identificador de clic. Con el source_id ya podés atribuir la conversación al anuncio exacto sin ninguna herramienta extra. Lo único que hace falta es que tu sistema lea el webhook y guarde esos campos en la ficha del contacto en el momento en que entra el primer mensaje.

¿Se le pueden poner UTM a los anuncios de clic a WhatsApp?+

No, y no hace falta. La documentación de creación de anuncios de clic a WhatsApp no contempla url_tags ni parámetros UTM: el creativo apunta a una URL de WhatsApp y el número sale del promoted_object del conjunto, así que no hay una URL de destino propia donde colgar parámetros. El reemplazo es mejor que un UTM: Meta te manda el Ad ID directamente adentro del webhook, en referral.source_id.

¿El ctwa_clid llega en todos los mensajes?+

No. Viene pegado al mensaje generado por el toque en el anuncio, así que la práctica correcta es persistirlo apenas entra y no asumir que va a volver en los mensajes siguientes. Aclaración honesta: que llegue únicamente en el primer mensaje es una regla que repiten muchos proveedores, pero no la encontramos escrita así en la documentación de Meta. Por eso lo planteamos como precaución de implementación y no como cita oficial: guardalo en el primer mensaje y no dependas de que reaparezca.

¿Hay anuncios de clic a WhatsApp que no se pueden atribuir?+

Sí, y es un agujero silencioso. Meta documenta que el campo ctwa_clid se omite por completo en los mensajes que se originan en un anuncio en el placement de Estados de WhatsApp. En esos casos llega el referral pero sin la llave de atribución, así que esos leads no se pueden reportar por la Conversions API. Si dejaste las ubicaciones en automático, es probable que una parte de tu inversión esté cayendo ahí sin que lo sepas. Se resuelve mirando el desglose por ubicación y decidiendo a conciencia, no por defecto.

¿Qué es la Conversions API for Business Messaging y para qué sirve?+

Es el camino oficial para devolverle a Meta lo que pasó adentro de la conversación. Se hace un POST al endpoint de eventos del dataset con action_source igual a business_messaging, messaging_channel igual a whatsapp, el ID de la cuenta de WhatsApp Business y el ctwa_clid que capturaste. Los eventos soportados incluyen Purchase, LeadSubmitted, QualifiedLead, InitiateCheckout, AddToCart y varios de gestión de pedidos. Lo importante no es el reporte: según Meta, la Conversions API es lo que habilita el acceso a la optimización por compra para los anuncios de clic a WhatsApp y a Messenger. Sin eso, tus campañas optimizan por conversación iniciada, que es un proxy mucho más pobre que una venta.

¿El ctwa_clid se hashea como el mail y el teléfono?+

No, y es un error de implementación muy común. En la documentación de parámetros de la Conversions API, el ctwa_clid está marcado explícitamente como "no hashear". Es contraintuitivo porque el resto de los campos de user_data, como el mail o el teléfono, sí van hasheados con SHA-256. Si lo hasheás, Meta no puede unir el evento con el clic y la atribución se pierde en silencio: no da error, simplemente no atribuye.

¿Cómo funciona realmente la ventana gratis de 72 horas?+

Distinto de como se cuenta. Meta documenta tres cosas que casi nadie junta. Primero: la ventana no se abre cuando el usuario hace clic, se abre cuando vos respondés, y las 72 horas se cuentan desde ese momento. Si contestás veinte horas después, arrancás con veinte horas perdidas. Segundo: sólo aplica si la persona escribió desde la app de Android o iOS; Meta aclara que las aplicaciones de escritorio y web no están soportadas, así que el lead que clickeó desde WhatsApp Web no abre ventana gratis. Tercero: la ventana gratis de 72 horas y la ventana de atención al cliente de 24 horas son independientes, así que podés estar dentro de las 72 horas gratis pero fuera de las 24 de servicio, y ahí sólo podés mandar plantillas.

¿Por qué el Administrador de anuncios dice menos conversaciones que las que veo en el CRM?+

Por cuatro razones documentadas que se suman. La métrica de Meta se llama messaging_conversation_started_7d y agrupa por ventana, mientras tu CRM cuenta conversaciones sueltas. Los webhooks se reintentan hasta siete días y pueden llegar duplicados, lo que infla el conteo del CRM. Meta no deduplica los eventos que vos le mandás, así que un envío repetido cuenta doble de su lado. Y la fecha en la que aparece una conversión depende de si consultás por momento de impresión o por momento de conversión. No es que uno de los dos números esté mal: están midiendo cosas distintas, y hay que decidir cuál es el número de gestión.

¿Qué pasa con la atribución si atiendo desde el celular con coexistencia?+

Cambia el instrumento. En coexistencia, cuando el negocio contesta desde la app de WhatsApp Business del teléfono, ese mensaje no sale como mensaje de la API: dispara un webhook smb_message_echoes. Si tu integración no procesa ese webhook, tu sistema cree que nadie contestó, y todos tus tiempos de respuesta y tus tasas de atención quedan mal medidos. Hay además un caso duro documentado: los mensajes enviados desde clientes complementarios no soportados no disparan webhooks, así que directamente no existen para tu CRM.

¿Sirve poner un mensaje prellenado distinto en cada anuncio?+

Sí, y es el mejor plan B que hay. El creativo del anuncio define un mensaje de bienvenida prellenado; si le ponés un texto distinto a cada anuncio o a cada ángulo, el primer mensaje entrante es en sí mismo la etiqueta del anuncio, sin depender de ningún identificador. Es la única técnica que sigue funcionando en el placement de Estados, donde no hay ctwa_clid. Aclaración: esto es una técnica derivada del funcionamiento documentado, no una recomendación publicada por Meta.

¿Va a cambiar algo en el costo de las conversaciones de WhatsApp?+

Sí, y afecta directo a la economía de estos anuncios. Meta documenta que a partir del 1 de octubre de 2026 empieza a cobrar los mensajes de servicio, que no se cobraban desde noviembre de 2024, y los mensajes de utilidad enviados dentro de la ventana de atención de 24 horas. Al mismo tiempo confirma que los mensajes enviados dentro de la ventana gratis de 72 horas que abren los anuncios de clic a WhatsApp siguen sin costo de entrega. La conclusión práctica es fuerte: esa ventana pasa a ser casi la única mensajería gratis que queda, y responder rápido deja de ser una buena práctica para convertirse en una decisión de costo.

Fuentes

Todo lo citado sale de documentación oficial de Meta para desarrolladores, verificada el 9 de septiembre de 2026: la referencia de webhooks de mensajes de WhatsApp (objeto referral y la omisión del ctwa_clid en Estados), la guía de la Conversions API for Business Messaging, la documentación de parámetros de la Conversions API, la referencia de ads-action-stats e insights de la Marketing API, la página de precios de WhatsApp y su anexo de mensajes que no son plantilla, la guía de secuencias de mensajes de bienvenida y la documentación de alta integrada para usuarios de la app de WhatsApp Business. Cuando algo no está escrito por Meta —como la ventana de atribución de estos eventos— esta página lo dice en vez de completarlo con lo que repite el mercado.

Seguí explorando

Dejá de optimizar por "conversación iniciada"

Capturamos el clic, lo seguimos hasta la venta y se lo devolvemos a Meta. Tus campañas empiezan a buscar compradores, no chats.