- Entregado significa que OneSignal entregó exitosamente la notificación al servicio push (FCM, APNs o HMS) y recibió una respuesta de éxito.
- Confirmado significa que el SDK de OneSignal en el dispositivo recibió la notificación.
Antes de comenzar
Reúne lo siguiente para ayudar a solucionar el problema. Necesitarás esto para identificar la Suscripción correcta y verificar el estado de entrega.- Tu OneSignal App ID
- El Message ID de la notificación que no se mostró
- El Subscription ID del usuario afectado
Si solo tienes el External ID, busca la Suscripción en Audience > Subscriptions filtrando por Device Type, Last Session o IP Address.
Configuración del dispositivo
Esta sección aplica a todas las plataformas. Verifica esto primero antes de investigar causas específicas de plataforma o a nivel de código.Estado de permiso y suscripción
En el dispositivo:- Navega a Configuración > Notificaciones y abre la configuración de notificaciones de la app.
- Confirma que el permiso de notificaciones está habilitado.
- Luego abre la app. Si nuestro SDK se inicializa, sincronizará el estado de suscripción de vuelta a OneSignal.
- Navega a Audience > Subscriptions.
- Busca el Subscription ID o External ID, o filtra por Device Type, Last Session o IP Address.
- Confirma que el estado de push muestra Subscribed. Si muestra unsubscribed o no aparece, el dispositivo no recibirá notificaciones sin importar lo que envíes. Si el estado es inesperado, consulta Solución de problemas abajo.
Modos No molestar y concentración
Los modos No Molestar y Concentración en Android e iOS pueden suprimir notificaciones por completo o agruparlas de maneras que las hacen invisibles hasta que se desactiva el modo. Desactívalos antes de probar:- iOS: Configuración > Concentración > No Molestar > desactivar
- Android: Configuración > Notificaciones > No Molestar > desactivar
En iOS, si una notificación llega durante el modo Concentración y el usuario desliza el resumen de notificaciones agrupadas, esas notificaciones no volverán a aparecer individualmente después.
Modo de bajo consumo y optimización de batería
iOS: Desactiva el Modo de Bajo Consumo en Configuración > Batería antes de probar. Dispositivos Android: En Configuración de Batería, establece la app como “Sin restricciones” o “No Optimizada”. Si no ves esa opción, busca Optimización de Batería, Modo de Ahorro de Energía, Ahorro de Energía, Límites de uso en segundo plano o Configuración de Batería Adaptativa y desactiva para la app.Red y conectividad
Los dispositivos deben estar en línea para recibir notificaciones push. Si el dispositivo está apagado, en modo avión, tiene una conexión inestable o sin internet, el push no se mostrará hasta que se establezca una conexión apropiada. Puedes establecer el tiempo que FCM y APNs esperarán con el parámetro Time To Live (TTL) (el predeterminado es 3 días). Si el dispositivo está en una red WiFi con firewall o VPN, esa red puede estar bloqueando la conexión a los servidores de Apple o Google. Prueba cambiando a datos celulares. Si administras el tráfico de red a través de un firewall, configúralo para permitir lo siguiente:- FCM (Android): puertos TCP de salida 5228, 5229 y 5230. Consulta la documentación de FCM para requisitos completos.
- APNs (iOS): puerto TCP de salida 5223 y puerto TCP 443 o 2197. Consulta la documentación de Apple para requisitos completos.
Comportamiento de agrupación de notificaciones
Diferentes versiones de Android e iOS tienen su propio comportamiento de agrupación de notificaciones. La agrupación ocurre cuando varias notificaciones de la misma app o múltiples apps se agrupan en el centro de notificaciones. Es común que las notificaciones agrupadas se descarten juntas, haciendo que los usuarios pierdan notificaciones individuales.Problemas de Android
Esta sección aplica solo a dispositivos Android. Si estás solucionando problemas de iOS, salta a Problemas de iOS.Forzar Detención de Android
Cuando una app de Android es Forzada a Detenerse, el sistema operativo le impide recibir notificaciones push hasta que el usuario la vuelve a abrir manualmente. Esta es una de las causas más comunes de notificaciones perdidas en Android. Algunos fabricantes — incluyendo Samsung, Xiaomi y Huawei — fuerzan la detención agresiva de apps cuando el usuario las desliza de la lista de apps recientes, mientras excluyen apps grandes como Gmail y WhatsApp. Consulta dontkillmyapp.com para el comportamiento específico por dispositivo. Para reducir el comportamiento de Forzar Detención en el dispositivo afectado, intenta los siguientes pasos en orden:- Permitir actividad en segundo plano: Configuración > Apps > Tu App > Batería > Permitir actividad en segundo plano.
- Deshabilitar apps en suspensión: Configuración > Batería y cuidado del dispositivo > Batería > Límites de uso en segundo plano > Apps en suspensión > elimina tu app de esta lista.
- Bloquear la app en Apps Recientes: Abre tu app, toca el botón de Apps Recientes, luego toca y mantén presionada la ventana de la app y selecciona Bloquear esta app (disponible en algunos modelos Samsung).
- Habilitar inicio automático (algunos dispositivos): Configuración > Apps > Tu App > Permisos > Inicio automático > Habilitar.
- Deshabilitar optimización de batería adaptativa: Configuración > Batería y cuidado del dispositivo > Batería > Más configuraciones de batería > Batería adaptativa > desactivar (o excluir tu app).
com.company.appname con tu nombre de paquete:
stopped=false significa que la app no está Forzada a Detenerse. stopped=true significa que sí lo está.
También puedes enviar algunas notificaciones y verificar logcat para esta entrada:
FCM proporciona una API para verificar la última vez que un dispositivo se conectó a los servidores de FCM. Esto puede confirmar si el dispositivo es alcanzable. Consulta la documentación de Google sobre información de instancias de app para más detalles.Para ayudar a los usuarios a solucionar esto por sí mismos, usa un mensaje in-app para dirigirte a usuarios Android conocidos con instrucciones para habilitar la actividad en segundo plano. Consulta Ejemplo: Dirigirse a ciertos fabricantes y dispositivos Android.
Categorías de notificación de Android deshabilitadas
Las categorías de notificación de Android (también llamadas canales) permiten a los usuarios deshabilitar tipos específicos de notificaciones de tu app. Si una categoría está deshabilitada, las notificaciones enviadas con esa categoría no aparecerán en el dispositivo — incluso si la app tiene permiso de notificaciones. Verifica el estado de la categoría en el dispositivo: Configuración > Notificaciones > Tu App. Confirma que “Mostrar notificaciones” está habilitado y que todas las categorías están activadas.
Puedes usar mensajes in-app para dirigirte a usuarios Samsung con instrucciones para volver a habilitar las categorías. Consulta Ejemplo: Dirigirse a ciertos fabricantes y dispositivos Android.
Modo Doze de Android, prioridad y mensajes depriorizados
Las funciones de ahorro de energía de Android (modo Doze y App Standby) retrasan los procesos en segundo plano — incluyendo la entrega de push — cuando el dispositivo está desenchufado y estacionario. Estos modos se activan automáticamente y no son visibles para el usuario. Enviar mensajes de alta prioridad despertará el dispositivo y evitará el modo Doze. Sin embargo, si envías demasiados mensajes de alta prioridad que no resultan en notificaciones visibles, FCM puede degradar automáticamente tus mensajes a prioridad normal. De la documentación de FCM:Los mensajes de alta prioridad en Android están destinados a contenido sensible al tiempo, visible para el usuario. Si FCM detecta un patrón en el que los mensajes no resultan en notificaciones visibles para el usuario, tus mensajes pueden ser depriorizados a prioridad normal.Si sospechas deprioritización, reduce el uso de alta prioridad solo a mensajes con límite de tiempo.
Configuración del emulador de Android
Las notificaciones push en emuladores de Android requieren Google Play Services. Si estás probando en un emulador y no recibes notificaciones, verifica lo siguiente:- La imagen del emulador incluye Google Play Store
- El emulador está configurado para usar Cold Boot
Problemas de iOS
Esta sección aplica solo a dispositivos iOS. Si estás solucionando problemas de Android, consulta Problemas de Android.Bloqueo en primer plano de iOS
Si configuraste el iOS UNUserNotificationCenterDelegate, puedes tener código bloqueando que la notificación se muestre mientras la app está en primer plano. Elimina este código personalizado y usa en su lugar nuestro SDK Foreground Event Listener.Limpieza de badge de iOS
Cuando una app limpia su conteo de badges, iOS elimina todas las notificaciones de esa app del Centro de Notificaciones. El SDK de OneSignal limpia los badges automáticamente cuando la app se abre, lo que significa que las notificaciones entregadas anteriormente pueden desaparecer cuando el usuario abre la app. Si esto está causando confusión durante las pruebas, consulta Badges para saber cómo controlar este comportamiento.Configuración del mensaje
Esta sección cubre problemas causados por cómo se configuró la notificación en OneSignal, no por el dispositivo.Suscripción no está en la audiencia objetivo
Verifica la audiencia del mensaje para confirmar que tu Suscripción móvil está incluida:- Segments: Verifica que tu Suscripción cumpla con todas las condiciones del filtro de audiencia.
- Envío directo: Confirma que el ID al que estás dirigiendo es correcto:
- La Suscripción todavía está suscrita a push.
- Tiene una fecha de última sesión reciente — puede que estés enviando a una Suscripción antigua o inactiva.
Collapse ID reemplazando notificaciones
Si estás configurando un Collapse ID en tus mensajes, una nueva notificación con el mismo Collapse ID reemplazará silenciosamente cualquier notificación no leída con ese ID. Si el usuario no ha abierto la notificación anterior, solo verá la más reciente. Consulta Eliminar notificaciones y TTL para más detalles sobre cómo funciona el Collapse ID.Causas a nivel de código
Esta sección requiere acceso al código fuente de la app. Si no tienes acceso al código, comparte estas verificaciones con tu equipo de desarrollo.Prevención de notificaciones en primer plano de OneSignal
El Foreground Event Listener del SDK de OneSignal incluye un métodoevent.preventDefault() que suprime una notificación mientras la app está en primer plano. Si este método se llama incondicionalmente en tu código, todas las notificaciones en primer plano serán bloqueadas silenciosamente.
Al probar, mantén la app en segundo plano o completamente cerrada para descartar la supresión en primer plano como causa.
Android Notification Service Extension
Si implementaste la Android Notification Service Extension, este es el primer punto de entrada para una notificación entrante en tu app. Sievent.preventDefault() se llama dentro de esta extensión, la notificación será bloqueada independientemente del estado de la app. Revisa el código de la extensión y confirma que este método solo se llama intencionalmente.
Conflicto con el SDK de Firebase Messaging
Si tu app usa el SDK de Firebase Messaging junto con OneSignal, verifica tuAndroidManifest.xml para la siguiente declaración de receptor. Si está presente, puede interceptar notificaciones antes de que OneSignal pueda procesarlas:
AndroidManifest.xml
Solución de problemas
Si has trabajado en las secciones anteriores y el problema no está resuelto, captura un log de depuración. Esta es la forma más rápida de identificar exactamente dónde está fallando la entrega. Sigue Obtener un Log de Depuración para habilitar el registro verbose en tu app. Luego:- Pon la app en segundo plano
- Envía una notificación de prueba al dispositivo afectado
- Verifica el log en busca de errores. Asegúrate de ver OneSignal inicializado y que el
subscription-iden el log está suscrito a push y es el mismo al que estás enviando el mensaje.
¿Necesitas ayuda?Contacta a nuestro equipo de Soporte en
support@onesignal.comPor favor incluye:- Tu OneSignal App ID
- El Subscription ID o External ID
- La URL al mensaje que probaste en el Dashboard de OneSignal
- El log de depuración completo de Obtener un Log de Depuración