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

# Referencia de eventos

> Eventos de Profound Pixel, sus campos y su uso

## Eventos estándar

Profound Pixel reconoce los siguientes eventos estándar. Cada evento acepta un conjunto de campos opcionales. Consulta [Conjuntos de campos](#field-sets) para ver qué acepta cada conjunto.

| Evento | Cuándo enviarlo | Conjunto de campos |
| - | - | - |
| `page_viewed` | Un visitante ve una página | `contents` |
| `contents_viewed` | Un visitante ve un producto, un listado, un artículo u otra unidad de contenido | `contents` |
| `items_added` | Un visitante agrega artículos a un carrito o selección | `contents` |
| `checkout_started` | Un visitante inicia el proceso de pago | `contents` |
| `order_created` | Se completa una compra | `contents` |
| `subscription_created` | Comienza una suscripción de pago | `plan_enrollment` |
| `trial_started` | Comienza una prueba gratuita | `plan_enrollment` |
| `lead_created` | Un visitante envía un formulario de contacto o solicita que lo contacten | `customer_action` |
| `registration_completed` | Un visitante termina el registro de una cuenta o un evento | `customer_action` |
| `appointment_scheduled` | Un visitante reserva una reunión, una demostración o una consulta | `customer_action` |

### Conjuntos de campos

| Conjunto de campos | Campos reconocidos |
| - | - |
| `contents` | `amount`, `currency`, `contents[]` |
| `plan_enrollment` | `plan_id`, `amount`, `currency`, `contents[]` |
| `customer_action` | `amount`, `currency` |

<Accordion title="Propiedades del conjunto contents">
  | Propiedad | Tipo | Obligatoria | Descripción |
  | - | - | - | - |
  | `amount` | number | no | Un número entero en unidades menores de la moneda indicada (centavos para dólares estadounidenses). Por ejemplo, \$129.99 = `12999`. Úsalo siempre junto con `currency` |
  | `currency` | string | sí, si `amount` está presente | Un código de moneda [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217), como `USD` |
  | `contents[]` | array | no | Una lista de los artículos involucrados en el evento. Cada entrada admite `id`, `name`, `content_type`, `quantity` (un número entero), `amount` y `currency` |

  ```javascript Example event theme={null}
    pfq('track', 'order_created', {
      amount: 12999, currency: 'USD',
      contents: [
        {
          id: 'SKU123',
          name: 'Widget',
          content_type: 'product',
          quantity: 1,
          amount: 12999,
          currency: 'USD'
        }
      ]
    });
  ```
</Accordion>

<Accordion title="Propiedades del conjunto plan_enrollment">
  | Propiedad | Tipo | Obligatoria | Descripción |
  | - | - | - | - |
  | `plan_id` | string | no | Tu identificador interno del plan |
  | `amount` | number | no | Un número entero en unidades menores de la moneda indicada (centavos para dólares estadounidenses). Por ejemplo, \$129.99 = `12999`. Úsalo siempre junto con `currency`. |
  | `currency` | string | sí, si `amount` está presente | Un código de moneda [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217), como `USD` |
  | `contents[]` | array | no | Una lista de los artículos involucrados en el evento. Cada entrada admite `id`, `name`, `content_type`, `quantity` (un número entero), `amount` y `currency` |

  ```javascript Example event theme={null}
    pfq('track', 'subscription_created', {
      plan_id: 'pro-monthly',
      amount: 4900,
      currency: 'USD',
      contents: [
        {
          id: 'pro-monthly',
          name: 'Pro plan, monthly billing',
          content_type: 'plan',
          quantity: 1,
          amount: 4900,
          currency: 'USD'
        }
      ]
    });
  ```
</Accordion>

<Accordion title="Propiedades del conjunto customer_action">
  | Propiedad | Tipo | Obligatoria | Descripción |
  | - | - | - | - |
  | `amount` | number | no | Un número entero en unidades menores de la moneda indicada (centavos para dólares estadounidenses). Por ejemplo, \$129.99 = `12999`. Úsalo siempre junto con `currency`. |
  | `currency` | string | sí, si `amount` está presente | Un código de moneda [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217), como `USD`. |

  ```javascript Example event theme={null}
    pfq('track', 'lead_created', {
      amount: 50000,
      currency: 'USD',
      form: 'contact-sales'
    });
  ```
</Accordion>

### Propiedades personalizadas

Agrega tus propias propiedades personalizadas (como `order_id` o `product_id`) junto a los campos reconocidos. Se aplican dos límites: hasta 128 propiedades por evento y hasta 64 KiB por cuerpo de solicitud. Un evento que supere cualquiera de los dos límites se rechaza con un error `400`.

## Eventos personalizados

Para cualquier cosa fuera del conjunto estándar, envía un evento personalizado: llama a `pfq('trackCustom', …)` con el nombre de evento y las propiedades que elijas.

```javascript theme={null}
  pfq('trackCustom', 'requested_demo', { plan: 'enterprise' });
```

La longitud máxima de los nombres de eventos es de 128 caracteres. La convención de nomenclatura sugerida es usar letras minúsculas, números, guiones bajos o guiones, y un nombre que no coincida con el de un [evento estándar](#standard-events), para que tus eventos personalizados sean fáciles de distinguir en los informes.

<Warning>
  **Nunca envíes datos personales de tus clientes en los eventos.** Esto incluye correos electrónicos, números de teléfono, nombres, documentos de identidad oficiales, datos de pago, direcciones postales y datos de categorías especiales, como información de salud, detalles de cuentas financieras o datos biométricos. Como medida de seguridad, Profound descarta las claves de datos personales y oculta los valores que parecen datos personales.
</Warning>

## Vincula los eventos a tus propios ID de usuario

Si necesitas hacer coincidir las conversiones con registros de tus propios sistemas, haz una llamada `identify` con tus identificadores internos después de que el cliente inicie sesión y antes de enviar cualquier evento:

```javascript theme={null}
  pfq('identify', {
    external_user_id: 'u_123',
    external_account_id: 'acct_456'
  });
```

Se aceptan los siguientes campos:

| Campo | Tipo | Obligatorio |
| - | - | - |
| `external_user_id` | string | no |
| `external_account_id` | string | no |

Cualquier otro campo se ignora de forma silenciosa.

El píxel conserva los ID en memoria hasta que tu señal de consentimiento permite el envío y, luego, los adjunta a los eventos siguientes.

<Warning>
  Envía solo ID internos, nunca nombres, correos electrónicos, números de teléfono ni otros identificadores de tus clientes. Si hay datos personales en los campos de `identify`, se rechaza todo el evento con un error `400`.
</Warning>
