Saltar al contenido

Lenguaje de segmentación

Pushwoosh ofrece un potente motor de segmentación para crear Segmentos granulares basados en los valores de las Etiquetas (Tags). El Lenguaje de Segmentación es una forma específica de escribir y combinar criterios de segmentación para describir un grupo particular de usuarios que coinciden con esos criterios y tratarlos como un único segmento de audiencia.

Este artículo describe los conceptos básicos y la sintaxis del Lenguaje de Segmentación y proporciona ejemplos completos de cómo construir criterios de segmentación para diversos casos.

Conceptos básicos

Anchor link to

Cada dispositivo en su base de usuarios tiene atributos específicos asociados a él a través de los valores de las Etiquetas (Tag values).

Por ejemplo, digamos que una usuaria llamada Jane vive en Tokio y su edad es 28 años. Esa usuaria tendrá las siguientes Etiquetas establecidas para su dispositivo:

  • Nombre: Jane
  • Ciudad: Tokio
  • Edad: 28

Para dirigirse a Jane, necesitará describir un segmento de la siguiente manera:

T("Name", eq, "Jane") * T("Age", eq, 28) * T("City", eq, "Tokyo")

Esta combinación de condiciones es una expresión de filtro utilizada en el Lenguaje de Segmentación para describir grupos de usuarios, también conocidos como Segmentos de audiencia.

Expresiones de filtro

Anchor link to

Una expresión de filtro es una cadena que contiene una condición o una combinación de condiciones que describen el segmento que necesita.

Condiciones

Anchor link to

Cada condición describe un segmento de dispositivos que coinciden con los criterios especificados en esa condición.

Por ejemplo, la siguiente condición crea un segmento de usuarios que viven en Tokio:

T("City", e, "Tokyo")

donde

  • T es una Etiqueta (Tag) (tipo de condición);
  • eq es un operador a aplicar;
  • “Tokyo” es un valor de Etiqueta que los usuarios tienen asociado a sus dispositivos.

Tipos de condición

Anchor link to

Los siguientes tipos de condición están disponibles para la segmentación:

  • A (Application) – describe un segmento de dispositivos con una aplicación particular instalada. Alias: App, Application;
  • T (Tag) – describe un segmento de dispositivos con los valores de Etiqueta especificados;
  • AT (App-specific tag) – se aplica en combinación con los códigos de aplicación para etiquetas que son específicas de la aplicación. Alias: Tag;
  • Event – describe un segmento de dispositivos que activaron un evento específico de Pushwoosh;
  • Geo – describe un segmento de dispositivos dentro de un radio geográfico específico;
  • BTTS – describe un segmento de dispositivos basado en su mejor momento para enviar;
  • Updated – describe un segmento de dispositivos basado en su última marca de tiempo de actualización;
  • Segment – hace referencia a otro filtro/segmento por su código;
  • Static (o S) – hace referencia a un segmento estático predefinido;

Operaciones con condiciones

Anchor link to

Para construir segmentos sofisticados, se pueden aplicar las siguientes operaciones a las condiciones dentro de la expresión de filtro:

Unión (+)

Anchor link to

Une los segmentos, es decir, construye un nuevo segmento de usuarios que coinciden con al menos una de las condiciones especificadas.

Por ejemplo, para dirigirse a usuarios que viven en Tokio o en Osaka, necesitará describir el segmento con las siguientes condiciones:

T("City", eq, "Tokyo") + T("City", eq, "Osaka")

Intersección (*)

Anchor link to

Construye un segmento de usuarios que pertenecen a ambos segmentos descritos por las condiciones. Por lo tanto, solo se incluirán aquellos usuarios que cumplan con cada condición que especifique.

La siguiente expresión describe un segmento de usuarios que viven en Tokio y han especificado sus nombres:

T("City", eq, "Tokyo") * T("Name", any)

Diferencia (\)

Anchor link to

Construye un segmento de usuarios que pertenecen a uno de los segmentos descritos y no pertenecen a otro.

Los usuarios que viven en Tokio pero no le han dado sus nombres se describirán de la siguiente manera:

T("City", eq, "Tokyo") \ T("Name", any)

Paréntesis

Anchor link to

Determinan el orden de las operaciones a realizar con las condiciones en su expresión de filtro.

Por ejemplo, la siguiente expresión de filtro obtendrá primero un segmento de los suscriptores de 12345-67890 cuya edad es 18 y luego restará a todos los hombres de ese segmento:

( A("12345-67890") * T("Age", eq, 18) ) \ T("Gender", eq, "Male")

Operadores de condiciones de Etiqueta (Tag)

Anchor link to

Para cada tipo de Etiqueta, se aplican sus propios operadores.

Operadores de Etiquetas de tipo Entero (Integer)

Anchor link to
  • eq - igual a un valor especificado
  • noteq - no igual a un valor especificado
  • lte - menor o igual que un valor especificado
  • gte - mayor o igual que un valor especificado
  • in - cualquiera de los valores especificados
  • notin - no igual a ninguno de los valores especificados
  • between - en un rango especificado
  • any - dispositivos con cualquier valor establecido para la etiqueta
  • notset - dispositivos sin valor establecido para la etiqueta

Operadores de Etiquetas de tipo Cadena (String)

Anchor link to
  • eq - igual a un valor especificado
  • noteq - no igual a un valor especificado
  • startswith - comienza con un prefijo especificado
  • endswith - termina con un sufijo especificado
  • contains - contiene una subcadena especificada
  • in - igual a cualquiera de los valores especificados
  • notin - no igual a ninguno de los valores especificados
  • any - dispositivos con cualquier valor establecido para la etiqueta
  • notset - dispositivos sin valor establecido para la etiqueta

Operadores de Etiquetas de tipo Lista (List)

Anchor link to
  • in - dispositivos con cualquiera de los valores de etiqueta especificados
  • notin - ninguno de los valores de etiqueta especificados asociados con el dispositivo
  • any - dispositivos con cualquier valor establecido para la etiqueta
  • notset - dispositivos sin valor establecido para la etiqueta

Operadores de Etiquetas de tipo Fecha (Date)

Anchor link to
  • eq - igual a la fecha especificada
  • noteq - no igual a la fecha especificada
  • lte - antes de o en la fecha especificada
  • gte - después de o en la fecha especificada
  • in - igual a cualquiera de las fechas especificadas
  • notin - no igual a ninguna de las fechas especificadas
  • between - en un rango especificado
  • any - dispositivos con cualquier valor establecido para la etiqueta
  • notset - dispositivos sin valor establecido para la etiqueta
  • match - coincide con un mes del año y día del mes especificados.
  • daysago eq - igual a un número especificado de días antes del día actual
  • daysago noteq - no igual a un número especificado de días antes del día actual
  • daysago lte - menor o igual que un número especificado de días antes del día actual
  • daysago gte - mayor o igual que un número especificado de días antes del día actual
  • daysago between - entre los números de días especificados
  • minutesago lte - menor o igual que un número especificado de minutos antes del momento actual
  • minutesago gte - mayor o igual que un número especificado de minutos antes del momento actual

Operadores de Etiquetas de tipo Booleano (Boolean)

Anchor link to
  • eq - igual a un valor especificado
  • noteq - no igual a un valor especificado
  • any - dispositivos con cualquier valor establecido para la etiqueta
  • notset - dispositivos sin valor establecido para la etiqueta

Operadores de Etiquetas de tipo Precio (Price)

Anchor link to
  • eq - igual a un valor especificado
  • noteq - no igual a un valor especificado
  • lte - menor o igual que un valor especificado
  • gte - mayor o igual que un valor especificado
  • in - igual a cualquiera de los valores especificados
  • notin - no igual a ninguno de los valores especificados
  • between - en un rango especificado
  • any - dispositivos con cualquier valor establecido para la etiqueta
  • notset - dispositivos sin valor establecido para la etiqueta

Operadores de Etiquetas de tipo Versión (Version)

Anchor link to
  • eq - igual a un valor especificado
  • noteq - no igual a un valor especificado
  • lte - menor o igual que un valor especificado
  • gte - mayor o igual que un valor especificado
  • in - igual a cualquiera de los valores especificados
  • notin - no igual a ninguno de los valores especificados
  • between - en un rango especificado
  • any - dispositivos con cualquier valor establecido para la etiqueta
  • notset - dispositivos sin valor establecido para la etiqueta

Operadores de condiciones de Evento

Anchor link to

Conteo de eventos

Anchor link to
  • count gte - dispositivos que activaron el evento más de o exactamente n veces
  • count lte - dispositivos que activaron el evento menos de o exactamente n veces
  • count eq - dispositivos que activaron el evento exactamente n veces
  • count noteq - dispositivos que activaron el evento cualquier número de veces pero no igual a n

Fecha del evento

Anchor link to
  • date gte - dispositivos que activaron el evento después de o exactamente en la fecha especificada
  • date lte - dispositivos que activaron el evento antes de o exactamente en la fecha especificada
  • date eq - dispositivos que activaron el evento exactamente en la fecha especificada
  • date noteq - dispositivos que activaron el evento en cualquier momento pero no en la fecha especificada
  • date in - dispositivos que activaron el evento en cualquiera de las fechas especificadas
  • date notin - dispositivos que activaron el evento en cualquier momento pero no en ninguna de las fechas especificadas
  • date between - dispositivos que activaron el evento dentro de un período especificado
  • date daysago eq - la fecha de activación del evento es igual a un número especificado de días antes del día actual
  • date daysago noteq - la fecha de activación del evento no es igual a un número especificado de días antes del día actual
  • date daysago lte - la fecha de activación del evento es menor o igual a un número especificado de días antes del día actual
  • date daysago gte - la fecha de activación del evento es mayor o igual a un número especificado de días antes del día actual
  • date daysago between - la fecha de activación del evento está entre los números de días especificados
  • date minutesago lte - la fecha de activación del evento es menor o igual a un número especificado de minutos antes del momento actual
  • date minutesago gte - la fecha de activación del evento es mayor o igual a un número especificado de minutos antes del momento actual

Plataformas de eventos

Anchor link to

Filtra eventos por la plataforma donde fueron activados.

  • platforms - lista de plataformas (p. ej., [“ios”, “android”])

Atributos de eventos

Anchor link to

Las condiciones de evento pueden filtrar en función de los valores de los atributos del evento. Los atributos admiten varios tipos de datos con sus operadores correspondientes.

Atributos de Evento de tipo Entero (Integer)

Anchor link to
  • attribute “name” eq - el atributo es igual a un valor especificado
  • attribute “name” noteq - el atributo no es igual a un valor especificado
  • attribute “name” gte - el atributo es mayor o igual que un valor especificado
  • attribute “name” lte - el atributo es menor o igual que un valor especificado
  • attribute “name” between - el atributo está en un rango especificado
  • attribute “name” in - el atributo es igual a cualquiera de los valores especificados
  • attribute “name” notin - el atributo no es igual a ninguno de los valores especificados
  • attribute “name” any - cualquier valor establecido para el atributo
  • attribute “name” notset - ningún valor establecido para el atributo

Atributos de Evento de tipo Cadena (String)

Anchor link to
  • attribute “name” eq - el atributo es igual a un valor especificado
  • attribute “name” noteq - el atributo no es igual a un valor especificado
  • attribute “name” startswith - el atributo comienza con un prefijo especificado
  • attribute “name” endswith - el atributo termina con un sufijo especificado
  • attribute “name” contains - el atributo contiene una subcadena especificada
  • attribute “name” in - el atributo es igual a cualquiera de los valores especificados
  • attribute “name” notin - el atributo no es igual a ninguno de los valores especificados
  • attribute “name” any - cualquier valor establecido para el atributo
  • attribute “name” notset - ningún valor establecido para el atributo

Atributos de Evento de tipo Booleano (Boolean)

Anchor link to
  • attribute “name” eq - el atributo es igual a verdadero o falso
  • attribute “name” noteq - el atributo no es igual a verdadero o falso

Atributos de Evento de tipo Fecha (Date)

Anchor link to
  • attribute “name” eq - el atributo es igual a una fecha especificada
  • attribute “name” noteq - el atributo no es igual a una fecha especificada
  • attribute “name” gte - el atributo es posterior o en una fecha especificada
  • attribute “name” lte - el atributo es anterior o en una fecha especificada
  • attribute “name” between - el atributo está dentro de un rango de fechas especificado
  • attribute “name” in - el atributo es igual a cualquiera de las fechas especificadas
  • attribute “name” notin - el atributo no es igual a ninguna de las fechas especificadas
  • attribute “name” daysago eq/noteq/gte/lte/between - atributo relativo a días atrás
  • attribute “name” minutesago gte/lte - atributo relativo a minutos atrás
  • attribute “name” any - cualquier valor establecido para el atributo
  • attribute “name” notset - ningún valor establecido para el atributo

Atributos de Evento de tipo Precio (Price)

Anchor link to
  • attribute “name” eq - el atributo es igual a un valor de precio especificado
  • attribute “name” noteq - el atributo no es igual a un valor de precio especificado
  • attribute “name” gte - el atributo es mayor o igual que un precio especificado
  • attribute “name” lte - el atributo es menor o igual que un precio especificado
  • attribute “name” between - el atributo está en un rango de precios especificado
  • attribute “name” in - el atributo es igual a cualquiera de los precios especificados
  • attribute “name” notin - el atributo no es igual a ninguno de los precios especificados
  • attribute “name” any - cualquier valor establecido para el atributo
  • attribute “name” notset - ningún valor establecido para el atributo

Atributos de Evento de tipo Lista (List)

Anchor link to
  • attribute “name” in - el atributo contiene cualquiera de los valores especificados
  • attribute “name” notin - el atributo no contiene ninguno de los valores especificados
  • attribute “name” any - cualquier valor establecido para el atributo
  • attribute “name” notset - ningún valor establecido para el atributo

Tipos de condición adicionales

Anchor link to

Condición Geo

Anchor link to

Diríjase a dispositivos basados en la ubicación geográfica dentro de un radio especificado.

Sintaxis: Geo("<código-de-app>", <latitud>, <longitud>, <rango-en-km>)

Condición BTTS

Anchor link to

Diríjase a dispositivos por su mejor momento para enviar notificaciones (hora del día, 0-23).

Operadores:

  • any - cualquier valor de mejor momento para enviar establecido
  • eq - coincidencia exacta de hora
  • noteq - no igual a la hora
  • gte - hora mayor o igual que
  • lte - hora menor o igual que

Condición Updated

Anchor link to

Filtra dispositivos por su última marca de tiempo de actualización.

Operadores:

  • gte - actualizado después de o en la fecha especificada
  • lte - actualizado antes de o en la fecha especificada
  • between - actualizado dentro de un rango de fechas

Condición Segment

Anchor link to

Hace referencia a otro filtro/segmento por su código.

Condición Static

Anchor link to

Hace referencia a un segmento estático predefinido. Puede usar Static o la abreviatura S.

Indicadores de presencia de dispositivos en la condición Application

Anchor link to

Las condiciones de aplicación admiten indicadores adicionales para controlar el filtrado de dispositivos y tokens:

  • with_tokens - dispositivos con tokens de notificación push
  • without_tokens - dispositivos sin tokens de notificación push
  • with_devices - usuarios con dispositivos registrados
  • without_devices - usuarios/perfiles sin dispositivos registrados

Ejemplos de expresiones de filtro

Anchor link to

Ejemplos básicos

Anchor link to
  1. Dispositivos iOS y Android con la aplicación instalada y con tokens de push:
A("11111-11111", ["ios","android"], [with_tokens])
  1. Dispositivos iOS y Android con la aplicación instalada pero sin tokens de push:
A("11111-11111", ["ios","android"], [without_tokens])
  1. Dispositivos iOS y Android con la aplicación instalada, ya sea que tengan tokens de push o no:
A("11111-11111", ["ios","android"], [with_tokens, without_tokens])
  1. Todos los suscriptores de la aplicación que han comprado algo en la aplicación:
AT("11111-11111", "In-App Purchase", gte, 1)

Ejemplos avanzados

Anchor link to
  1. Usuarios en Tokio que han abierto la aplicación en los últimos 7 días:
T("City", eq, "Tokyo") * Event("11111-11111", "App Open", date daysago lte 7)
  1. Usuarios que realizaron una compra de más de $50 en los últimos 30 días:
Event("11111-11111", "Purchase", attribute "total_price" gte 50.00, date daysago lte 30)
  1. Usuarios cuyos nombres comienzan con “J” o terminan con “e”:
T("Name", startswith, "J") + T("Name", endswith, "e")
  1. Usuarios activos de iOS a menos de 100 km de Nueva York que no han comprado recientemente:
A("11111-11111", ["ios"], [with_tokens]) * Geo("11111-11111", 40.7128, -74.0060, 100) \ Event("11111-11111", "Purchase", date daysago lte 30)
  1. Usuarios con el mejor momento para enviar entre las 9 AM y las 5 PM:
BTTS("11111-11111", gte 9) * BTTS("11111-11111", lte 17)
  1. Usuarios que activaron un evento específico en Android o iOS en la última hora:
Event("11111-11111", "Button Click", platforms ["android", "ios"], date minutesago lte 60)
  1. Dispositivos actualizados en los últimos 3 meses con la versión de la aplicación 4.2 o superior:
Updated("11111-11111", gte "2024-07-01 00:00:00") * AT("11111-11111", "App Version", gte, "4.2")