1. Documentação
  2. Guias
  3. Segmentos
Ir para Dashboard
  • Documentação do Pushwi
  • Início rápido
  • Instalação do SDK
  • Referência do SDK
  • Soft-ask
  • Migração de outro provedor
  • Identificação de usuários
  • Segmentos
  • Campanhas
  • Descadastro e LGPD
  • Webhooks

Segmentos

Como montar a definição de um segmento, com todos os tipos de regra e operadores.

Loading documentation…

Identificação de usuários< PreviousCampanhasNext >

Powered by heyo

On this page

EstruturaTipos de regraLocalização, dispositivo e origemIdiomaIdentificadoTagsAtributosData da inscrição e última visitaEventosA resposta

Um segmento filtra os dispositivos ativos de um site. Ele é salvo como uma definição em JSON e avaliado de novo a cada envio, então quem passa a atender às regras entra na próxima campanha sem você fazer nada.

Crie pelo painel ou pela rota Criar segmento, e use o id devolvido como segment_id ao criar uma campanha.

Estrutura

json
{  "name": "Leitores de esporte inativos",  "definition": {    "version": 2,    "groups": [      {        "rules": [          { "type": "tags", "op": "has_any", "values": ["esporte"] },          { "type": "last_seen", "op": "inactive_for_days", "value": 14 }        ]      },      {        "rules": [          { "type": "attribute", "key": "plano", "op": "eq", "value": "anual" }        ]      }    ]  }}

As regras dentro de um grupo se combinam com E. Os grupos se combinam com OU. O exemplo seleciona quem tem a tag esporte e está sumido há 14 dias, mais quem tem plano anual.

Os limites são de 1 a 10 grupos por segmento e de 1 a 20 regras por grupo.

Tipos de regra

Localização, dispositivo e origem

json
{ "type": "country", "op": "in", "values": ["BR", "PT"] }
TipoCompara comObservação
countryPaís, código ISO de duas letrasConvertido para maiúsculas
regionEstado ou regiãoNome por extenso, como vem da geolocalização (São Paulo)
cityCidadeComparação exata
browserNavegadorchrome, firefox, safari, edge, opera, samsung
osSistema operacionalwindows, macos, linux, android, ios, chromeos
deviceTipo de aparelhodesktop, mobile, tablet
migrated_fromProvedor de origem da migraçãoValores da migração

Operadores: in e not_in, com values de 1 a 200 itens. O not_in também seleciona dispositivos sem o dado preenchido.

País, região e cidade vêm da localização aproximada do IP no momento da inscrição.

Idioma

json
{ "type": "lang", "op": "in", "values": ["pt"] }

Operadores in e not_in. A comparação usa o idioma base: pt seleciona pt, pt-BR e pt-PT.

Identificado

json
{ "type": "identified", "op": "is", "value": true }

Seleciona dispositivos de assinantes com external_id (true) ou anônimos (false).

Tags

json
{ "type": "tags", "op": "has_all", "values": ["vip", "newsletter"] }
OperadorSeleciona quem
has_anytem pelo menos uma das tags
has_alltem todas as tags
has_nonenão tem nenhuma das tags

Até 50 tags por regra.

Atributos

json
{ "type": "attribute", "key": "pedidos", "op": "gte", "value": "5" }
OperadorSignificado
eq, neqigual, diferente
contains, not_containscontém o texto, não contém
gt, gte, lt, ltemaior, maior ou igual, menor, menor ou igual
exists, not_existso atributo existe ou não, sem olhar o valor

value é sempre um valor simples de até 255 caracteres e não é usado em exists e not_exists. Nas comparações de maior e menor, quando value é um número, só atributos numéricos entram e a comparação é numérica. Os negativos (neq, not_contains) também selecionam quem não tem o atributo.

Data da inscrição e última visita

json
{ "type": "subscribed", "op": "within_days", "value": 7 }{ "type": "last_seen", "op": "inactive_for_days", "value": 30 }
TipoOperadores
subscribedwithin_days (inscrito nos últimos N dias), older_than_days (inscrito há mais de N dias)
last_seenactive_within_days (visitou o site nos últimos N dias), inactive_for_days (não visita há N dias ou nunca registrou visita)

value vai de 1 a 3650.

Eventos

json
{ "type": "event", "op": "did", "event": "clicked", "within_days": 30, "min_count": 2 }

Seleciona quem fez (did) ou não fez (did_not) um evento.

CampoUso
eventdelivered, clicked, closed, sent ou custom
within_daysJanela de tempo, de 1 a 3650 dias. Sem ele, considera todo o histórico guardado.
min_countMínimo de ocorrências, até 100000. Só vale com did.
campaign_idSó eventos de uma campanha. Não vale para custom.
nameNome do evento personalizado, quando event é custom
propertyFiltro numa propriedade do evento personalizado: { "key": "valor", "op": "gte", "value": "100" }

O property.op aceita os mesmos operadores de atributo mais exists.

json
{  "type": "event",  "op": "did",  "event": "custom",  "name": "checkout.concluido",  "property": { "key": "valor", "op": "gte", "value": "100" },  "within_days": 90}

O histórico de eventos segue a retenção do plano. Depois desse prazo, os eventos antigos deixam de contar.

A resposta

json
{  "id": 42,  "name": "Leitores de esporte inativos",  "definition": { "version": 2, "groups": [ … ] },  "audience_count": 1843,  "subscriber_count": 1290,  "warnings": []}

audience_count é o número de dispositivos ativos que atendem às regras agora: uma pessoa com celular e notebook conta duas vezes. É quantas notificações sairiam numa campanha para o segmento. subscriber_count é o número de assinantes distintos por trás desses dispositivos, ou seja, quantas pessoas.

warnings lista regras que não puderam ser aplicadas, como um campaign_id de outro site. Uma regra com aviso não seleciona ninguém, então o grupo dela fica vazio. Confira essa lista sempre que audience_count vier zerado.

Erros de formato voltam com 422, apontando o caminho da regra: definition.groups.0.rules.1.op.