Descripción general
La Entrega confirmada rastrea cuándo un dispositivo realmente recibe una notificación push enviada a través de OneSignal. Cuando el SDK de OneSignal en el dispositivo recibe un push, envía un evento de confirmación de vuelta a OneSignal que contiene el ID de la notificación y el ID de suscripción del dispositivo. Esto le permite ver exactamente qué suscripciones recibieron qué notificaciones. En su panel de OneSignal, la Entrega confirmada aparece en el Informe de mensajes como Confirmed (o Received). Para todas las métricas de entrega y participación, consulte el Glosario de métricas.
La Entrega confirmada es diferente de “Delivered.” Los servicios push de plataforma (APNs, FCM, ADM, HMS) informan si una notificación fue aceptada por el servicio, no si el dispositivo realmente la recibió. La Entrega confirmada es la confirmación del lado del dispositivo.
Requisitos
- Disponible solo en planes pagos. Comparar planes.
- Complete la Configuración del SDK web y/o la Configuración del SDK móvil.
- La Entrega confirmada solo funciona si el dispositivo tiene instalado el SDK de OneSignal.
- No compatible para suscripciones creadas solo a través de API.
Limitaciones específicas de la plataforma
iOS- Requiere tanto la configuración de Notification Service Extension como del App Group.
- APNs mantiene solo un mensaje por aplicación cuando está fuera de línea. Si se envían múltiples pushes mientras está fuera de línea, solo se entrega el último.
- Compatible solo para el
datatipo de mensaje de Huawei. - Para el tipo
message, Huawei proporciona datos de recibo solo en su propio panel.
- Safari no admite Entrega confirmada.
Solución de problemas de Entrega confirmada
Si no recibe notificaciones push en absoluto, consulte primero Notificaciones no mostradas.iOS
La Entrega confirmada en iOS requiere dos cosas funcionando juntas:- Una Notification Service Extension (NSE) que ejecuta código de OneSignal cuando llega un push
- Un App Group compartido entre el target de su aplicación principal y el target de la NSE para que puedan intercambiar datos
Confirme que el target de la NSE existe y tiene el código correcto
En Xcode, verifique que tiene un target OneSignalNotificationServiceExtension listado bajo los targets de su proyecto. Si no existe, siga el Paso 2 de la Configuración del SDK de iOS.Abra el archivo
NotificationService.swift (o .m) de la NSE. Debe llamar a OneSignalExtension.didReceiveNotificationExtensionRequest dentro de didReceive(_:withContentHandler:). Si el archivo todavía contiene el código de plantilla predeterminado de Apple, reemplácelo con el código NSE de OneSignal.Confirme que la NSE tiene el paquete OneSignalExtension
Seleccione su target de NSE > General > Frameworks and Libraries (o Build Phases > Link Binary With Libraries). Verifique que
OneSignalExtension esté listado. El target de la aplicación principal usa OneSignalFramework, pero el target de la NSE debe usar OneSignalExtension — son paquetes diferentes.Verifique que el App Group esté configurado correctamente en ambos targets
El SDK de OneSignal usa un App Group para compartir datos entre su aplicación principal y la NSE. Hay dos formas de configurar esto — elija la que corresponda a su configuración.
- Seleccione su target de aplicación principal > Signing & Capabilities > App Groups.
- Confirme el App Group.
group.YOUR_MAIN_APP_BUNDLE_ID.onesignal — donde YOUR_MAIN_APP_BUNDLE_ID es el identificador de bundle del target de su aplicación principal (disponible en General > Identity), siga la pestaña App Group predeterminado. De lo contrario, siga la pestaña App Group personalizado.- App Group predeterminado - group.YOUR_MAIN_APP_BUNDLE_ID.onesignal
- App Group personalizado
- Seleccione su target de NSE > Signing & Capabilities > App Groups.
- Confirme que el exacto mismo App Group esté listado. Si falta, agréguelo a través de + Capability > App Groups y seleccione el mismo grupo.
- Correcto:
group.YOUR_MAIN_APP_BUNDLE_ID.onesignal - Incorrecto:
group.YOUR_MAIN_APP_BUNDLE_ID.OneSignalNotificationServiceExtension.onesignal
Confirme que los targets de implementación mínima coincidan
Seleccione su target de NSE > General > Minimum Deployments. Este valor debe coincidir con el de implementación mínima del target de su aplicación principal. Una discrepancia puede evitar que la NSE se ejecute en ciertas versiones del sistema operativo.
Desmarque "Copy only when installing"
Seleccione su target de aplicación principal > Build Phases > Embed App Extensions. Asegúrese de que “Copy only when installing” esté desmarcado. Si está marcado, la NSE no se incluye durante las builds de desarrollo, por lo que nunca se ejecuta al probar.
Verifique los valores de NSExtension en Info.plist
Seleccione su target de NSE > pestaña Info y expanda la clave Si su NSE está escrita en Objective-C, use
NSExtension. Confirme que contiene:NotificationService en lugar de $(PRODUCT_MODULE_NAME).NotificationService.Verifique que mutable-content esté configurado
OneSignal establece automáticamente
mutable-content: 1 en la carga útil del push, lo que le dice a iOS que invoque la NSE. Si envía pushes a través de la API REST, verifique que no esté estableciendo explícitamente mutable_content: false. Sin mutable-content, iOS no ejecuta la NSE y la Entrega confirmada no puede activarse.Pruebe que la NSE se está ejecutando
Agregue esta línea temporalmente dentro de Envíese un push de prueba. Si el cuerpo de la notificación comienza con
didReceive antes de la llamada a OneSignal:[Modified], la NSE se está ejecutando correctamente. Si no es así, revise los pasos anteriores — la NSE no está siendo invocada. Elimine esta línea después de probar.Para depuración avanzada de NSE con registros de Xcode Console, consulte Depuración de iOS Notification Service Extension.Android
- Si las notificaciones no se muestran: consulte Solución de problemas de push móvil.
- Si las notificaciones se muestran pero falta la Entrega confirmada: una extensión de servicio de Android personalizada puede estar bloqueándola. Consulte la guía de Android Service Extension.
Web
- Safari no es compatible.
- Para otros navegadores, asegúrese de que la migración al SDK v16 esté completa:
- Inicialización correcta del SDK:
- Referencia correcta del Service Worker:
- Inicialización correcta del SDK:
Preguntas frecuentes
¿Por qué mis números de Entrega confirmada son bajos o faltan?
Las causas más comunes son problemas de configuración (especialmente en iOS), dispositivos inactivos y limitaciones de la plataforma.- Mala configuración de iOS: Falta o es incorrecta la Notification Service Extension o el App Group. Consulte Solución de problemas de Entrega confirmada en iOS arriba.
- Dispositivos inactivos o abandonados: Los dispositivos que están fuera de línea o ya no están en uso no reciben pushes ni envían eventos de Entrega confirmada. Consulte ¿Cómo manejo los dispositivos inactivos? a continuación.
- Limitaciones de la plataforma: El tipo
messagede Huawei y Safari no admiten Entrega confirmada. - Cierre forzado en Android: Algunos fabricantes de dispositivos tratan deslizar la aplicación como un cierre forzado, lo que detiene los eventos del SDK. Consulte la Guía de push móvil no mostrado.
¿Cómo manejo los dispositivos inactivos?
Los dispositivos que están fuera de línea o abandonados no reciben notificaciones push ni envían eventos de Entrega confirmada. Esto es común cuando los usuarios reemplazan o abandonan dispositivos. Para reactivar usuarios inactivos:- Use Audience Activity para reenviar a usuarios que no confirmaron la entrega.
- Cree Segmentos basados en Last Session (por ejemplo, inactivos por más de 90 días).
- Combine con un Journey de reenganche para recuperarlos.
- Diríjase periódicamente a usuarios inactivos para eliminar dispositivos inalcanzables.
¿Por qué muestra Confirmada pero no aparece en mi dispositivo?
Un evento de Entrega confirmada significa que el dispositivo recibió la carga útil del push. En raras ocasiones, la notificación puede no mostrarse. Posibles causas:- Notificación perdida: Envíese un push de prueba a través de Encontrar y establecer suscripciones de prueba para descartar esto.
- Modo de enfoque de iOS: “No molestar”, “Dormir” u otros modos de enfoque retrasan o agrupan notificaciones. Es posible que haya descartado una notificación agrupada sin verla.
- Código de aplicación que suprime la visualización:
event.preventDefault()en el oyente del ciclo de vida en primer plano o Notification Service Extension detiene la visualización de la notificación.- Las llamadas a
removeDeliveredNotifications(withIdentifiers:)oremoveAllDeliveredNotifications()eliminan notificaciones después de que llegan.
- Configuración de carga útil de push:
- Asegúrese de que
priorityesté configurado en alto. Consulte Prioridad de push. collapse_idreemplaza pushes antiguos con nuevos usando el mismo ID.
- Asegúrese de que
¿Necesita ayuda?Chatee con nuestro equipo de Soporte o envíe un correo electrónico a
support@onesignal.comPor favor incluya:- Detalles del problema que está experimentando y pasos para reproducir si están disponibles
- Su ID de aplicación de OneSignal
- El ID externo o ID de suscripción si corresponde
- La URL del mensaje que probó en el panel de OneSignal si corresponde
- Cualquier registro o mensaje de error relevante