Badges no ícone do app

Mostre a contagem de não lidos no ícone do seu app

O badge é a menor coisa que você pode dizer ao usuário, e ler não custa nada a ele. Defina, incremente ou zere o badge na mesma campanha e Jornada de tudo o que você já envia.

Três telas iniciais de iPhone lado a lado, cada uma com alguns ícones de app exibindo um badge vermelho de não lidos no canto e os demais ícones sem badge

Mais de 80.000 empresas confiam na Pushwoosh para escalar o engajamento

O recurso, por completo

Um badge é um único número inteiro, e é exatamente aí que está a graça. Ele não ocupa banner nem toca som, não gasta nada da permissão que você suou para conseguir e continua funcionando com o usuário que dispensou seu push três horas atrás. Há três coisas que você pode fazer com esse número pelo editor ou pela API, mais uma ressalva sobre onde ele de fato aparece.

Uma contagem exata

ios_badges: 5 coloca um 5 no ícone, seja qual for o valor anterior. O valor que você envia é o que o usuário vê — ideal quando seu servidor já sabe o total real.

+1 e -1

Mudanças relativas sobem ou descem a contagem sem que você precise acompanhá-la. O SDK devolve o valor do dispositivo pelo endpoint interno /setBadge, então o contador da Pushwoosh fica alinhado com o ícone real.

0 zera o badge

Envie 0 e o badge sai do ícone. Zerar ao abrir o app é a diferença entre uma contagem em que o usuário confia e uma bolinha vermelha que ele aprende a ignorar.

iOS uniforme, Android depende do launcher

No iOS o badge é um valor padrão aps.badge, e todo dispositivo o desenha igual. No Android não existe API nativa de badge, então a exibição depende do launcher — e a Pushwoosh deixa isso claro em vez de prometer uma cobertura que não pode entregar.

O que você controla

O que você enviaO que acontece com a contagemOnde fica
Um inteiro, 5Define o badge exatamente com esse valorios_badges / android_badges, ou o campo Badges
+1, +3Incrementa a contagem atualO mesmo campo. Também +n nos presets Android
-1Decrementa a contagem atualO mesmo campo, para uma leitura ou dispensa registrada no servidor
0Remove o badge do íconeO mesmo campo, ou o próprio app ao abrir
Uma chamada do SDKDefine ou zera o badge a partir de um evento no appsetApplicationIconBadgeNumber no iOS, PushwooshBadge no Android
NadaO SDK aplica o badge que chegou com o pushSem código no app para o caso básico do iOS
Uma extensãoAltera a contagem antes de a notificação ser exibidaPWNotificationExtensionManager com App Groups
O que você envia
1 / 7
Um inteiro, 5
O que acontece com a contagem
Define o badge exatamente com esse valor
Onde fica
ios_badges / android_badges, ou o campo Badges
O que você envia
2 / 7
+1, +3
O que acontece com a contagem
Incrementa a contagem atual
Onde fica
O mesmo campo. Também +n nos presets Android
O que você envia
3 / 7
-1
O que acontece com a contagem
Decrementa a contagem atual
Onde fica
O mesmo campo, para uma leitura ou dispensa registrada no servidor
O que você envia
4 / 7
0
O que acontece com a contagem
Remove o badge do ícone
Onde fica
O mesmo campo, ou o próprio app ao abrir
O que você envia
5 / 7
Uma chamada do SDK
O que acontece com a contagem
Define ou zera o badge a partir de um evento no app
Onde fica
setApplicationIconBadgeNumber no iOS, PushwooshBadge no Android
O que você envia
6 / 7
Nada
O que acontece com a contagem
O SDK aplica o badge que chegou com o push
Onde fica
Sem código no app para o caso básico do iOS
O que você envia
7 / 7
Uma extensão
O que acontece com a contagem
Altera a contagem antes de a notificação ser exibida
Onde fica
PWNotificationExtensionManager com App Groups

Onde você configura

Um campo Badges no editor

O formulário Send-Push e os presets de push aceitam um número, +n, -n ou 0. Mudar o que uma campanha faz com a contagem não exige release nem desenvolvedor.

Uma chave na API

ios_badges e android_badges em /createMessage. No iOS o valor vai para o campo aps.badge do payload que a Apple já transporta.

Aplicado e sincronizado pelo SDK

O SDK aplica o valor recebido sem código no app e mantém atualizado o badge registrado no servidor via /setBadge, para que o +1 conte a partir do número certo.

O trabalho que ele faz, dentro de uma jornada

Uma contagem, várias fontes

O badge é um atributo de uma mensagem que você já envia, então não precisa de integração própria. A mesma Jornada do Cliente e o mesmo perfil de cliente que decidem quem recebe o push também decidem qual será a contagem.

A única pergunta em aberto é o que alimenta o número. O total de não lidos de uma Message Inbox pode ser a contagem em si, um push silencioso pode alterá-la sem alerta nenhum, e um push mobile visível pode levá-la junto. Um passo no objetivo da jornada volta tudo para 0.

Três recompensas se acumulam enquanto o jogador está fora

Cada recompensa concedida dispara um evento, e cada evento envia um push silencioso que soma +1. Nada toca, nada acende a tela de bloqueio, e à noite o ícone mostra discretamente um 3.

Quando o evento ao vivo abre, a mesma Jornada envia um push visível que vale a interrupção. Seja qual for o motivo que traz o jogador de volta, o SDK zera o badge ao abrir o app, e a contagem de amanhã começa de um número verdadeiro.

Para que usar

O badge rende na proporção da densidade de contagem: se o seu app tem um número real e crescente de itens não lidos ou pendentes que vale mostrar no ícone. Apps construídos em torno de um contador ganham um empurrão de reengajamento de graça; apps sem nada para contar ganham uma bolinha vermelha que ensina o usuário a ignorar bolinhas vermelhas.

MomentoO que o número significaPor que o badge funciona
E-commerce e marketplaces: itens no carrinho, ofertas não lidas2 itens no seu carrinhoUm lembrete discreto que não custa nenhuma atenção ao comprador
Fintech: extratos, alertas, ações pendentes1 ação pendenteExiste uma contagem real de documentos não lidos, e o ícone a mostra sem expor detalhes na tela de bloqueio
Jogos mobile: recompensas, vidas recarregadas, entradas em eventos3 itens para coletarA contagem já faz parte do ciclo de retenção, e coletar é toda a motivação
Apps de criadores e assinatura: lançamentos, DMs, comentários12 não lidasUm feed social já mantém esse número internamente; o ícone só precisa mostrá-lo
Mídia e notícias: matérias não lidas, novos episódios5 matérias não lidasO caso clássico, e o que traz o leitor de volta para uma sessão com mais consistência
Trading e apostas: alertas disparados, apostas liquidadas4 alertas disparadosOs alertas se acumulam num número que de fato significa algo para o usuário
Saúde e telemedicina: resultados, mensagens segurasSeus resultados chegaramA contagem vai para a tela inicial enquanto o conteúdo fica atrás da autenticação
EdTech: aulas não vistas, sequências, tarefas2 aulas esperandoUma sequência ou uma fila de aulas é exatamente o tipo de número que as pessoas gostam de zerar
Momento
1 / 8
E-commerce e marketplaces: itens no carrinho, ofertas não lidas
O que o número significa
2 itens no seu carrinho
Por que o badge funciona
Um lembrete discreto que não custa nenhuma atenção ao comprador
Momento
2 / 8
Fintech: extratos, alertas, ações pendentes
O que o número significa
1 ação pendente
Por que o badge funciona
Existe uma contagem real de documentos não lidos, e o ícone a mostra sem expor detalhes na tela de bloqueio
Momento
3 / 8
Jogos mobile: recompensas, vidas recarregadas, entradas em eventos
O que o número significa
3 itens para coletar
Por que o badge funciona
A contagem já faz parte do ciclo de retenção, e coletar é toda a motivação
Momento
4 / 8
Apps de criadores e assinatura: lançamentos, DMs, comentários
O que o número significa
12 não lidas
Por que o badge funciona
Um feed social já mantém esse número internamente; o ícone só precisa mostrá-lo
Momento
5 / 8
Mídia e notícias: matérias não lidas, novos episódios
O que o número significa
5 matérias não lidas
Por que o badge funciona
O caso clássico, e o que traz o leitor de volta para uma sessão com mais consistência
Momento
6 / 8
Trading e apostas: alertas disparados, apostas liquidadas
O que o número significa
4 alertas disparados
Por que o badge funciona
Os alertas se acumulam num número que de fato significa algo para o usuário
Momento
7 / 8
Saúde e telemedicina: resultados, mensagens seguras
O que o número significa
Seus resultados chegaram
Por que o badge funciona
A contagem vai para a tela inicial enquanto o conteúdo fica atrás da autenticação
Momento
8 / 8
EdTech: aulas não vistas, sequências, tarefas
O que o número significa
2 aulas esperando
Por que o badge funciona
Uma sequência ou uma fila de aulas é exatamente o tipo de número que as pessoas gostam de zerar

Quando o badge é a ferramenta errada

O badge informa uma quantidade. Tudo sobre o que está esperando, e com que urgência, pertence a outra superfície.

  • O usuário precisa saber o que chegou: isso é um push mobile, um push com rich media ou uma mensagem in-app.
  • O momento não pode esperar. O badge é passivo por natureza, então urgência pertence a um nível de interrupção.
  • O estado é contínuo, não contado: um pedido a caminho, um placar ao vivo. Isso é uma Live Activity.
  • O app não tem uma contagem que cresce naturalmente. Seguros, hotéis, contas de consumo e ferramentas de sessão única geram uma fatura ou uma reserva, e o badge ali é ruído.
  • Sua audiência é majoritariamente Android — como acontece com boa parte dos apps no Brasil — e o badge seria uma mecânica principal. Trate-o como melhor esforço lá e desenhe o fluxo para funcionar sem ele.
A contagem chama o olhar. O push ainda precisa valer a abertura

50 notificações push que valem a pena copiar, com o texto e o criativo por trás de cada uma.

Veja os exemplos

Cobertura de plataformas e técnica

O iOS tem um único badge, e todo iPhone o desenha do mesmo jeito. O Android não tem API universal de badge, então o que aparece na tela inicial depende do launcher que o usuário estiver usando. A última coluna mostra quem de fato desenha o número, porque, para este recurso, é lá que está a resposta honesta.

RecursoiOSAndroidWebEntregue por
Valor exato do badgeSim, aps.badge padrãoMelhor esforço, depende do launcher–O payload do push, aplicado pelo SDK
+1 e -1 relativosSim, Pushwoosh SDK 6.4.0++n nos presets, depende do launcher–O push, com /setBadge mantendo o contador sincronizado
Zerar para 0SimDepende do launcher–O payload do push, ou o app ao abrir
Campo Badges sem códigoSim, no editor e nos presetsSim, um valor de badge nos presets–Pushwoosh Control Panel
Definir ou zerar pelo código do appsetApplicationIconBadgeNumberPushwooshBadge–Seu app, pelo Pushwoosh SDK
Alterar a contagem antes da exibiçãoSim, numa Notification Service Extension––PWNotificationExtensionManager com App Groups
Atualizar o badge sem alertaSimMelhor esforço–Um push silencioso, mesma audiência e Jornada
Cobertura de launchers e dispositivosTodo iPhone, de forma idênticaSony, Samsung, LG, HTC, ASUS, ADW, APEX, NOVA, Huawei, ZUK, OPPO–com.pushwoosh:pushwoosh-badge com permissões de launcher
Pixel e launchers sem suporten/a––Não existe API nativa de badge no Android, então nada aparece
Ler a contagem atual do SO–––O iOS não expõe API de leitura, então a contagem fica no seu app ou no servidor
Badge no ícone do appSimDepende do launcher–Navegadores não têm superfície equivalente para web push
Recurso
1 / 11
Valor exato do badge
iOS
Sim, aps.badge padrão
Android
Melhor esforço, depende do launcher
Web
–
Entregue por
O payload do push, aplicado pelo SDK
Recurso
2 / 11
+1 e -1 relativos
iOS
Sim, Pushwoosh SDK 6.4.0+
Android
+n nos presets, depende do launcher
Web
–
Entregue por
O push, com /setBadge mantendo o contador sincronizado
Recurso
3 / 11
Zerar para 0
iOS
Sim
Android
Depende do launcher
Web
–
Entregue por
O payload do push, ou o app ao abrir
Recurso
4 / 11
Campo Badges sem código
iOS
Sim, no editor e nos presets
Android
Sim, um valor de badge nos presets
Web
–
Entregue por
Pushwoosh Control Panel
Recurso
5 / 11
Definir ou zerar pelo código do app
iOS
setApplicationIconBadgeNumber
Android
PushwooshBadge
Web
–
Entregue por
Seu app, pelo Pushwoosh SDK
Recurso
6 / 11
Alterar a contagem antes da exibição
iOS
Sim, numa Notification Service Extension
Android
–
Web
–
Entregue por
PWNotificationExtensionManager com App Groups
Recurso
7 / 11
Atualizar o badge sem alerta
iOS
Sim
Android
Melhor esforço
Web
–
Entregue por
Um push silencioso, mesma audiência e Jornada
Recurso
8 / 11
Cobertura de launchers e dispositivos
iOS
Todo iPhone, de forma idêntica
Android
Sony, Samsung, LG, HTC, ASUS, ADW, APEX, NOVA, Huawei, ZUK, OPPO
Web
–
Entregue por
com.pushwoosh:pushwoosh-badge com permissões de launcher
Recurso
9 / 11
Pixel e launchers sem suporte
iOS
n/a
Android
–
Web
–
Entregue por
Não existe API nativa de badge no Android, então nada aparece
Recurso
10 / 11
Ler a contagem atual do SO
iOS
–
Android
–
Web
–
Entregue por
O iOS não expõe API de leitura, então a contagem fica no seu app ou no servidor
Recurso
11 / 11
Badge no ícone do app
iOS
Sim
Android
Depende do launcher
Web
–
Entregue por
Navegadores não têm superfície equivalente para web push

Segurança e hospedagem

A Pushwoosh roda em hardware próprio nos EUA e na Alemanha, em conformidade com GDPR.

ISO 27001:2022 CertifiedISO 27001 CertifiedGDPR CompliantData Privacy FrameworkHIPAA CompliantSOC 2 Type 2 CertifiedOWASP Compliant

Como funciona

Definir um badge é sem código e gratuito em todos os planos. O tempo de engenharia fica em dois pontos específicos, e nenhum deles é o caso básico do iOS.

  1. Monte a contagem (sem código)

    Digite um número, +n, -n ou 0 no campo Badges do formulário Send-Push ou de um preset, ou envie ios_badges e android_badges pela Messages API. No iOS o caso básico não exige nada do seu app: o SDK aplica o valor na chegada.

  2. Configure os dois pontos que precisam (desenvolvedor)

    O Android precisa da biblioteca com.pushwoosh:pushwoosh-badge e das permissões específicas de cada launcher no manifest. Zerar ao abrir o push ou o app é uma chamada do SDK, e uma Notification Service Extension com App Groups só é necessária para contagens que precisam mudar antes da exibição.

  3. Orquestre (sem código)

    Alimente o número com o total de não lidos da sua Message Inbox, altere-o com um push silencioso que não mostra alerta e zere-o no objetivo da mesma Jornada do Cliente que roda seu push, in-app e email.

Limites que vale conhecer

Um recurso de contagem com uma plataforma uniforme e outra fragmentada. Estes são os limites.

  • O iOS é uniforme e de primeira classe. O Android é melhor esforço, porque o SO não tem API universal de badge e o launcher decide o que aparece.
  • A cobertura no Android é realmente desigual. Samsung e Xiaomi usam mecanismos diferentes, o launcher do próprio Pixel do Google em geral não mostra badges no ícone, e alguns launchers de terceiros os ignoram.
  • Atualizações de badge no Android dependem da bateria. Doze e App Standby limitam o trabalho em segundo plano de que elas dependem, e um app forçado a parar não consegue atualizar a contagem até ser aberto de novo.
  • Dispositivos Huawei entregam o controle do badge ao launcher da própria Huawei, então o comportamento varia por dispositivo e por versão de EMUI ou HarmonyOS.
  • +1 e -1 relativos dependem de o SDK saber o valor atual. Um app que sobrescreve o badge sem sincronizar pode fazer um incremento do servidor contar a partir do número errado, e o iOS não oferece API para ler o badge do sistema.
  • A mecânica de badge via push mudou no iOS SDK 6.4.0. Apps que usavam o badge para contar pushes recebidos tiveram de migrar, então planeje com base no comportamento atual, não no legado.
  • O badge transporta uma quantidade e nada mais. O que está esperando, e com que urgência, precisa vir de um push, de uma mensagem in-app ou de um nível de interrupção.
  • Ele quase não deixa marcador no servidor. Só campanhas que definem o badge explicitamente aparecem no payload armazenado, enquanto a aplicação e o zeramento feitos pelo SDK não aparecem — então meça comparando um grupo com badge contra um sem badge, em vez de procurá-lo num relatório.