Vue d’ensemble
La Livraison confirmée suit quand un appareil reçoit réellement une notification push envoyée via OneSignal. Lorsque le SDK OneSignal sur l’appareil reçoit un push, il envoie un événement de confirmation à OneSignal contenant l’ID de notification et l’ID d’abonnement de l’appareil. Cela vous permet de voir exactement quels abonnements ont reçu quelles notifications. Dans votre tableau de bord OneSignal, la Livraison confirmée apparaît dans le Rapport de message comme Confirmé (ou Reçu). Pour toutes les métriques de livraison et d’engagement, consultez le Glossaire des métriques.
La Livraison confirmée est différente de “Livré.” Les services push de plateforme (APNs, FCM, ADM, HMS) indiquent si une notification a été acceptée par le service — pas si l’appareil l’a réellement reçue. La Livraison confirmée est la confirmation côté appareil.
Prérequis
- Disponible uniquement sur les forfaits payants. Comparer les forfaits.
- Complétez la Configuration du SDK web et/ou la Configuration du SDK mobile.
- La Livraison confirmée fonctionne uniquement si l’appareil a le SDK OneSignal installé.
- Non pris en charge pour les abonnements créés uniquement via API.
Limitations spécifiques à la plateforme
iOS- Nécessite à la fois la configuration de l’extension de service de notification et du groupe d’applications.
- APNs ne conserve qu’un seul message par application lorsque hors ligne. Si plusieurs notifications push sont envoyées hors ligne, seule la dernière est livrée.
- Pris en charge uniquement pour le
datatype de message Huawei. - Pour le type
message, Huawei fournit les données de réception uniquement dans leur propre tableau de bord.
- Safari ne prend pas en charge la Livraison confirmée.
Dépannage de la Livraison confirmée
Si vous ne recevez pas de notifications push du tout, consultez d’abord Notifications non affichées.iOS
La Livraison confirmée sur iOS nécessite deux choses qui fonctionnent ensemble :- Une Notification Service Extension (NSE) qui exécute le code OneSignal lorsqu’un push arrive
- Un App Group partagé entre votre cible d’application principale et la cible NSE pour qu’elles puissent échanger des données
Confirmez que la cible NSE existe et a le code correct
Dans Xcode, vérifiez que vous avez une cible OneSignalNotificationServiceExtension listée sous les cibles de votre projet. Si elle n’existe pas, suivez l’Étape 2 de la Configuration du SDK iOS.Ouvrez le fichier
NotificationService.swift (ou .m) de la NSE. Il doit appeler OneSignalExtension.didReceiveNotificationExtensionRequest dans didReceive(_:withContentHandler:). Si le fichier contient encore le code de modèle par défaut d’Apple, remplacez-le par le code NSE OneSignal.Confirmez que la NSE a le package OneSignalExtension
Sélectionnez votre cible NSE > General > Frameworks and Libraries (ou Build Phases > Link Binary With Libraries). Vérifiez que
OneSignalExtension est listé. La cible de l’application principale utilise OneSignalFramework, mais la cible NSE doit utiliser OneSignalExtension — ce sont des packages différents.Vérifiez que l'App Group est correctement configuré sur les deux cibles
Le SDK OneSignal utilise un App Group pour partager des données entre votre application principale et la NSE. Il y a deux façons de le configurer — choisissez celle qui correspond à votre configuration.
- Sélectionnez votre cible d’application principale > Signing & Capabilities > App Groups.
- Confirmez l’App Group.
group.YOUR_MAIN_APP_BUNDLE_ID.onesignal — où YOUR_MAIN_APP_BUNDLE_ID est l’identifiant de bundle de la cible de votre application principale (disponible sous General > Identity), suivez l’onglet App Group par défaut. Sinon, suivez l’onglet App Group personnalisé.- App Group par défaut - group.YOUR_MAIN_APP_BUNDLE_ID.onesignal
- App Group personnalisé
- Sélectionnez votre cible NSE > Signing & Capabilities > App Groups.
- Confirmez que le même App Group est listé. S’il manque, ajoutez-le via + Capability > App Groups et sélectionnez le même groupe.
- Correct :
group.YOUR_MAIN_APP_BUNDLE_ID.onesignal - Incorrect :
group.YOUR_MAIN_APP_BUNDLE_ID.OneSignalNotificationServiceExtension.onesignal
Confirmez que les cibles de déploiement minimum correspondent
Sélectionnez votre cible NSE > General > Minimum Deployments. Cette valeur doit correspondre au déploiement minimum de la cible de votre application principale. Une incompatibilité peut empêcher la NSE de s’exécuter sur certaines versions du système d’exploitation.
Décochez "Copy only when installing"
Sélectionnez votre cible d’application principale > Build Phases > Embed App Extensions. Assurez-vous que “Copy only when installing” est décoché. Si coché, la NSE n’est pas intégrée lors des builds de développement, donc elle ne s’exécute jamais lors des tests.
Vérifiez les valeurs NSExtension dans Info.plist
Sélectionnez votre cible NSE > onglet Info et développez la clé Si votre NSE est écrite en Objective-C, utilisez
NSExtension. Confirmez qu’elle contient :NotificationService au lieu de $(PRODUCT_MODULE_NAME).NotificationService.Vérifiez que mutable-content est configuré
OneSignal définit automatiquement
mutable-content: 1 dans la charge utile push, ce qui indique à iOS d’invoquer la NSE. Si vous envoyez des pushes via l’API REST, vérifiez que vous ne définissez pas explicitement mutable_content: false. Sans mutable-content, iOS n’exécute pas la NSE et la Livraison confirmée ne peut pas se déclencher.Testez que la NSE s'exécute
Ajoutez cette ligne temporairement dans Envoyez-vous un push de test. Si le corps de la notification commence par
didReceive avant l’appel OneSignal :[Modified], la NSE s’exécute correctement. Si non, repassez les étapes précédentes — la NSE n’est pas invoquée. Supprimez cette ligne après les tests.Pour le débogage avancé de la NSE avec les journaux de la Xcode Console, consultez Débogage de l’iOS Notification Service Extension.Android
- Si les notifications ne s’affichent pas : consultez Dépannage des notifications push mobiles.
- Si les notifications s’affichent mais que la Livraison confirmée est manquante : une extension de service Android personnalisée peut la bloquer. Consultez le guide d’extension de service Android.
Web
- Safari n’est pas pris en charge.
- Pour les autres navigateurs, assurez-vous que la migration vers le SDK v16 est terminée :
- Initialisation SDK correcte :
- Référence Service Worker correcte :
- Initialisation SDK correcte :
FAQ
Pourquoi mes chiffres de Livraison confirmée sont-ils faibles ou manquants ?
Les causes les plus courantes sont des problèmes de configuration (surtout sur iOS), des appareils inactifs et des limitations de plateforme.- Mauvaise configuration iOS : L’extension de service de notification ou l’App Group est manquant ou incorrect. Consultez Dépannage de la Livraison confirmée sur iOS ci-dessus.
- Appareils inactifs ou abandonnés : Les appareils hors ligne ou qui ne sont plus utilisés ne reçoivent pas de pushes ni n’envoient d’événements de Livraison confirmée. Consultez Comment gérer les appareils inactifs ? ci-dessous.
- Limitations de plateforme : Le type
messagede Huawei et Safari ne prennent pas en charge la Livraison confirmée. - Fermeture forcée sur Android : Certains fabricants d’appareils traitent le balayage de l’application comme une fermeture forcée, ce qui arrête les événements du SDK. Consultez le Guide de push mobile non affiché.
Comment gérer les appareils inactifs ?
Les appareils hors ligne ou abandonnés ne reçoivent pas de notifications push ni n’envoient d’événements de Livraison confirmée. C’est courant lorsque les utilisateurs remplacent ou abandonnent des appareils. Pour réengager les utilisateurs inactifs :- Utilisez l’Activité d’audience pour renvoyer aux utilisateurs qui n’ont pas confirmé la livraison.
- Créez des Segments basés sur la Dernière session (par ex., inactif pendant 90+ jours).
- Combinez avec un Journey de réengagement pour les reconquérir.
- Ciblez périodiquement les utilisateurs inactifs pour éliminer les appareils inaccessibles.
Pourquoi affiche-t-il Confirmé mais n’apparaît pas sur mon appareil ?
Un événement de Livraison confirmée signifie que l’appareil a reçu la charge utile push. Dans de rares cas, la notification peut ne pas s’afficher. Causes possibles :- Notification manquée : Envoyez-vous un push de test via Trouver et définir les abonnements de test pour l’écarter.
- Mode Focus iOS : “Ne pas déranger”, “Sommeil” ou d’autres modes Focus retardent ou regroupent les notifications. Vous avez peut-être fermé une notification groupée sans la voir.
- Code d’application supprimant l’affichage :
event.preventDefault()dans l’écouteur du cycle de vie au premier plan ou l’extension de service de notification empêche l’affichage de la notification.- Les appels à
removeDeliveredNotifications(withIdentifiers:)ouremoveAllDeliveredNotifications()suppriment les notifications après leur arrivée.
- Paramètres de charge utile push :
- Assurez-vous que
priorityest défini sur élevé. Consultez Priorité push. collapse_idremplace les anciens pushes par les nouveaux en utilisant le même ID.
- Assurez-vous que
Besoin d’aide ?Discutez avec notre équipe d’assistance ou envoyez un e-mail à
support@onesignal.comVeuillez inclure :- Les détails du problème que vous rencontrez et les étapes de reproduction si disponibles
- Votre OneSignal App ID
- L’External ID ou le Subscription ID le cas échéant
- L’URL du message que vous avez testé dans le OneSignal Dashboard le cas échéant
- Tous les journaux ou messages d’erreur pertinents