Saltar al contenido principal
En el Reporte de mensajes push de tu dashboard de OneSignal:
  • 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.
Si tu notificación muestra Entregada pero no Confirmada, y no apareció en el dispositivo, comienza abajo.

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.
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:
  1. Navega a Configuración > Notificaciones y abre la configuración de notificaciones de la app.
  2. Confirma que el permiso de notificaciones está habilitado.
  3. Luego abre la app. Si nuestro SDK se inicializa, sincronizará el estado de suscripción de vuelta a OneSignal.
En tu dashboard de OneSignal:
  1. Navega a Audience > Subscriptions.
  2. Busca el Subscription ID o External ID, o filtra por Device Type, Last Session o IP Address.
  3. 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
Envía una notificación de prueba después de desactivarlos. Si la notificación aparece, el modo era la causa.
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:
  1. Permitir actividad en segundo plano: Configuración > Apps > Tu App > Batería > Permitir actividad en segundo plano.
  2. 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.
  3. 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).
  4. Habilitar inicio automático (algunos dispositivos): Configuración > Apps > Tu App > Permisos > Inicio automático > Habilitar.
  5. 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).
Para verificar si tu app ha sido Forzada a Detenerse, ejecuta el siguiente comando. Reemplaza com.company.appname con tu nombre de paquete:
adb shell dumpsys package com.company.appname | grep stopped
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:
W/GCM-DMM: broadcast intent callback: result=CANCELLED forIntent {
   act=com.google.android.c2dm.intent.RECEIVE pkg=com.onesignal.example (has extras)
}
Si ves este intent cancelado, la app no pudo iniciarse para procesar la notificación.
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.
Configuración de notificaciones de la app Android que muestra la categoría Abandoned Cart - Urgent desactivada, lo que impide que las notificaciones de esa categoría aparezcan en el dispositivo.
Si no se establece ninguna categoría en la notificación, OneSignal usa una categoría Miscellaneous predeterminada. Verifica que esta categoría esté habilitada si no usas categorías personalizadas. Consulta Categorías de Notificación Android para detalles de configuración.
Samsung One UI 6.1 desactiva automáticamente las categorías de notificación para muchas apps. Si tus usuarios están en dispositivos Samsung y recientemente dejaron de recibir ciertas notificaciones, esta es una causa probable. Consulta la cobertura de Android Police para más detalles.
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:
  1. La imagen del emulador incluye Google Play Store
  2. El emulador está configurado para usar Cold Boot
Para configurar Cold Boot: abre Android Studio Device Manager > selecciona tu dispositivo > Editar > Configuración adicional > establece la opción de arranque como Cold Boot > guarda y reinicia.

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étodo event.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. Si event.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 tu AndroidManifest.xml para la siguiente declaración de receptor. Si está presente, puede interceptar notificaciones antes de que OneSignal pueda procesarlas:
AndroidManifest.xml
com.google.firebase.iid.FirebaseInstanceIdReceiver
Elimina o excluye condicionalmente este receptor si dependes de OneSignal para la entrega de push.

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:
  1. Pon la app en segundo plano
  2. Envía una notificación de prueba al dispositivo afectado
  3. Verifica el log en busca de errores. Asegúrate de ver OneSignal inicializado y que el subscription-id en 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
¡Estamos felices de ayudar!