> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jelou.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Meta Ads

> Detecta cuándo una conversación de WhatsApp llega desde un anuncio de Meta (Click to WhatsApp) y usa esa atribución en tus flujos de Brain Studio.

Los anuncios **Click to WhatsApp (CTWA)** de Facebook e Instagram abren una conversación de WhatsApp cuando el usuario hace clic. Esta guía explica **cómo saber si un chat viene de un anuncio de Meta**: cuando la conversación se origina en un anuncio, Jelou inserta automáticamente en memoria un objeto `_referral` con los datos del anuncio de origen.

Con esa información puedes **atribuir el lead**, enrutar según la campaña, personalizar la primera respuesta o registrar el origen en tu CRM, sin cruzar datos manualmente entre Meta Ads Manager y el canal conversacional.

## Cómo funciona

Cuando un usuario hace clic en un anuncio **Click to WhatsApp**, WhatsApp se abre con un mensaje inicial y Meta adjunta a esa primera interacción los datos de referencia (*referral*) del anuncio. Jelou detecta esos datos y los inserta automáticamente en la memoria de la conversación bajo la variable `_referral`.

<Note>
  No se requiere ninguna instalación en el Marketplace. El objeto `_referral` se inyecta automáticamente en memoria siempre que la conversación se origine en un anuncio Click to WhatsApp.
</Note>

## Detectar si un chat viene de un anuncio

Para saber si una conversación llegó desde un anuncio de Meta, comprueba si existe la variable `_referral` en memoria. Cuando la conversación se origina en un anuncio, Jelou inserta el siguiente objeto:

```json theme={null}
{
  "_referral": {
    "source_url": "https://fb.me/XXXXX",
    "source_id": "120XXXXXXXXX387",
    "source_type": "ad",
    "body": "BODY_CONTENT",
    "media_type": "video",
    "video_url": "https://www.facebook.com/story.php?story_fbid=XXXXX",
    "thumbnail_url": "https://scontent.ftru6-2.fna.fbcdn.net/v/XXXXXXXXX",
    "ctwa_clid": "CTWA",
    "welcome_message": {
      "text": "WELCOME_MESSAGE"
    }
  }
}
```

Si `_referral` no existe en memoria, la conversación **no** se originó en un anuncio Click to WhatsApp (por ejemplo, un usuario que escribe directamente al número).

Puedes aprender más sobre cómo leer estas variables en: [Memory](/guides/variables/memory).

## Referencia de campos

| Campo                  | Descripción                                                                                   |
| ---------------------- | --------------------------------------------------------------------------------------------- |
| `source_url`           | URL corta del anuncio de origen (por ejemplo, un enlace `fb.me`).                             |
| `source_id`            | Identificador del anuncio o publicación de origen en Meta.                                    |
| `source_type`          | Tipo de origen. El valor `ad` indica que la conversación vino de un anuncio.                  |
| `body`                 | Texto principal del anuncio que vio el usuario antes de hacer clic.                           |
| `media_type`           | Tipo de contenido del anuncio: `image` o `video`.                                             |
| `video_url`            | URL del video del anuncio. Presente cuando `media_type` es `video`.                           |
| `thumbnail_url`        | URL de la miniatura del contenido del anuncio.                                                |
| `ctwa_clid`            | *Click to WhatsApp Click ID*: identificador único del clic, útil para atribución y reporting. |
| `welcome_message.text` | Mensaje de bienvenida configurado en el anuncio, con el que inicia la conversación.           |

<Note>
  Los campos disponibles dependen del anuncio. Un anuncio con imagen no incluirá `video_url`, y algunos campos pueden llegar vacíos según cómo esté configurado el creativo.
</Note>

## Cómo usarlo en tu flujo

Dentro de cualquier nodo puedes acceder a los datos del anuncio con la sintaxis de memoria `{{$memory._referral.campo}}`. Por ejemplo:

* `{{$memory._referral.source_type}}` → `ad`
* `{{$memory._referral.ctwa_clid}}` → identificador del clic para atribución
* `{{$memory._referral.body}}` → texto del anuncio que vio el usuario

Una forma habitual de aprovecharlo es **ramificar el flujo según el origen**:

<Steps>
  <Step title="Comprueba si la conversación viene de un anuncio">
    Al inicio del flujo, evalúa si existe `_referral` en memoria. Si existe, la conversación llegó desde un anuncio Click to WhatsApp.
  </Step>

  <Step title="Guarda la atribución para reutilizarla">
    Conserva `ctwa_clid` y `source_id` en memoria o envíalos a tu CRM para atribuir el lead a la campaña de origen.
  </Step>

  <Step title="Personaliza o enruta según el anuncio">
    Usa `body`, `source_url` o `source_id` para adaptar la primera respuesta del agente, enrutar al equipo correcto o disparar una notificación interna.
  </Step>
</Steps>

<Warning>
  El objeto `_referral` solo se inyecta cuando la conversación se **origina** en el anuncio. Si el usuario ya tenía una conversación previa con el número y vuelve a escribir sin pasar por el anuncio, la referencia puede no estar disponible.
</Warning>

## Artículos relacionados

<CardGroup cols={2}>
  <Card title="Memory" href="/guides/variables/memory" icon="database">
    Cómo leer y persistir variables entre conversaciones y nodos.
  </Card>

  <Card title="Google Ads" href="/guides/integraciones/marketing/google-ads" icon="google">
    Atribuye conversaciones de WhatsApp a tus campañas de Google Ads.
  </Card>
</CardGroup>
