# Crear segmentos por eventos

La **segmentación basada en eventos** le permite dirigirse a los usuarios en función de su comportamiento y acciones reales dentro de su aplicación o sitio web. Esto crea campañas altamente personalizadas y eficaces al centrarse en los patrones de participación de los usuarios.

## Crear segmentos por eventos

Para crear un segmento por eventos:

1. Haga clic en **Evento** en la sección **Añadir filtro por:**.

![Interfaz que muestra la sección Añadir filtro por con la opción Evento resaltada](/segmentation-segments-by-events-1.webp)

2. Seleccione un evento de la lista desplegable.

![Lista desplegable que muestra los eventos disponibles para el filtrado de segmentos](/segmentation-segments-by-events-2.webp)

3. Indique las condiciones para el evento seleccionado: el número de veces que ocurrió y un marco de tiempo.

> Al especificar un marco de tiempo para su segmento, puede elegir entre dos categorías: **Fechas relativas** y **Fechas específicas**.

<span id="relative-dates" />

##### Fechas relativas

Utilice estas opciones para ventanas de tiempo que se actualizan dinámicamente en función de la fecha actual:

|                     |                                                           |
|-----------------------------|-------------------------------------------------------------------------|
| **durante los últimos N días**  | Incluye eventos que ocurrieron en los últimos N días                     |
| **hace exactamente N días**      | Se dirige a los usuarios que activaron el evento hace exactamente N días                  |
| **hace N o más días**      | Incluye a los usuarios que activaron el evento hace al menos N días                |
| **hace entre N y M días**| Define un rango de días antes de hoy                                     |
| **entre N y M días a partir de hoy**| Define un rango de N a M días a partir de hoy, donde 0 significa hoy. Tanto N como M están incluidos |


<img src="/segmentation-segments-21.webp" alt="Ejemplo de configuración de filtros de segmento por ocurrencia de evento y criterios de fecha relativa"/>

<span id="specific-dates" />

##### Fechas específicas

Utilice estas opciones para definir filtros fijos basados en el calendario:

|                    |                                                                     |
|-------------------------------|-----------------------------------------------------------------------------------|
| **en una fecha específica**        | Incluye a los usuarios que activaron el evento en una fecha de calendario seleccionada                |
| **en una fecha específica o después** | Incluye a los usuarios que activaron el evento a partir de la fecha seleccionada en adelante      |
| **en una fecha específica o antes**| Incluye a los usuarios que activaron el evento hasta la fecha seleccionada inclusive       |
| **entre fechas**             | Incluye a los usuarios que activaron el evento entre dos fechas de calendario específicas        |

<img src="/segmentation-segments-20.webp" alt="Interfaz para segmentar usuarios por ocurrencia de evento y especificar los criterios del marco de tiempo del evento"/>

4. (Opcional) Haga clic en **+ Atributo** para acotar la condición a un atributo de evento específico. Seleccione el atributo del menú desplegable, elija un operador y especifique un valor. Comience a escribir para buscar valores sugeridos basados en datos registrados previamente.

<Aside type="tip">
Para eventos personalizados, añada atributos cuando [cree el evento](/es/product/audience-data-and-segmentation/events/custom-events/#creating-custom-events). Los tipos de atributos se enumeran en [Entender los eventos](/es/product/audience-data-and-segmentation/events/#2-set-attributes). Los eventos por defecto ya incluyen sus atributos. Consulte [Eventos por defecto](/es/product/audience-data-and-segmentation/events/default-events/).

Para los eventos [**PW_EmailSubscribed**](/es/product/audience-data-and-segmentation/events/default-events/#pw_emailsubscribed) / [**PW_EmailUnsubscribed**](/es/product/audience-data-and-segmentation/events/default-events/#pw_emailunsubscribed), el menú desplegable de valores del atributo **categorías** muestra las categorías de correo electrónico reales de su cuenta en lugar de los valores brutos registrados, si el [centro de preferencias](/es/product/messaging-channels/emails/email-preferences/) está habilitado.
</Aside>


<img src="/segmentation-segments-by-events-4.webp" alt="Condición de atributo de evento que muestra el nombre del atributo, el operador y el valor con sugerencias de autocompletar"/>

Consulte [operadores de atributos de eventos por tipo](#event-attribute-operators-by-type) para ver la lista completa de operadores disponibles.

5. (Opcional) Haga clic en **+ Suma** cuando necesite un total de los eventos coincidentes (por ejemplo, el gasto total), y no un límite sobre un único evento.

Elija un atributo **entero** o **decimal (precio)**, un operador y un umbral. **+ Suma** aparece solo cuando el evento tiene al menos un atributo entero o decimal (precio). Consulte [operadores para sumas](#operators-for-sums).

Ejemplo: `Purchase` al menos una vez durante los últimos 90 días, con la suma de `amount` mayor o igual que `100`, se dirige a los usuarios que gastaron 100 o más en ese período, en una compra o en varias.

<img src="/segmentation-segments-by-events-5.webp" alt="Purchase al menos 1 vez en los últimos 90 días, con la suma de amount mayor o igual que 100 resaltada"/>

Los filtros de atributos del mismo evento se siguen aplicando: la suma usa solo los eventos que cumplen con ellos (por ejemplo, el total de `amount` donde `category igual a "shoes"`). Puede añadir más de una suma, sobre el mismo atributo o sobre atributos distintos. Un usuario debe cumplir todas las sumas que añada.

<span id="how-a-sum-is-calculated" />

<Aside type="note" title="¿Cómo se calculan las sumas?">

- **Qué eventos cuentan:** Solo se incluyen en la suma los eventos que ya coinciden con la frecuencia, el marco de tiempo y los filtros de atributos de esta condición.
- **Valores ausentes:** Si un evento coincidente no tiene valor para el atributo sumado, cuenta como `0`.
- **Reembolsos:** Los valores negativos restan. Registre un reembolso con el mismo evento y un importe negativo para que el total refleje el gasto neto.
- **Sin eventos coincidentes:** Si la frecuencia no es **nunca**, los usuarios sin eventos coincidentes en el marco de tiempo no superan la suma. Por ejemplo, la suma de `amount` menor o igual que `0` no incluye a los usuarios que nunca compraron. Para dirigirse a quienes no compran, establezca el evento en **nunca** sin suma.
- **«Nunca» con suma:** Si la frecuencia es **nunca**, el segmento incluye a todos los usuarios excepto aquellos cuyos eventos coincidentes alcanzan el umbral de la suma. Por ejemplo, `Purchase` **nunca** durante los últimos 90 días, con la suma de `amount` mayor o igual que `100`, incluye a los usuarios que gastaron menos de 100 en ese período y a los usuarios sin compras.
- **Retención de datos:** De forma predeterminada, Pushwoosh almacena los datos de eventos durante un año, por lo que una suma no puede abarcar un período más largo ni mostrar el gasto de por vida.

</Aside>

6. Si establece varios eventos como condición de un segmento, seleccione el operador que le gustaría usar (**Y**/**O**).

<video src="/segmentation-segments-5.webm" title="Configuración del filtro de segmento por Eventos que muestra la selección de eventos y las condiciones del marco de tiempo" autoplay loop muted playsinline />

7. Debajo de los grupos de filtros, habilite **Incluir todos los dispositivos de un usuario** para dirigirse a un usuario en todos sus dispositivos, no solo en el que coincidió con la condición del segmento. Esto asegura que reciban sus mensajes en cada plataforma que utilicen.

Si alguno de los dispositivos de un usuario coincide con las condiciones, todos sus dispositivos se añaden al segmento. Si la casilla de verificación se deja sin marcar, solo se incluyen los dispositivos que coinciden.

Esta misma casilla de verificación aparece, deshabilitada, en la página de detalles de solo lectura de un segmento; refleja la configuración con la que se creó el segmento y no se puede cambiar allí.

<img src="/segmentation-segments-16.webp" alt="Casilla de verificación 'Incluir todos los dispositivos de un usuario' para la segmentación multiplataforma"/> 

<span id="event-attribute-operators-by-type" />

## Operadores de atributos de eventos por tipo

Los operadores disponibles dependen del tipo de atributo de evento por el que está filtrando. Seleccione un tipo a continuación para ver sus operadores.

<Tabs>
<TabItem label="String">

La columna **seglang** contiene el token del operador que el creador muestra junto al nombre y que se usa en el [lenguaje de segmentación](/es/developer/api-reference/segmentation-filters-api/segmentation-language/). La columna **Ejemplo** muestra cómo se lee la condición en el creador, no la sintaxis de seglang.

| Operador    <div style="width:180px"></div> | seglang | Descripción    <div style="width:250px"></div> | Ejemplo |
| --- | --- | --- | --- |
| **igual a** | `eq` | El valor del atributo es igual al valor especificado | `button_name igual a "checkout"` |
| **distinto de** | `noteq` | El valor del atributo no es igual al valor especificado | `url distinto de "/cart"` |
| **empieza por** | `startswith` | El valor del atributo comienza con la cadena especificada | `url empieza por "https://example.com"` |
| **termina en** | `endswith` | El valor del atributo termina con la cadena especificada | `url termina en ".html"` |
| **contiene** | `contains` | El valor del atributo contiene la cadena especificada | `url contiene "/products/"` |
| **uno de** | `in` | El valor del atributo coincide con cualquier valor de una lista proporcionada | `button_name uno de ["submit", "cancel"]` |
| **ninguno de** | `notin` | El valor del atributo no coincide con ningún valor de una lista proporcionada | `category ninguno de ["spam", "test"]` |
| **no establecido** | `notset` | No se registró ningún valor para el atributo | `coupon_code no establecido` |
| **establecido (cualquiera)** | `any` | El atributo tiene cualquier valor registrado | `referrer establecido (cualquiera)` |

</TabItem>
<TabItem label="Integer">

| Operador    <div style="width:180px"></div> | seglang | Descripción    <div style="width:250px"></div> | Ejemplo |
| --- | --- | --- | --- |
| **igual a** | `eq` | El valor del atributo es igual al número especificado | `level_number igual a 5` |
| **distinto de** | `noteq` | El valor del atributo no es igual al número especificado | `score distinto de 0` |
| **mayor o igual que** | `gte` | El valor del atributo es mayor o igual que el número especificado | `points_earned mayor o igual que 100` |
| **menor o igual que** | `lte` | El valor del atributo es menor o igual que el número especificado | `attempts menor o igual que 3` |
| **entre** | `between` | El valor del atributo está dentro del rango especificado (inclusivo) | `level_number entre 10 y 20` |
| **uno de** | `in` | El valor del atributo coincide con cualquier valor de la lista | `level_number uno de [5, 10, 15]` |
| **ninguno de** | `notin` | El valor del atributo no coincide con ningún valor de la lista | `attempts ninguno de [0, 1]` |
| **no establecido** | `notset` | No se registró ningún valor para el atributo | `score no establecido` |
| **establecido (cualquiera)** | `any` | El atributo tiene cualquier valor registrado | `level_number establecido (cualquiera)` |

</TabItem>
<TabItem label="Boolean">

| Operador    <div style="width:180px"></div> | seglang | Descripción    <div style="width:250px"></div> | Ejemplo |
| --- | --- | --- | --- |
| **verdadero** | `eq true` | El valor del atributo es verdadero | `enabled verdadero` |
| **falso** | `eq false` | El valor del atributo es falso | `is_trial falso` |
| **no establecido** | `notset` | No se registró ningún valor para el atributo | `enabled no establecido` |
| **establecido (cualquiera)** | `any` | El atributo tiene cualquier valor registrado (verdadero o falso) | `is_trial establecido (cualquiera)` |

</TabItem>
<TabItem label="Decimal (price)">

Utilice este tipo para valores monetarios con decimales. En el Panel de Control aparece como **decimal (precio)** cuando crea o edita un atributo de evento.

| Operador    <div style="width:180px"></div> | seglang | Descripción    <div style="width:250px"></div> | Ejemplo |
| --- | --- | --- | --- |
| **igual a** | `eq` | El valor del atributo es igual al precio especificado | `total_price igual a 9.99` |
| **distinto de** | `noteq` | El valor del atributo no es igual al precio especificado | `total_price distinto de 0` |
| **mayor o igual que** | `gte` | El valor del atributo es mayor o igual que un precio | `total_price mayor o igual que 50.00` |
| **menor o igual que** | `lte` | El valor del atributo es menor o igual que un precio | `total_price menor o igual que 100.00` |
| **entre** | `between` | El valor del atributo se encuentra dentro del rango de precios especificado (inclusivo) | `total_price entre 10.00 y 50.00` |
| **uno de** | `in` | El valor del atributo coincide con cualquier valor de una lista | `total_price uno de [9.99, 14.99, 19.99]` |
| **ninguno de** | `notin` | El valor del atributo no coincide con ningún valor de una lista | `total_price ninguno de [0, 5]` |
| **no establecido** | `notset` | No se registró ningún valor para el atributo | `total_price no establecido` |
| **establecido (cualquiera)** | `any` | El atributo tiene cualquier valor registrado | `total_price establecido (cualquiera)` |

</TabItem>
<TabItem label="List">

Los atributos de tipo lista pueden contener múltiples valores a la vez, como los ID de productos añadidos a un carrito.

| Operador    <div style="width:180px"></div> | seglang | Descripción    <div style="width:250px"></div> | Ejemplo |
| --- | --- | --- | --- |
| **uno de** | `in` | El atributo contiene al menos uno de los valores especificados | `product_ids uno de ["prod-123", "prod-456"]` |
| **ninguno de** | `notin` | El atributo no contiene ninguno de los valores especificados | `product_ids ninguno de ["prod-789"]` |
| **no establecido** | `notset` | No se registró ningún valor para el atributo | `product_ids no establecido` |
| **establecido (cualquiera)** | `any` | El atributo tiene cualquier valor registrado | `product_ids establecido (cualquiera)` |

</TabItem>
<TabItem label="Date">

Los atributos de tipo fecha admiten las mismas comparaciones de [fecha relativa](#relative-dates) y [fecha específica](#specific-dates) utilizadas para el propio marco de tiempo del evento. 

</TabItem>
</Tabs>

<span id="operators-for-sums" />

## Operadores para sumas

Una condición de suma compara el total de un atributo en los eventos coincidentes, por lo que admite menos operadores que una condición de atributo.

| Operador    <div style="width:180px"></div> | seglang | Descripción    <div style="width:250px"></div> | Ejemplo |
| --- | --- | --- | --- |
| **igual a** | `eq` | El total es igual al número especificado | `total_price igual a 100` |
| **distinto de** | `noteq` | El total no es igual al número especificado | `total_price distinto de 0` |
| **mayor o igual que** | `gte` | El total es mayor o igual que el número especificado | `total_price mayor o igual que 100` |
| **menor o igual que** | `lte` | El total es menor o igual que el número especificado | `total_price menor o igual que 500` |
| **entre** | `between` | El total está dentro del rango especificado (inclusive) | `total_price entre 100 y 500` |

<Aside type="tip">
Las sumas conservan el signo de cada valor. Para tener en cuenta los reembolsos, regístrelos con el mismo evento y un importe negativo, de modo que la suma refleje el importe neto gastado.
</Aside>

## Ejemplos de segmentación basada en eventos

A continuación se presentan varios escenarios prácticos que ilustran cómo puede utilizar los filtros de eventos para crear segmentos de audiencia significativos. 

##### Compradores frecuentes

**Objetivo:** Dirigirse a usuarios muy comprometidos que han realizado múltiples compras recientemente.

**Cómo configurarlo:**
- **Evento:** `Purchase_made`
- **Condición:** al menos
- **Veces:** `3`
- **Marco de tiempo:** durante los últimos N días
- **Valor del marco de tiempo:** `30`

**Caso de uso:** Enviar ofertas especiales o recompensas de fidelidad a los usuarios que demuestran una actividad de compra frecuente.


##### Compra única de alto valor

**Objetivo:** Dirigirse a los usuarios que realizaron una compra grande, independientemente de la frecuencia con la que compren.

**Cómo configurarlo:**
- **Evento:** `Purchase_made`
- **Condición:** al menos
- **Veces:** `1`
- **Marco de tiempo:** durante los últimos N días
- **Valor del marco de tiempo:** `30`
- **Atributo:** `total_price`
- **Operador:** mayor o igual que
- **Valor del atributo:** `50`

**Caso de uso:** Invitar a los grandes compradores a un programa de fidelidad o VIP justo después de una compra que califique.

##### Gasto total en un período

**Objetivo:** Dirigirse a los usuarios cuyas compras combinadas alcanzan un umbral de gasto, aunque ninguna compra individual lo haga.

**Cómo configurarlo:**
- **Evento:** `Purchase_made`
- **Condición:** al menos
- **Veces:** `1`
- **Marco de tiempo:** durante los últimos N días
- **Valor del marco de tiempo:** `90`
- **Suma:** `total_price`
- **Operador:** mayor o igual que
- **Valor de la suma:** `200`

**Caso de uso:** Pasar a los clientes a un nivel de fidelidad superior cuando su gasto en los últimos 90 días alcanza el umbral.

##### Reembolsos superiores a las compras

**Objetivo:** Dirigirse a los usuarios que recibieron de vuelta más de lo que gastaron en un período. Funciona cuando los reembolsos se registran con el mismo evento y un importe negativo.

**Cómo configurarlo:**
- **Evento:** `Purchase_made`
- **Condición:** al menos
- **Veces:** `1`
- **Marco de tiempo:** durante los últimos N días
- **Valor del marco de tiempo:** `90`
- **Suma:** `total_price`
- **Operador:** menor o igual que
- **Valor de la suma:** `-1`

**Caso de uso:** Dirigir a estos usuarios a un flujo de soporte o de recuperación en lugar de a campañas promocionales.

##### Productos vistos pero sin compra

**Objetivo:** Identificar a los usuarios que han mostrado interés pero no han convertido.

**Cómo configurarlo:**
- **Evento 1:** `Product_Viewed`
   - **Condición:** al menos
   - **Veces:** `1`
   - **Marco de tiempo:** durante los últimos N días
   - **Valor del marco de tiempo:** `7`
- **Evento 2:** `Purchase_made`
   - **Condición:** nunca
   - **Marco de tiempo:** durante los últimos N días
   - **Valor del marco de tiempo:** `7`
- **Operador:** Y

**Caso de uso:** Enviar recordatorios, ofertas especiales o mensajes personalizados a los usuarios que navegaron por los productos pero aún no han realizado una compra.

##### Usuarios comprometidos durante una campaña

**Objetivo:** Dirigirse a los usuarios que participaron durante un período promocional específico.

**Cómo configurarlo:**
- **Evento:** `Promotion_Click`
- **Condición:** al menos
- **Veces:** `1`
- **Marco de tiempo:** entre fechas
- **Valor del marco de tiempo:** `"2024-01-01"` y `"2024-01-31"`

**Caso de uso:** Hacer un seguimiento con los usuarios que interactuaron con una campaña anterior para promocionar una oferta relacionada o recopilar comentarios.

##### Acciones de alto valor a lo largo del tiempo

**Objetivo:** Identificar a los usuarios que realizaron un evento valioso un cierto número de veces dentro de un rango de fechas personalizado.

**Cómo configurarlo:**
- **Evento:** `Subscription_Renewal`
- **Condición:** al menos
- **Veces:** `2`
- **Marco de tiempo:** entre fechas
- **Valor del marco de tiempo:** `"2024-01-01"` y `"2024-12-31"`

**Caso de uso:** Ofrecer un reconocimiento especial o características avanzadas a los suscriptores leales que renuevan regularmente sus suscripciones.

## Consejos para la segmentación basada en eventos

- Utilice [fechas relativas](#relative-dates) para campañas en curso que deban mantenerse actualizadas con la actividad actual del usuario.
- Acote una condición de evento con un [filtro de atributo de evento](#event-attribute-operators-by-type) (p. ej., importe de la compra, categoría del producto) en lugar de depender únicamente de la ocurrencia del evento.
- Combine los filtros de eventos con otros criterios como [etiquetas](/es/product/audience-data-and-segmentation/segmentation/create-segments/by-tags/) (p. ej., datos demográficos del usuario, estado de la suscripción) o [segmentos existentes](/es/product/audience-data-and-segmentation/segmentation/create-segments/by-existing-segments/) para una segmentación más precisa. Por ejemplo, puede filtrar usuarios basándose tanto en la ocurrencia de eventos como en las propiedades del usuario almacenadas en etiquetas para personalizar aún más sus mensajes.
- Revise y actualice periódicamente sus filtros de segmento para adaptarse a los cambios en los comportamientos de los usuarios o en los objetivos de negocio.