Badges en el ícono de la app

Pon el contador de no leídos en el ícono de tu app

Un badge es lo más pequeño que le puedes decir a un usuario, y leerlo no le cuesta nada. Fíjalo, súmale o bórralo desde la misma campaña y el mismo journey que todo lo demás que envías.

Tres pantallas de inicio de iPhone lado a lado, cada una con varios íconos de apps que llevan un badge rojo con el contador de no leídos en la esquina y el resto de los íconos sin badge

Más de 80,000 empresas confían en nosotros para escalar su engagement

El formato, completo

Un badge es un solo número entero, y ese es todo su atractivo. No ocupa un banner ni suena, no gasta el permiso de notificaciones que tanto te costó conseguir, y sigue funcionando con el usuario que descartó tu push hace tres horas. Hay tres cosas que puedes hacer con ese número desde el editor o la API, más una advertencia sobre dónde se muestra realmente.

Un número exacto

ios_badges: 5 pone un 5 en el ícono, sin importar lo que había antes. El valor que envías es el que ve el usuario, justo lo que quieres cuando tu servidor ya conoce el total real.

+1 y -1

Los cambios relativos suben o bajan el contador sin que tengas que llevar la cuenta. El SDK reporta el valor del dispositivo a través del endpoint interno /setBadge, así el contador de Pushwoosh queda igual al ícono real.

0 lo borra

Envía 0 y el badge desaparece del ícono. Borrarlo al abrir la app es la diferencia entre un contador en el que los usuarios confían y un punto rojo que aprenden a ignorar.

iOS uniforme, Android según el launcher

En iOS el badge es un valor estándar de aps.badge y todos los dispositivos lo dibujan igual. En Android no existe una API nativa de badges, así que la visualización depende del launcher, y Pushwoosh lo dice claramente en lugar de prometer una cobertura que no puede entregar.

Lo que controlas

Lo que envíasQué le pasa al contadorDónde se configura
Un entero, 5Fija el badge exactamente en ese valorios_badges / android_badges, o el campo Badges
+1, +3Incrementa el contador actualEl mismo campo. También +n en los presets de Android
-1Reduce el contador actualEl mismo campo, para una lectura o un descarte del lado del servidor
0Quita el badge del íconoEl mismo campo, o la app al abrirse
Una llamada al SDKFija o borra el badge desde un evento dentro de la appsetApplicationIconBadgeNumber en iOS, PushwooshBadge en Android
NadaEl SDK aplica el badge que llegó con el pushSin código en la app para el caso básico de iOS
Una extensiónCambia el contador antes de mostrar la notificaciónPWNotificationExtensionManager con App Groups
Lo que envías
1 / 7
Un entero, 5
Qué le pasa al contador
Fija el badge exactamente en ese valor
Dónde se configura
ios_badges / android_badges, o el campo Badges
Lo que envías
2 / 7
+1, +3
Qué le pasa al contador
Incrementa el contador actual
Dónde se configura
El mismo campo. También +n en los presets de Android
Lo que envías
3 / 7
-1
Qué le pasa al contador
Reduce el contador actual
Dónde se configura
El mismo campo, para una lectura o un descarte del lado del servidor
Lo que envías
4 / 7
0
Qué le pasa al contador
Quita el badge del ícono
Dónde se configura
El mismo campo, o la app al abrirse
Lo que envías
5 / 7
Una llamada al SDK
Qué le pasa al contador
Fija o borra el badge desde un evento dentro de la app
Dónde se configura
setApplicationIconBadgeNumber en iOS, PushwooshBadge en Android
Lo que envías
6 / 7
Nada
Qué le pasa al contador
El SDK aplica el badge que llegó con el push
Dónde se configura
Sin código en la app para el caso básico de iOS
Lo que envías
7 / 7
Una extensión
Qué le pasa al contador
Cambia el contador antes de mostrar la notificación
Dónde se configura
PWNotificationExtensionManager con App Groups

Dónde lo configuras

Un campo Badges en el editor

El formulario Send-Push y los presets de push aceptan un número, +n, -n o 0. Cambiar lo que una campaña hace con el contador no requiere release ni desarrollador.

Una clave en la API

ios_badges y android_badges en /createMessage. En iOS el valor se escribe en el campo aps.badge del payload que Apple ya transporta.

Aplicado y sincronizado por el SDK

El SDK aplica el valor recibido sin código en la app, y mantiene actualizado el badge del lado del servidor mediante /setBadge, para que +1 cuente desde el número correcto.

Su función, dentro de un journey

Un contador, varias fuentes

El badge es un atributo de un mensaje que ya estás enviando, así que no necesita una integración propia. El mismo Customer Journey y el mismo perfil de cliente que deciden quién recibe el push también deciden en qué número queda el contador.

La única pregunta abierta es qué alimenta ese número. El total de no leídos de un Message Inbox puede ser el contador directamente, un silent push puede moverlo sin ninguna alerta, y una notificación push móvil visible lo lleva consigo. Un paso en el objetivo del journey lo regresa a 0.

Tres recompensas se acumulan mientras el jugador no está

Cada recompensa otorgada dispara un evento, y cada evento envía un silent push que suma +1. Nada suena, nada ilumina la pantalla de bloqueo, y para la noche el ícono marca 3 sin hacer ruido.

Cuando se abre el evento en vivo, el mismo journey envía un push visible que sí vale la interrupción. Sea cual sea el que traiga de vuelta al jugador, el SDK borra el badge a 0 al abrir la app, así que el contador de mañana empieza desde algo real.

Para qué usarlo

El badge rinde en proporción a la densidad del contador: si tu app tiene un número real y creciente de cosas pendientes o sin leer que valga la pena poner en un ícono. Las apps construidas alrededor de un contador obtienen gratis un empujón de reactivación genuino; las apps sin nada que contar obtienen un punto rojo que enseña a los usuarios a ignorar los puntos rojos.

MomentoQué significa el númeroPor qué encaja el badge
E-commerce y marketplaces: productos en el carrito, ofertas sin leer2 productos en tu carritoUn recordatorio discreto que no le cuesta al comprador nada de atención
FinTech: estados de cuenta, alertas, acciones pendientes1 acción pendienteHay un conteo real de documentos sin leer, y el ícono lo muestra sin poner detalles en la pantalla de bloqueo
Medios y noticias: notas sin leer, episodios nuevos5 notas sin leerEl caso de libro, y el que trae de vuelta a un lector a una sesión de forma confiable
EdTech: lecciones sin leer, rachas, tareas2 lecciones esperandoUna racha o una cola de lecciones es justo el tipo de número que la gente quiere cerrar
Juegos móviles: recompensas, vidas recargadas, entradas a eventos3 cosas por reclamarEl contador ya es parte del loop de retención, y reclamar es toda la motivación
Apps de creadores y suscripción: lanzamientos, DMs, comentarios12 sin leerUn feed social ya lleva este número internamente, así que el ícono solo tiene que mostrarlo
Trading y apuestas: alertas disparadas, apuestas liquidadas4 alertas disparadasLas alertas se acumulan en un número que de verdad significa algo para el usuario
Salud y telemedicina: resultados, mensajes segurosTus resultados están listosEl contador viaja en la pantalla de inicio mientras el contenido queda detrás de la autenticación
Momento
1 / 8
E-commerce y marketplaces: productos en el carrito, ofertas sin leer
Qué significa el número
2 productos en tu carrito
Por qué encaja el badge
Un recordatorio discreto que no le cuesta al comprador nada de atención
Momento
2 / 8
FinTech: estados de cuenta, alertas, acciones pendientes
Qué significa el número
1 acción pendiente
Por qué encaja el badge
Hay un conteo real de documentos sin leer, y el ícono lo muestra sin poner detalles en la pantalla de bloqueo
Momento
3 / 8
Medios y noticias: notas sin leer, episodios nuevos
Qué significa el número
5 notas sin leer
Por qué encaja el badge
El caso de libro, y el que trae de vuelta a un lector a una sesión de forma confiable
Momento
4 / 8
EdTech: lecciones sin leer, rachas, tareas
Qué significa el número
2 lecciones esperando
Por qué encaja el badge
Una racha o una cola de lecciones es justo el tipo de número que la gente quiere cerrar
Momento
5 / 8
Juegos móviles: recompensas, vidas recargadas, entradas a eventos
Qué significa el número
3 cosas por reclamar
Por qué encaja el badge
El contador ya es parte del loop de retención, y reclamar es toda la motivación
Momento
6 / 8
Apps de creadores y suscripción: lanzamientos, DMs, comentarios
Qué significa el número
12 sin leer
Por qué encaja el badge
Un feed social ya lleva este número internamente, así que el ícono solo tiene que mostrarlo
Momento
7 / 8
Trading y apuestas: alertas disparadas, apuestas liquidadas
Qué significa el número
4 alertas disparadas
Por qué encaja el badge
Las alertas se acumulan en un número que de verdad significa algo para el usuario
Momento
8 / 8
Salud y telemedicina: resultados, mensajes seguros
Qué significa el número
Tus resultados están listos
Por qué encaja el badge
El contador viaja en la pantalla de inicio mientras el contenido queda detrás de la autenticación

Cuándo el badge no es la herramienta correcta

El badge reporta una cantidad. Todo lo que tiene que ver con qué está esperando, y con qué urgencia, pertenece a otra superficie.

  • El usuario necesita saber qué llegó: eso es una notificación push móvil, un push con rich media o un mensaje in-app.
  • El momento no puede esperar. Un badge es pasivo por diseño, así que la urgencia corresponde a un nivel de interrupción.
  • El estado es continuo, no un conteo: un pedido en camino, un marcador en vivo. Eso es una Live Activity.
  • La app no tiene un contador natural que crezca. Seguros, hoteles, servicios públicos y herramientas de una sola sesión tienen una factura o una reserva, y ahí un badge es ruido.
  • Tu audiencia es mayormente Android, como pasa en gran parte de LATAM, y el badge sería una mecánica principal. Trátalo ahí como best-effort y diseña el flujo para que funcione sin él.
El contador hace que miren. El push igual tiene que valer la pena abrirlo

50 notificaciones push dignas de copiar, con el texto y el creativo detrás de cada una.

Ver los ejemplos

Cobertura de plataformas y técnica

iOS tiene un solo badge, y todos los iPhone lo dibujan igual. Android no tiene una API universal de badges, así que lo que aparece en la pantalla de inicio depende del launcher que use cada persona. La última columna nombra qué dibuja realmente el número, porque en esta función ahí está la respuesta honesta.

CapacidadiOSAndroidWebLo entrega
Valor exacto del badgeSí, aps.badge estándarBest-effort, según el launcher–El payload del push, aplicado por el SDK
+1 y -1 relativosSí, Pushwoosh SDK 6.4.0++n en los presets, según el launcher–El push, con /setBadge manteniendo el contador sincronizado
Borrar a 0SíSegún el launcher–El payload del push, o la app al abrirse
Campo Badges no-codeSí, en el editor y los presetsSí, un valor de badge en los presets–Pushwoosh Control Panel
Fijar o borrar desde el código de la appsetApplicationIconBadgeNumberPushwooshBadge–Tu app, a través del Pushwoosh SDK
Cambiar el contador antes de mostrarSí, en una Notification Service Extension––PWNotificationExtensionManager con App Groups
Actualizar el badge sin alertaSíBest-effort–Un silent push, misma audiencia y mismo journey
Cobertura de launchers y dispositivosTodos los iPhone, igualSony, Samsung, LG, HTC, ASUS, ADW, APEX, NOVA, Huawei, ZUK, OPPO–com.pushwoosh:pushwoosh-badge con permisos de launcher
Pixel y launchers no compatiblesn/a––No existe una API nativa de badges en Android, así que no se muestra nada
Leer el contador actual desde el SO–––iOS no expone una API de lectura, así que el contador vive en tu app o en el servidor
Un badge en el ícono de la appSíSegún el launcher–Los navegadores no tienen una superficie equivalente para el web push
Capacidad
1 / 11
Valor exacto del badge
iOS
Sí, aps.badge estándar
Android
Best-effort, según el launcher
Web
–
Lo entrega
El payload del push, aplicado por el SDK
Capacidad
2 / 11
+1 y -1 relativos
iOS
Sí, Pushwoosh SDK 6.4.0+
Android
+n en los presets, según el launcher
Web
–
Lo entrega
El push, con /setBadge manteniendo el contador sincronizado
Capacidad
3 / 11
Borrar a 0
iOS
Sí
Android
Según el launcher
Web
–
Lo entrega
El payload del push, o la app al abrirse
Capacidad
4 / 11
Campo Badges no-code
iOS
Sí, en el editor y los presets
Android
Sí, un valor de badge en los presets
Web
–
Lo entrega
Pushwoosh Control Panel
Capacidad
5 / 11
Fijar o borrar desde el código de la app
iOS
setApplicationIconBadgeNumber
Android
PushwooshBadge
Web
–
Lo entrega
Tu app, a través del Pushwoosh SDK
Capacidad
6 / 11
Cambiar el contador antes de mostrar
iOS
Sí, en una Notification Service Extension
Android
–
Web
–
Lo entrega
PWNotificationExtensionManager con App Groups
Capacidad
7 / 11
Actualizar el badge sin alerta
iOS
Sí
Android
Best-effort
Web
–
Lo entrega
Un silent push, misma audiencia y mismo journey
Capacidad
8 / 11
Cobertura de launchers y dispositivos
iOS
Todos los iPhone, igual
Android
Sony, Samsung, LG, HTC, ASUS, ADW, APEX, NOVA, Huawei, ZUK, OPPO
Web
–
Lo entrega
com.pushwoosh:pushwoosh-badge con permisos de launcher
Capacidad
9 / 11
Pixel y launchers no compatibles
iOS
n/a
Android
–
Web
–
Lo entrega
No existe una API nativa de badges en Android, así que no se muestra nada
Capacidad
10 / 11
Leer el contador actual desde el SO
iOS
–
Android
–
Web
–
Lo entrega
iOS no expone una API de lectura, así que el contador vive en tu app o en el servidor
Capacidad
11 / 11
Un badge en el ícono de la app
iOS
Sí
Android
Según el launcher
Web
–
Lo entrega
Los navegadores no tienen una superficie equivalente para el web push

Seguridad y hosting

Pushwoosh opera en su propio hardware en EE.UU. y Alemania, bajo GDPR.

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

Cómo funciona

Configurar un badge es no-code y gratis en todos los planes. El trabajo de ingeniería se concentra en dos lugares puntuales, y ninguno es el caso básico de iOS.

  1. Define el contador (no-code)

    Escribe un número, +n, -n o 0 en el campo Badges del formulario Send-Push o de un preset, o envía ios_badges y android_badges a través de la Messages API. En iOS el caso básico no necesita nada de tu app: el SDK aplica el valor al recibirlo.

  2. Conecta los dos lugares que lo necesitan (desarrollador)

    Android necesita la librería com.pushwoosh:pushwoosh-badge más los permisos específicos de cada launcher en el manifest. Borrar al abrir el push o la app es una sola llamada al SDK, y una Notification Service Extension con App Groups solo hace falta para contadores que deben cambiar antes de mostrarse.

  3. Orquéstalo (no-code)

    Alimenta el número con el total de no leídos de tu Message Inbox, muévelo con un silent push que no muestra alerta, y bórralo en el objetivo del mismo Customer Journey que maneja tu push, in-app y email.

Límites que conviene conocer

Una primitiva de conteo con una plataforma uniforme y otra fragmentada. Estos son sus bordes.

  • iOS es uniforme y de primera clase. Android es best-effort, porque el SO no tiene una API universal de badges y el launcher decide qué aparece.
  • La cobertura en Android es realmente desigual. Samsung y Xiaomi usan mecanismos distintos, el propio launcher Pixel de Google en gran medida no muestra badges en los íconos, y algunos launchers de terceros los ignoran.
  • Las actualizaciones de badge en Android dependen de la batería. Doze y App Standby limitan el trabajo en segundo plano del que dependen, y una app detenida a la fuerza no puede actualizar el contador hasta que se vuelva a abrir.
  • Los dispositivos Huawei delegan el control del badge a su propio launcher, así que el comportamiento varía según el dispositivo y la versión de EMUI o HarmonyOS.
  • Los +1 y -1 relativos dependen de que el SDK conozca el valor actual. Una app que sobrescribe el badge sin sincronizar puede hacer que un incremento del servidor cuente desde el número equivocado, e iOS no ofrece una API para leer el badge del sistema.
  • La mecánica de badge vía push cambió en el iOS SDK 6.4.0. Las apps que usaban el badge para contar pushes recibidos tuvieron que migrar, así que planifica con el comportamiento actual y no con el anterior.
  • El badge transporta una cantidad y nada más. Qué está esperando, y qué tan urgente es, tiene que venir de un push, un mensaje in-app o un nivel de interrupción.
  • Casi no deja rastro del lado del servidor. Solo las campañas que fijan el badge de forma explícita aparecen en el payload guardado, mientras que lo que aplica y borra el SDK no, así que mídelo comparando una cohorte con badge contra una sin badge en lugar de buscarlo en un reporte.