## Visión general

La plataforma ya **captura** el tráfico pago: los anuncios click-to-WhatsApp (CTWA) y los leads de
formularios de anuncio (leadgen) llegan atribuidos a su campaña de origen. El **seguimiento de
conversiones** es el otro lado de ese ciclo: **envía de vuelta a Meta** los eventos que ocurren
después — un lead capturado, el primer contacto, una venta cerrada — mediante la **Conversions API
(CAPI)**.

Con esto, Meta optimiza las campañas por los resultados reales (no solo por el clic) y tú mides el
**costo por conversión** y el **retorno de la inversión** con datos reales.

Puntos clave:

- La configuración es **por bandeja de entrada** (cada inbox de WhatsApp/anuncios tiene su propio
  destino).
- Los eventos se deduplican con un **identificador determinístico** — la misma venta nunca se cuenta
  dos veces.
- El **token nunca aparece** en la interfaz (solo su presencia y los 4 últimos caracteres).
- Hoy el proveedor activo es la **Meta Conversions API**; Google Ads y TikTok existen como estructura
  preparada, pero aún no envían eventos.

> La captura (CTWA/leadgen) y la conversión son módulos distintos. Este artículo trata solo del envío
> de eventos de vuelta a Meta. Para la captura y la atribución, consulta el artículo de
> Ads/CTWA/leadgen.

## Requisitos previos

- Módulo **opt-in**: tu cuenta necesita la flag `ads_conversion_tracking` habilitada. Es **diferente**
  de la flag de captura (`growth_ads`) — puedes tener la captura sin el envío de conversiones.
- **Permiso de administrador** (toda la configuración y el disparo manual son solo para admin).
- Una **bandeja de entrada de WhatsApp Cloud** con la **cuenta de WhatsApp Business (WABA)** y un
  **token de Meta** con permiso para la Conversions API. Las bandejas de WhatsApp Web, 360dialog o
  Twilio no tienen WABA — en esos casos el **Dataset ID** y el **token** se ingresan manualmente.
- **Dark-ship**: al crearse, la configuración nace **apagada** (`enabled` = falso). No se envía nada
  hasta que actives el interruptor — a propósito, para que valides antes.

## Paso a paso

1. Abre la **Configuración del Inbox** de la bandeja deseada y ve a la pestaña **Conversiones**.
2. **Token**: marca **usar el token del canal** para reutilizar las credenciales de la propia bandeja
   (WhatsApp Cloud ya trae la WABA y un token utilizable). En canales sin WABA, pega el token de Meta.
3. **Dataset ID**: haz clic en **descubrir automáticamente** — la plataforma consulta la WABA en el
   Graph y completa el Dataset ID por ti. En canales sin WABA, ingrésalo manualmente.
4. **Código de prueba**: ingresa el **test event code** (lo encuentras en el Administrador de Eventos
   de Meta, en *Eventos de prueba*).
5. **Ejecuta un evento de prueba**: la plataforma dispara **LeadSubmitted** y **Purchase** sintéticos
   directo a Meta, con el código de prueba. Confirma que aparecen en *Eventos de prueba* en el
   Administrador.
6. Solo **después** de que la prueba pase, **activa el interruptor** (`enabled`). A partir de ahí los
   eventos de ciclo de vida empiezan a enviarse de verdad.

> El evento de prueba **omite** el interruptor principal y los disparadores (existe justamente para
> validar el cableado antes de salir en vivo). Requiere un **código de prueba** y credenciales de Meta
> válidas.

## Configuración y opciones

**Disparadores de ciclo de vida** (cada uno activa/desactiva un evento):

| Opción | Evento enviado | Predeterminado |
| --- | --- | --- |
| `lead_on_capture` | `LeadSubmitted` cuando se captura el lead | Activado |
| `contact_on_first_message` | `ViewContent` en el primer mensaje del contacto | Desactivado |
| `purchase_on_won` | `Purchase` cuando el negocio se gana en el CRM | Activado |
| `purchase_on_payment` | `Purchase` cuando se confirma un pago | Activado |
| `custom_on_lost` | uno de los eventos admitidos, elegido en `lost_event_name` | Desactivado / sin evento |

- **Eventos admitidos por Meta para mensajería empresarial**: `LeadSubmitted`, `QualifiedLead`,
  `ViewContent`, `AddToCart`, `InitiateCheckout` y `Purchase`. Meta rechaza los nombres de la CAPI web
  (`Lead`, `Contact`, `Schedule`) y eventos personalizados como `Lead_Lost` en este flujo.
- **Mapa de etapa del CRM → evento** (`stage_event_map`): asocia una etapa del embudo a uno de esos seis
  eventos admitidos para reportar hitos intermedios más allá de ganado/perdido.
- **Advanced matching**: mejora la coincidencia enviando señales adicionales del usuario (siempre **con
  hash** — ningún dato personal en crudo sale de la plataforma).
- **Versión de la API** (`meta_api_version`, predeterminado `v25.0`) y **partner agent**
  (`meta_partner_agent`, predeterminado `Conversa Labs`): identifican tus llamadas en Meta.
- **Token write-only**: el token se **guarda y enmascara** — la interfaz solo muestra que existe y los
  4 últimos caracteres. Guardar con el campo en blanco **mantiene** el token almacenado; hay una
  acción explícita para **borrar** el token cuando sea necesario.

## Ledger y disparo manual

Cada intento de envío se convierte en **una fila del ledger de conversiones**, con el estado de la
entrega:

- `pending` (en proceso), `sent` (entregado a Meta), `failed` (falló) o `skipped` (ignorado).
- El ledger guarda solo el **cuerpo con hash / sin datos personales** que se envió, más la
  **respuesta** de Meta para depuración.
- Cada lead tiene su **ledger propio** — abre el lead y verás todos los eventos enviados por él.

**Disparo manual** (admin): en un lead puedes **forzar un evento** — por ejemplo, registrar un
`Purchase` de un lead que convirtió fuera del CRM. El disparo manual:

- usa un identificador determinístico por (evento, lead), así que **volver a hacer clic en el mismo
  evento deduplica** (no cuenta dos veces), pero **reintenta** si el intento anterior falló;
- solo acepta los seis eventos de mensajería empresarial indicados arriba; los valores legados `Lead` y
  `Contact` enviados a la API se convierten a `LeadSubmitted` y `ViewContent`;
- requiere que las **conversiones estén activadas** en la bandeja del lead.

## Informes

El informe de **Ads** trae las métricas de entrega de las conversiones, junto a la atribución:

- **Enviados** (`sent`), **fallidos** (`failed`) e **ignorados** (`skipped`).
- **Valor reportado** a Meta — la suma del valor de los eventos entregados (útil para verificar lo que
  realmente se devolvió como ingreso).

Los eventos `skipped` son esperables cuando un negocio **no tiene atribución de anuncio**: la
plataforma registra el evento como ignorado (visible en la central de leads) en lugar de enviar algo
sin origen.

## Proveedores

- **Meta Conversions API** — proveedor activo (v1). Envía eventos de business messaging (WhatsApp) al
  dataset de tu WABA, descubriendo el Dataset ID automáticamente cuando no se informa.
- **Google Ads** y **TikTok** — existen como **estructura preparada** en `provider_settings`, pero
  **no envían eventos** en esta versión. Permanecen apagados por defecto.

## Casos de uso

- Optimizar campañas de WhatsApp por el **lead capturado** y la **venta cerrada**, no solo por el clic.
- Devolver a Meta el **valor de la venta** para calcular el ROAS por campaña.
- Registrar manualmente un `Purchase` de un cliente que compró por un canal externo al CRM.
- Reportar hitos intermedios del embudo mapeando **etapas del CRM** a eventos de Meta.

## Consejos, límites y buenas prácticas

- **Prueba siempre primero**: ejecuta el evento de prueba y confírmalo en el Administrador de Eventos
  antes de activar el interruptor.
- **Idempotencia**: confía en la deduplicación determinística — ganado y pago de un mismo negocio
  colapsan en un único `Purchase` entregado.
- **Sin atribución = ignorado**: si ves muchos `skipped`, verifica que las conversaciones/leads lleguen
  realmente con la referencia del anuncio (una captura CTWA/leadgen saludable).
- **Seguridad del token**: nunca compartas el token; se guarda cifrado y nunca se muestra.
- El envío **nunca interrumpe el flujo**: una falla de entrega se registra en el ledger, no detiene la
  atención ni el CRM.

## Solución de problemas

- **`conversions_not_enabled`**: la flag `ads_conversion_tracking` está apagada para la cuenta, o el
  interruptor de la bandeja está apagado. Habilita la flag y activa la configuración del inbox.
- **Dataset no encontrado** (`no_conversions_dataset`): pulsa **Detectar o crear** otra vez. La operación
  es idempotente: devuelve el dataset existente o provisiona uno para la WABA. Si persiste, introduce el
  Dataset ID manualmente y revisa la versión de la Graph API.
- **Evento inválido** (`invalid_conversion_event`): elige uno de los seis eventos admitidos para
  mensajería empresarial. Meta no acepta eventos web ni nombres personalizados en este flujo.
- **`no_permission`**: el token no tiene alcance/validez para la Conversions API. Genera un token con
  el permiso correcto y rehaz la configuración.
- **El evento de prueba no aparece en el Administrador**: confirma el **test event code** correcto y
  que el token y la WABA pertenezcan a la misma cuenta publicitaria; revisa en *Eventos de prueba*.
- **Eventos saliendo como `skipped`**: el negocio no tiene atribución de anuncio — revisa la captura
  (CTWA/leadgen) antes del envío.

## Ver también

- [Ads, CTWA y leadgen con atribución](/hc/ajuda/articles/growth-marketing-ads-ctwa-leadgen-es)
- [Visión general del Growth & Marketing Studio](/hc/ajuda/articles/growth-marketing-overview-es)
- [Visión general de Pagos](/hc/ajuda/articles/payments-overview-es)