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

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

Uma 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-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 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.

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.

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.

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 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 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 - 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 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 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 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 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 - diferente da hora
  • gte - hora maior ou igual a
  • lte - hora menor ou igual a

Condição Updated

Anchor link to

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

Referencie outro filtro/segmento pelo seu código.

Condição Static

Anchor link to

Referencie 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 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, quer tenham 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")