Linguagem de segmentação
A Pushwoosh oferece um poderoso motor de segmentação para construir Segmentos granulares com base nos valores das Tags. A Linguagem de Segmentação é uma forma específica de escrever e combinar critérios de segmentação para descrever um grupo particular de usuários que correspondem a esses critérios e tratá-los como um único segmento de público.
Este artigo descreve os conceitos básicos e a sintaxe da Linguagem de Segmentação e fornece exemplos abrangentes de construção de critérios de segmentação para vários casos.
Conceitos básicos
Anchor link toCada dispositivo em sua base de usuários tem atributos específicos associados a ele por meio dos valores de Tag.
Por exemplo, digamos que uma usuária chamada Jane mora em Tóquio e sua idade é 28 anos. Essa usuária terá as seguintes Tags definidas para seu dispositivo:
- Nome: Jane
- Cidade: Tóquio
- Idade: 28
Para segmentar a Jane, você precisará descrever um segmento da seguinte forma:
T("Name", eq, "Jane") * T("Age", eq, 28) * T("City", eq, "Tokyo")
Essa combinação de condições é uma expressão de filtro usada na Linguagem de Segmentação para descrever grupos de usuários, também conhecidos como Segmentos de público.
Expressões de filtro
Anchor link toUma expressão de filtro é uma string que contém uma condição ou uma combinação de condições que descrevem o segmento que você precisa.
Condições
Anchor link toCada condição descreve um segmento de dispositivos que correspondem aos critérios especificados nessa condição.
Por exemplo, a seguinte condição constrói um segmento de usuários que moram em Tóquio:
T("City", e, "Tokyo")
onde
- T é uma Tag (tipo de condição);
- eq é um operador a ser aplicado;
- “Tokyo” é um valor de Tag que os usuários têm associado aos seus dispositivos.
Tipos de condição
Anchor link toOs seguintes tipos de condição estão disponíveis para segmentação:
- A (Application) – descreve um segmento de dispositivos com um aplicativo específico instalado. Aliases: App, Application;
- T (Tag) – descreve um segmento de dispositivos com os valores de Tag especificados;
- AT (App-specific tag) – aplicado em combinação com os códigos de aplicativo para tags que são específicas do aplicativo. Alias: Tag;
- Event – descreve um segmento de dispositivos que acionaram um evento específico da Pushwoosh;
- Geo – descreve um segmento de dispositivos dentro de um raio geográfico específico;
- BTTS – descreve um segmento de dispositivos com base no melhor horário para enviar;
- Updated – descreve um segmento de dispositivos com base em seu último timestamp de atualização;
- Segment – referencia outro filtro/segmento por seu código;
- Static (ou S) – referencia um segmento estático pré-definido;
Operações com condições
Anchor link toPara construir segmentos sofisticados, as seguintes operações podem ser aplicadas às condições dentro da expressão de filtro:
União (+)
Anchor link toJunta os segmentos, ou seja, constrói um novo segmento de usuários que correspondem a pelo menos uma das condições especificadas.

Por exemplo, para segmentar usuários que moram em Tóquio ou em Osaka, você precisará descrever o segmento com as seguintes condições:
T("City", eq, "Tokyo") + T("City", eq, "Osaka")
Interseção (*)
Anchor link toConstrói um segmento de usuários que pertencem a ambos os segmentos descritos pelas condições. Assim, apenas os usuários que cumprem cada condição que você especificar serão incluídos.

A seguinte expressão descreve um segmento de usuários que moram em Tóquio e especificaram seus nomes:
T("City", eq, "Tokyo") * T("Name", any)
Diferença (\)
Anchor link toConstrói um segmento de usuários que pertencem a um dos segmentos descritos e não pertencem a outro.

Usuários que moram em Tóquio, mas não forneceram seus nomes, serão descritos da seguinte forma:
T("City", eq, "Tokyo") \ T("Name", any)
Parênteses
Anchor link toDeterminam a ordem das operações a serem realizadas com as condições em sua expressão de filtro.
Por exemplo, a seguinte expressão de filtro obterá primeiro um segmento dos assinantes de 12345-67890 cuja idade é 18 e, em seguida, subtrairá todos os homens desse segmento:
( A("12345-67890") * T("Age", eq, 18) ) \ T("Gender", eq, "Male")
Operadores de condições de Tag
Anchor link toPara cada tipo de Tag, seus próprios operadores são aplicados.
Operadores de Tags de Inteiro
Anchor link to- eq - igual a um valor especificado
- noteq - diferente de um valor especificado
- lte - menor ou igual a um valor especificado
- gte - maior ou igual a um valor especificado
- in - qualquer um dos valores especificados
- notin - diferente de qualquer um dos valores especificados
- between - em um intervalo especificado
- any - dispositivos com qualquer valor definido para a tag
- notset - dispositivos sem valor definido para a tag
Operadores de Tags de String
Anchor link to- eq - igual a um valor especificado
- noteq - diferente de um valor especificado
- startswith - começa com um prefixo especificado
- endswith - termina com um sufixo especificado
- contains - contém uma substring especificada
- in - igual a qualquer um dos valores especificados
- notin - diferente de qualquer um dos valores especificados
- any - dispositivos com qualquer valor definido para a tag
- notset - dispositivos sem valor definido para a tag
Operadores de Tags de Lista
Anchor link to- in - dispositivos com qualquer um dos valores de tag especificados
- notin - nenhum dos valores de tag especificados associados ao dispositivo
- any - dispositivos com qualquer valor definido para a tag
- notset - dispositivos sem valor definido para a tag
Operadores de Tags de Data
Anchor link to- eq - igual à data especificada
- noteq - diferente da data especificada
- lte - antes ou na data especificada
- gte - depois ou na data especificada
- in - igual a qualquer uma das datas especificadas
- notin - diferente de qualquer uma das datas especificadas
- between - em um intervalo especificado
- any - dispositivos com qualquer valor definido para a tag
- notset - dispositivos sem valor definido para a tag
- match - corresponde a um mês do ano e dia do mês especificados.
- daysago eq - igual a um número especificado de dias antes do dia atual
- daysago noteq - diferente de um número especificado de dias antes do dia atual
- daysago lte - menor ou igual a um número especificado de dias antes do dia atual
- daysago gte - maior ou igual a um número especificado de dias antes do dia atual
- daysago between - entre os números de dias especificados
- minutesago lte - menor ou igual a um número especificado de minutos antes do momento atual
- minutesago gte - maior ou igual a um número especificado de minutos antes do momento atual
Operadores de Tags Booleanas
Anchor link to- eq - igual a um valor especificado
- noteq - diferente de um valor especificado
- any - dispositivos com qualquer valor definido para a tag
- notset - dispositivos sem valor definido para a tag
Operadores de Tags de Preço
Anchor link to- eq - igual a um valor especificado
- noteq - diferente de um valor especificado
- lte - menor ou igual a um valor especificado
- gte - maior ou igual a um valor especificado
- in - igual a qualquer um dos valores especificados
- notin - diferente de qualquer um dos valores especificados
- between - em um intervalo especificado
- any - dispositivos com qualquer valor definido para a tag
- notset - dispositivos sem valor definido para a tag
Operadores de Tags de Versão
Anchor link to- eq - igual a um valor especificado
- noteq - diferente de um valor especificado
- lte - menor ou igual a um valor especificado
- gte - maior ou igual a um valor especificado
- in - igual a qualquer um dos valores especificados
- notin - diferente de qualquer um dos valores especificados
- between - em um intervalo especificado
- any - dispositivos com qualquer valor definido para a tag
- notset - dispositivos sem valor definido para a tag
Operadores de condições de Evento
Anchor link toContagem de eventos
Anchor link to- count gte - dispositivos que acionaram o evento mais ou exatamente n vezes
- count lte - dispositivos que acionaram o evento menos ou exatamente n vezes
- count eq - dispositivos que acionaram o evento exatamente n vezes
- count noteq - dispositivos que acionaram o evento qualquer número de vezes, mas não igual a n
Data do evento
Anchor link to- date gte - dispositivos que acionaram o evento depois ou exatamente na data especificada
- date lte - dispositivos que acionaram o evento antes ou exatamente na data especificada
- date eq - dispositivos que acionaram o evento exatamente na data especificada
- date noteq - dispositivos que acionaram o evento a qualquer momento, mas não na data especificada
- date in - dispositivos que acionaram o evento em qualquer uma das datas especificadas
- date notin - dispositivos que acionaram o evento a qualquer momento, mas não em nenhuma das datas especificadas
- date between - dispositivos que acionaram o evento dentro de um período especificado
- date daysago eq - a data de acionamento do evento é igual a um número especificado de dias antes do dia atual
- date daysago noteq - a data de acionamento do evento não é igual a um número especificado de dias antes do dia atual
- date daysago lte - a data de acionamento do evento é menor ou igual a um número especificado de dias antes do dia atual
- date daysago gte - a data de acionamento do evento é maior ou igual a um número especificado de dias antes do dia atual
- date daysago between - a data de acionamento do evento está entre os números de dias especificados
- date minutesago lte - a data de acionamento do evento é menor ou igual a um número especificado de minutos antes do momento atual
- date minutesago gte - a data de acionamento do evento é maior ou igual a um número especificado de minutos antes do momento atual
Plataformas de eventos
Anchor link toFiltre eventos pela plataforma onde foram acionados.
- platforms - lista de plataformas (ex: [“ios”, “android”])
Atributos de eventos
Anchor link toAs condições de evento podem filtrar com base nos valores dos atributos do evento. Os atributos suportam vários tipos de dados com seus operadores correspondentes.
Atributos de Evento de Inteiro
Anchor link to- attribute “name” eq - atributo igual a um valor especificado
- attribute “name” noteq - atributo diferente de um valor especificado
- attribute “name” gte - atributo maior ou igual a um valor especificado
- attribute “name” lte - atributo menor ou igual a um valor especificado
- attribute “name” between - atributo em um intervalo especificado
- attribute “name” in - atributo igual a qualquer um dos valores especificados
- attribute “name” notin - atributo diferente de qualquer um dos valores especificados
- attribute “name” any - qualquer valor definido para o atributo
- attribute “name” notset - nenhum valor definido para o atributo
Atributos de Evento de String
Anchor link to- attribute “name” eq - atributo igual a um valor especificado
- attribute “name” noteq - atributo diferente de um valor especificado
- attribute “name” startswith - atributo começa com um prefixo especificado
- attribute “name” endswith - atributo termina com um sufixo especificado
- attribute “name” contains - atributo contém uma substring especificada
- attribute “name” in - atributo igual a qualquer um dos valores especificados
- attribute “name” notin - atributo diferente de qualquer um dos valores especificados
- attribute “name” any - qualquer valor definido para o atributo
- attribute “name” notset - nenhum valor definido para o atributo
Atributos de Evento Booleanos
Anchor link to- attribute “name” eq - atributo igual a verdadeiro ou falso
- attribute “name” noteq - atributo diferente de verdadeiro ou falso
Atributos de Evento de Data
Anchor link to- attribute “name” eq - atributo igual a uma data especificada
- attribute “name” noteq - atributo diferente de uma data especificada
- attribute “name” gte - atributo depois ou em uma data especificada
- attribute “name” lte - atributo antes ou em uma data especificada
- attribute “name” between - atributo dentro de um intervalo de datas especificado
- attribute “name” in - atributo igual a qualquer uma das datas especificadas
- attribute “name” notin - atributo diferente de qualquer uma das datas especificadas
- attribute “name” daysago eq/noteq/gte/lte/between - atributo relativo a dias atrás
- attribute “name” minutesago gte/lte - atributo relativo a minutos atrás
- attribute “name” any - qualquer valor definido para o atributo
- attribute “name” notset - nenhum valor definido para o atributo
Atributos de Evento de Preço
Anchor link to- attribute “name” eq - atributo igual a um valor de preço especificado
- attribute “name” noteq - atributo diferente de um valor de preço especificado
- attribute “name” gte - atributo maior ou igual a um preço especificado
- attribute “name” lte - atributo menor ou igual a um preço especificado
- attribute “name” between - atributo em um intervalo de preços especificado
- attribute “name” in - atributo igual a qualquer um dos preços especificados
- attribute “name” notin - atributo diferente de qualquer um dos preços especificados
- attribute “name” any - qualquer valor definido para o atributo
- attribute “name” notset - nenhum valor definido para o atributo
Atributos de Evento de Lista
Anchor link to- attribute “name” in - atributo contém qualquer um dos valores especificados
- attribute “name” notin - atributo não contém nenhum dos valores especificados
- attribute “name” any - qualquer valor definido para o atributo
- attribute “name” notset - nenhum valor definido para o atributo
Tipos de condição adicionais
Anchor link toCondição Geo
Anchor link toSegmente dispositivos com base na localização geográfica dentro de um raio especificado.
Sintaxe: Geo("<app-code>", <latitude>, <longitude>, <range-in-km>)
Condição BTTS
Anchor link toSegmente dispositivos pelo melhor horário para enviar notificações (hora do dia, 0-23).
Operadores:
- any - qualquer valor de melhor horário para enviar definido
- eq - correspondência exata da hora
- noteq - diferente da hora
- gte - hora maior ou igual a
- lte - hora menor ou igual a
Condição Updated
Anchor link toFiltre dispositivos pelo seu último timestamp de atualização.
Operadores:
- gte - atualizado após ou na data especificada
- lte - atualizado antes ou na data especificada
- between - atualizado dentro do intervalo de datas
Condição Segment
Anchor link toReferencie outro filtro/segmento pelo seu código.
Condição Static
Anchor link toReferencie um segmento estático pré-definido. Pode usar Static ou a abreviação S.
Flags de presença de dispositivo da condição Application
Anchor link toAs condições de Application suportam flags adicionais para controlar a filtragem de dispositivos e tokens:
- with_tokens - dispositivos com tokens de notificação push
- without_tokens - dispositivos sem tokens de notificação push
- with_devices - usuários com dispositivos registrados
- without_devices - usuários/perfis sem dispositivos registrados
Exemplos de expressão de filtro
Anchor link toExemplos básicos
Anchor link to- Dispositivos iOS e Android com o aplicativo instalado e com tokens de push:
A("11111-11111", ["ios","android"], [with_tokens])- Dispositivos iOS e Android com o aplicativo instalado, mas sem tokens de push:
A("11111-11111", ["ios","android"], [without_tokens])- Dispositivos iOS e Android com o aplicativo instalado, quer tenham tokens de push ou não:
A("11111-11111", ["ios","android"], [with_tokens, without_tokens])- Todos os assinantes do aplicativo que compraram algo no aplicativo:
AT("11111-11111", "In-App Purchase", gte, 1)Exemplos avançados
Anchor link to- Usuários em Tóquio que abriram o aplicativo nos últimos 7 dias:
T("City", eq, "Tokyo") * Event("11111-11111", "App Open", date daysago lte 7)- Usuários que fizeram uma compra acima de $50 nos últimos 30 dias:
Event("11111-11111", "Purchase", attribute "total_price" gte 50.00, date daysago lte 30)- Usuários cujos nomes começam com “J” ou terminam com “e”:
T("Name", startswith, "J") + T("Name", endswith, "e")- Usuários ativos de iOS a 100 km de Nova York que não compraram recentemente:
A("11111-11111", ["ios"], [with_tokens]) * Geo("11111-11111", 40.7128, -74.0060, 100) \ Event("11111-11111", "Purchase", date daysago lte 30)- Usuários com melhor horário para enviar entre 9h e 17h:
BTTS("11111-11111", gte 9) * BTTS("11111-11111", lte 17)- Usuários que acionaram um evento específico no Android ou iOS na última hora:
Event("11111-11111", "Button Click", platforms ["android", "ios"], date minutesago lte 60)- Dispositivos atualizados nos últimos 3 meses com a versão do aplicativo 4.2 ou superior:
Updated("11111-11111", gte "2024-07-01 00:00:00") * AT("11111-11111", "App Version", gte, "4.2")