1. Documentação
  2. SDK JavaScript
  3. Referência do SDK
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

Referência do SDK

Todos os comandos de pushwi(), com parâmetros, retorno e exemplos.

Loading documentation…

Instalação do SDK< PreviousSoft-askNext >

Powered by heyo

On this page

Como os comandos respondemEsperando o SDK carregarComandosinitsubscribeaddTag e removeTagsetAttributelogintrackstatusunsubscribeTags e atributosPelo seu servidor

Todo comando passa pela função global pushwi, com o nome do comando como primeiro argumento:

js
pushwi("addTag", "vip");pushwi("status", function (err, status) { /* … */ });

Como os comandos respondem

Os comandos assíncronos aceitam um callback no estilo Node, function (err, data), como último argumento, e também retornam uma Promise. As duas formas funcionam:

js
pushwi("status", function (err, s) {  if (err) return;  console.log(s.subscribed);});const s = await pushwi("status");

A Promise nunca é rejeitada. Em caso de erro ela resolve com undefined, e o erro só chega pelo callback. Se você precisa tratar a falha, use o callback.

Algumas falhas são esperadas e não aparecem no console: navegador sem suporte a push, site for fora da tela de início do iOS, permissão negada, soft-ask recusado e comando que exige inscrição chamado sem inscrição. Falhas de rede ou HTTP aparecem como [pushwi] no console quando não há callback.

Esperando o SDK carregar

Quando o SDK termina de carregar, ele define pushwi.ready = true e dispara o evento pushwi:ready em window. Código que roda antes disso pode usar a fila de comandos ou esperar o evento:

js
function quandoPronto(fn) {  if (window.pushwi && window.pushwi.ready) return fn();  window.addEventListener("pushwi:ready", fn);}

Comandos

init

js
pushwi("init", "pub_XXXXXXXXXXXXXXXXXXXXXXXX");

Define o ID público do site. Só é necessário quando a tag não tem data-site. Chamar init não dispara a inscrição automática; depois dele, chame subscribe.

subscribe

js
pushwi("subscribe", function (err, result) {  // result: { subscribed: true }});

Inscreve o navegador. Se o soft-ask estiver ligado e a permissão ainda não foi pedida, ele aparece antes. Depois vem o pedido de permissão do navegador e, por fim, a inscrição é enviada à API com as tags, os atributos e o login definidos até aqui.

Chame subscribe a partir de um clique do usuário. Vários navegadores bloqueiam pedidos de permissão sem interação. Quando isso acontece, o SDK espera o próximo clique ou tecla na página e pede de novo.

Pode chamar mais de uma vez: chamadas simultâneas compartilham o mesmo processo, e chamar com a permissão já dada só atualiza os dados da inscrição.

addTag e removeTag

js
pushwi("addTag", "vip");pushwi("removeTag", "vip");

Adicionam ou removem uma tag da lista local do SDK. Nada é enviado na hora. Veja tags e atributos.

setAttribute

js
pushwi("setAttribute", "plano", "anual");pushwi("setAttribute", "pedidos", 7);

Define um atributo na lista local, também enviado só na próxima inscrição. Use valores simples: texto, número ou booleano.

login

js
pushwi("login", "user-42", "6f1c0e…");

Associa o navegador a um usuário do seu sistema. O segundo argumento é o token HMAC gerado no seu servidor. Sem um token válido, a API recusa a inscrição inteira. Veja identificação de usuários.

Como as tags, o login só vai para a API na próxima inscrição. Chame antes do subscribe, ou pela fila de comandos antes de o SDK carregar.

track

js
pushwi("track", "checkout.concluido", { valor: 189.9, cupom: "FRETE" });

Registra um evento personalizado. O nome aceita até 64 caracteres entre letras, números e _ . : -. As propriedades são até 20 pares com valores simples; textos de até 255 caracteres.

Se o navegador estiver inscrito, o evento fica ligado ao assinante e pode ser usado em segmentos. Sem inscrição, o evento é aceito mas não tem dono.

status

js
pushwi("status", function (err, s) {  // s: { subscribed: true, permission: "granted" }});
CampoValores
subscribedtrue se este navegador tem uma inscrição de push ativa
permissiondefault, granted, denied ou unsupported

Com permission: "denied", o site não pode pedir de novo; só o próprio usuário reativa nas configurações do navegador. Esconda o botão de inscrição nesse caso.

unsubscribe

js
pushwi("unsubscribe", function (err, result) {  // result: { subscribed: false }});

Avisa a API para descadastrar este dispositivo e cancela a inscrição no navegador. O assinante e os outros dispositivos dele continuam ativos. Para apagar a pessoa, use a rota de exclusão no seu servidor.

Tags e atributos

addTag, removeTag, setAttribute e login alteram só o estado local do SDK naquela página. Esse estado vai para a API na próxima inscrição, que acontece:

  • na inscrição automática, a cada página carregada quando a permissão já foi dada;
  • quando você chama subscribe.

Na API, o comportamento é este:

DadoO que acontece na inscrição
TagsSó vão na inscrição se a página chamou addTag ou removeTag. A lista enviada substitui as tags do assinante, inclusive quando fica vazia. Página que não mexe em tags não altera as tags salvas.
AtributosCada chave enviada é criada ou atualizada. Chaves não enviadas continuam como estavam. Valor null apaga a chave.
LoginLiga o dispositivo ao assinante com aquele external_id, criando se não existir.
Defina as tags em todas as páginas

Como a lista substitui as tags anteriores, uma página que chama addTag("vip") e outra que chama addTag("newsletter") vão alternar a tag do assinante conforme a última página visitada. Nas páginas que mexem em tags, monte a lista completa a partir do mesmo dado (o usuário logado, por exemplo). Páginas que não chamam addTag nem removeTag não enviam tags e não apagam nada.

Para zerar as tags, chame removeTag numa página que não adiciona nenhuma: a lista local fica vazia, vai assim para a API na próxima inscrição e limpa as tags do assinante.

Para mandar tags novas na hora, sem esperar a próxima página, chame subscribe de novo depois de definir:

js
pushwi("addTag", "comprou-2026");pushwi("subscribe");

Pelo seu servidor

Quando a informação nasce no seu sistema (uma compra, uma mudança de plano), não é preciso esperar a próxima visita da pessoa. Atualizar assinante muda tags e atributos na hora, com a chave secreta:

bash
curl -X PATCH https://api.pushwi.com/v1/subscribers/0199b2d4-6f1e-7c3a-9b1e-2f4a8c6d0e11 \  -H "Authorization: Bearer $PUSHWI_KEY" \  -H "Content-Type: application/json" \  -d '{ "add_tags": ["comprou-2026"], "attributes": { "plano": "anual", "cupom": null } }'
CampoEfeito
tagsSubstitui todas as tags. [] limpa.
add_tags, remove_tagsAcrescenta ou tira só as tags listadas, sem mexer nas outras. Não podem vir junto com tags.
attributesMescla chave a chave, como na inscrição. null apaga a chave.

O assinante pode ter até 50 tags e 50 atributos. Uma alteração que passe disso é recusada inteira com 422.

Lembre que a próxima inscrição de uma página que mexe em tags substitui a lista. Se o servidor e o SDK cuidam das tags do mesmo assinante, a página precisa montar a lista completa, ou deixar as tags só com o servidor.