Pular para o conteúdo

Linguagem de segmentação

A Pushwoosh oferece um poderoso motor de segmentação para construir Segmentos granulares com base nos valores de Tag. 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 to

Cada dispositivo em sua base de usuários tem atributos específicos associados a ele por meio de valores de Tag.

Por exemplo, digamos que uma usuária chamada Jane mora em Tóquio e sua idade é 28. 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 to

A 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 to

Cada 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 to

Os 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-scoped tag) – procura um valor de tag dentro de um aplicativo específico; o código do aplicativo é necessário como primeiro argumento. 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 carimbo de data/hora de atualização;
  • Segment – referencia outro filtro/segmento por seu código;

Operações com condições

Anchor link to

Para construir segmentos sofisticados, as seguintes operações podem ser aplicadas às condições dentro da expressão de filtro:

União (+)

Anchor link to

Junta os segmentos, ou seja, constrói um novo segmento de usuários que correspondem a pelo menos uma das condições especificadas.

União de segmentos

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 to

Constró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.

Interseção de segmentos

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 to

Constrói um segmento de usuários que pertencem a um dos segmentos descritos e não pertencem a outro.

Diferença de segmentos

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 to

Determinam 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 de assinantes do 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 to

Para 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 - não igual a 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 - não igual a nenhum dos valores especificados
  • between - em um intervalo especificado
  • any - dispositivos com quaisquer valores definidos 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 - não igual a 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 - não igual a nenhum dos valores especificados
  • any - dispositivos com quaisquer valores definidos 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 quaisquer valores definidos para a tag
  • notset - dispositivos sem valor definido para a tag

Operadores de Tags de Data

Anchor link to
  • eq - igual à data especificada
  • noteq - não igual à data especificada
  • lte - antes ou na data especificada
  • gte - depois ou na data especificada
  • in - igual a qualquer uma das datas especificadas
  • notin - não igual a nenhuma das datas especificadas
  • between - em um intervalo especificado
  • any - dispositivos com quaisquer valores definidos 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 - não igual a 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
  • daysahead - em N a M dias a partir do dia atual (UTC), inclusivo em ambas as extremidades

Operadores de Tags Booleanas

Anchor link to
  • eq - igual a um valor especificado
  • noteq - não igual a um valor especificado
  • any - dispositivos com quaisquer valores definidos 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 - não igual a 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 - não igual a nenhum dos valores especificados
  • between - em um intervalo especificado
  • any - dispositivos com quaisquer valores definidos 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 - não igual a 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 - não igual a nenhum dos valores especificados
  • between - em um intervalo especificado
  • any - dispositivos com quaisquer valores definidos para a tag
  • notset - dispositivos sem valor definido para a tag

Operadores de condições de Evento

Anchor link to

Contagem 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 daysahead - a data de acionamento do evento está em um número especificado de dias a partir do dia atual (o intervalo é inclusivo em ambas as extremidades, veja Operadores de Tags de Data acima para a semântica completa)
  • 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 to

Filtre eventos pela plataforma onde foram acionados.

  • platforms - lista de plataformas (ex: [“ios”, “android”])

Atributos de eventos

Anchor link to

As 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 não igual a 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 não igual a nenhum 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 não igual a 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 não igual a nenhum 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 true ou false
  • attribute “name” noteq - atributo não igual a true ou false

Atributos de Evento de Data

Anchor link to
  • attribute “name” eq - atributo igual a uma data especificada
  • attribute “name” noteq - atributo não igual a 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 não igual a nenhuma das datas especificadas
  • attribute “name” daysago eq/noteq/gte/lte/between - atributo relativo a dias atrás
  • attribute “name” daysahead from to - atributo em um intervalo especificado de dias a partir do dia atual (o intervalo é inclusivo em ambas as extremidades, veja Operadores de Tags de Data acima para a semântica completa)
  • 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 não igual a 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 não igual a nenhum 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 to

Condição Geo

Anchor link to

Segmente 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 to

Segmente 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 - não igual à hora
  • gte - hora maior ou igual a
  • lte - hora menor ou igual a

Condição Updated

Anchor link to

Filtre dispositivos pelo seu último carimbo de data/hora de atualização.

Operadores:

  • gte - atualizado depois ou na data especificada
  • lte - atualizado antes ou na data especificada
  • between - atualizado dentro do intervalo de datas

Condição Segment

Anchor link to

Referencie outro filtro/segmento por seu código.

Flags de presença de dispositivo da condição Application

Anchor link to

As 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 to

Exemplos básicos

Anchor link to
  1. Dispositivos iOS e Android com o aplicativo instalado e com tokens de push:
A("11111-11111", ["ios","android"], [with_tokens])
  1. Dispositivos iOS e Android com o aplicativo instalado, mas sem tokens de push:
A("11111-11111", ["ios","android"], [without_tokens])
  1. Dispositivos iOS e Android com o aplicativo instalado, tenham eles tokens de push ou não:
A("11111-11111", ["ios","android"], [with_tokens, without_tokens])
  1. Todos os assinantes do aplicativo que compraram algo no aplicativo:
AT("11111-11111", "In-App Purchase", gte, 1)

Exemplos avançados

Anchor link to
  1. 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)
  1. 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)
  1. Usuários cujos nomes começam com “J” ou terminam com “e”:
T("Name", startswith, "J") + T("Name", endswith, "e")
  1. 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)
  1. Usuários com melhor horário para enviar entre 9h e 17h:
BTTS("11111-11111", gte 9) * BTTS("11111-11111", lte 17)
  1. 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)
  1. 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")