- Livré signifie que OneSignal a transmis avec succès la notification au service push (FCM, APNs ou HMS) et a reçu une réponse de succès.
- Confirmé signifie que le SDK OneSignal sur l’appareil a reçu la notification.
Avant de commencer
Rassemblez les éléments suivants pour faciliter le dépannage. Vous en aurez besoin pour identifier l’abonnement correct et vérifier le statut de livraison.- Votre ID d’application OneSignal
- L’ID de message de la notification qui ne s’est pas affichée
- L’ID d’abonnement de l’utilisateur concerné
Si vous n’avez que l’ID externe, recherchez l’abonnement dans Audience > Abonnements en filtrant par Type d’appareil, Dernière session ou Adresse IP.
Paramètres de l’appareil
Cette section s’applique à toutes les plateformes. Vérifiez ces éléments avant d’investiguer les causes spécifiques à une plateforme ou au niveau du code.Autorisation et statut d’abonnement
Sur l’appareil :- Accédez à Paramètres > Notifications et ouvrez les paramètres de notification de l’application.
- Confirmez que l’autorisation de notification est activée.
- Ensuite, ouvrez l’application. Si notre SDK s’initialise, il synchronisera le statut d’abonnement avec OneSignal.
- Accédez à Audience > Abonnements.
- Recherchez l’ID d’abonnement ou l’ID externe, ou triez par Type d’appareil, Dernière session ou Adresse IP.
- Confirmez que le statut push affiche Abonné. S’il affiche désabonné ou n’apparaît pas, l’appareil ne recevra pas de notifications quoi que vous envoyiez. Si le statut est inattendu, consultez Dépannage ci-dessous.
Modes Ne pas déranger et concentration
Les modes Ne pas déranger et Concentration sur Android et iOS peuvent supprimer entièrement les notifications ou les regrouper de manière à les rendre invisibles jusqu’à ce que le mode soit désactivé. Désactivez ces modes avant de tester :- iOS : Paramètres > Concentration > Ne pas déranger > désactiver
- Android : Paramètres > Notifications > Ne pas déranger > désactiver
Sur iOS, si une notification arrive pendant le mode Concentration et que l’utilisateur fait glisser le résumé de notifications groupées, ces notifications ne réapparaîtront pas individuellement par la suite.
Mode basse consommation et optimisation de la batterie
iOS : Désactivez le mode Économie d’énergie dans Paramètres > Batterie avant de tester. Appareils Android : Dans les Paramètres de batterie, définissez l’application sur « Non restreinte » ou « Non optimisée ». Si vous ne voyez pas cette option, recherchez Optimisation de la batterie, Mode économie d’énergie, Économie d’énergie, Limites d’utilisation en arrière-plan ou Paramètres de batterie adaptative et désactivez pour l’application.Réseau et connectivité
Les appareils doivent être en ligne pour recevoir des notifications push. Si l’appareil est éteint, en mode avion, a une connexion internet instable ou inexistante, le push ne s’affichera pas tant qu’une connexion appropriée n’est pas établie. Vous pouvez définir la durée pendant laquelle FCM et APNs attendront avec le paramètre Time To Live (TTL) (la valeur par défaut est 3 jours). Si l’appareil est sur un réseau WiFi avec un pare-feu ou un VPN, ce réseau peut bloquer la connexion aux serveurs Apple ou Google. Testez en passant aux données cellulaires. Si vous gérez le trafic réseau via un pare-feu, configurez-le pour autoriser les connexions suivantes :- FCM (Android) : ports TCP sortants 5228, 5229 et 5230. Consultez la documentation FCM pour les exigences complètes.
- APNs (iOS) : port TCP sortant 5223 et port TCP 443 ou 2197. Consultez la documentation Apple pour les exigences complètes.
Comportement de regroupement des notifications
Les différentes versions d’Android et d’iOS ont leur propre comportement de regroupement des notifications. Le regroupement se produit lorsque plusieurs notifications d’une même application ou de plusieurs applications sont regroupées dans le centre de notifications. Il est courant que des notifications groupées soient ignorées ensemble, ce qui fait manquer des notifications individuelles aux utilisateurs.Problèmes Android
Cette section s’applique uniquement aux appareils Android. Si vous dépannez iOS, passez à Problèmes iOS.Arrêt forcé Android
Lorsqu’une application Android est arrêtée de force, le système d’exploitation l’empêche de recevoir des notifications push jusqu’à ce que l’utilisateur la rouvre manuellement. C’est l’une des causes les plus courantes de notifications manquées sur Android. Certains fabricants — notamment Samsung, Xiaomi et Huawei — arrêtent agressivement les applications de force lorsque l’utilisateur les fait glisser de la liste des applications récentes, tout en exemptant les grandes applications comme Gmail et WhatsApp. Consultez dontkillmyapp.com pour le comportement spécifique à chaque appareil. Pour réduire le comportement d’arrêt forcé sur l’appareil concerné, essayez les étapes suivantes dans l’ordre :- Autoriser l’activité en arrière-plan : Paramètres > Applications > Votre application > Batterie > Autoriser l’activité en arrière-plan.
- Désactiver les applications en veille : Paramètres > Entretien de la batterie et de l’appareil > Batterie > Limites d’utilisation en arrière-plan > Applications en veille > retirez votre application de cette liste.
- Verrouiller l’application dans les applications récentes : Ouvrez votre application, appuyez sur le bouton Applications récentes, puis appuyez et maintenez la fenêtre de l’application et sélectionnez Verrouiller cette application (disponible sur certains modèles Samsung).
- Activer le démarrage automatique (certains appareils) : Paramètres > Applications > Votre application > Autorisations > Démarrage automatique > Activer.
- Désactiver l’optimisation de batterie adaptative : Paramètres > Entretien de la batterie et de l’appareil > Batterie > Plus de paramètres de batterie > Batterie adaptative > désactiver (ou exclure votre application).
com.company.appname par votre nom de package :
stopped=false signifie que l’application n’est pas arrêtée de force. stopped=true signifie qu’elle l’est.
Vous pouvez également envoyer quelques notifications et vérifier dans logcat cette entrée :
FCM fournit une API pour vérifier la dernière fois qu’un appareil s’est connecté aux serveurs FCM. Cela peut confirmer si l’appareil est du tout accessible. Consultez la documentation Google sur les informations d’instances d’application pour plus de détails.Pour aider les utilisateurs à résoudre eux-mêmes ce problème, utilisez un message in-app pour cibler les utilisateurs Android connus avec des instructions pour activer l’activité en arrière-plan. Consultez Exemple : Cibler certains fabricants et appareils Android.
Catégories de notification Android désactivées
Les catégories de notification Android (également appelées canaux) permettent aux utilisateurs de désactiver des types spécifiques de notifications de votre application. Si une catégorie est désactivée, les notifications envoyées avec cette catégorie n’apparaîtront pas sur l’appareil — même si l’application a l’autorisation de notification. Vérifiez l’état de la catégorie sur l’appareil : Paramètres > Notifications > Votre application. Confirmez que « Afficher les notifications » est activé et que toutes les catégories sont activées.
Vous pouvez utiliser des messages in-app pour cibler les utilisateurs Samsung avec des instructions pour réactiver les catégories. Consultez Exemple : Cibler certains fabricants et appareils Android.
Mode Doze Android, priorité et messages déprioritarisés
Les fonctionnalités d’économie d’énergie d’Android (mode Doze et App Standby) retardent les processus en arrière-plan — y compris la livraison des push — lorsque l’appareil est débranché et immobile. Ces modes s’activent automatiquement et ne sont pas visibles pour l’utilisateur. L’envoi de messages de haute priorité réveillera l’appareil et contournera le mode Doze. Cependant, si vous envoyez trop de messages haute priorité qui ne génèrent pas de notifications visibles, FCM peut automatiquement dégrader vos messages en priorité normale. D’après la documentation FCM :Les messages haute priorité sur Android sont destinés à du contenu sensible au temps et visible par l’utilisateur. Si FCM détecte un modèle dans lequel les messages ne génèrent pas de notifications visibles, vos messages peuvent être déprioritarisés à priorité normale.Si vous suspectez une déprioritisation, limitez l’utilisation de la haute priorité aux seuls messages urgents.
Configuration de l’émulateur Android
Les notifications push sur les émulateurs Android nécessitent Google Play Services. Si vous testez sur un émulateur et ne recevez pas de notifications, vérifiez les points suivants :- L’image de l’émulateur inclut Google Play Store
- L’émulateur est configuré pour utiliser un démarrage à froid
Problèmes iOS
Cette section s’applique uniquement aux appareils iOS. Si vous dépannez Android, consultez Problèmes Android.Regroupement des notifications APNs
Si plusieurs notifications ont été envoyées pendant qu’un appareil iOS était hors ligne ou injoignable, seule la plus récente peut apparaître lorsque l’appareil se reconnecte. APNs ne stocke qu’une seule notification par application lorsque l’appareil est hors ligne et supprime les précédentes. Il s’agit d’un comportement attendu d’APNs qui ne peut pas être modifié par OneSignal ou votre application.Blocage en premier plan iOS
Si vous avez configuré le iOS UNUserNotificationCenterDelegate, vous pouvez avoir du code qui empêche l’affichage de la notification lorsque l’application est au premier plan. Supprimez ce code personnalisé et utilisez plutôt l’écouteur d’événement de premier plan de notre SDK.Effacement des badges iOS
Lorsqu’une application efface son compteur de badges, iOS supprime toutes les notifications de cette application du Centre de notifications. Le SDK OneSignal efface automatiquement les badges lorsque l’application s’ouvre, ce qui signifie que les notifications précédemment livrées peuvent disparaître lorsque l’utilisateur ouvre l’application. Si cela crée de la confusion lors des tests, consultez Badges pour savoir comment contrôler ce comportement.Configuration du message
Cette section couvre les problèmes causés par la configuration de la notification dans OneSignal, et non par l’appareil.Abonnement non inclus dans l’audience cible
Vérifiez l’audience du message pour confirmer que votre abonnement mobile est inclus :- Segments : Vérifiez que votre abonnement satisfait toutes les conditions du filtre d’audience.
- Envoi direct : Confirmez que l’ID que vous ciblez est correct :
- L’abonnement est toujours abonné aux push.
- Il a une date de dernière session récente — vous envoyez peut-être à un abonnement ancien ou inactif.
Collapse ID remplaçant les notifications
Si vous définissez un Collapse ID sur vos messages, une nouvelle notification avec le même Collapse ID remplacera silencieusement toute notification non lue portant cet ID. Si l’utilisateur n’a pas ouvert la notification précédente, il ne verra que la plus récente. Consultez Supprimer les notifications et TTL pour plus de détails sur le fonctionnement du Collapse ID.Causes au niveau du code
Cette section nécessite l’accès au code source de l’application. Si vous n’avez pas accès au code, partagez ces vérifications avec votre équipe de développement.Prévention des notifications en premier plan OneSignal
L’écouteur d’événement de premier plan du SDK OneSignal inclut une méthodeevent.preventDefault() qui supprime une notification pendant que l’application est au premier plan. Si cette méthode est appelée inconditionnellement dans votre code, toutes les notifications en premier plan seront silencieusement bloquées.
Lors des tests, gardez l’application en arrière-plan ou complètement fermée pour exclure la suppression en premier plan comme cause.
Android Notification Service Extension
Si vous avez implémenté l’Android Notification Service Extension, c’est le premier point d’entrée d’une notification entrante dans votre application. Sievent.preventDefault() est appelé dans cette extension, la notification sera bloquée quel que soit l’état de l’application. Vérifiez le code de l’extension et confirmez que cette méthode n’est appelée qu’intentionnellement.
Conflit avec le SDK Firebase Messaging
Si votre application inclut également le SDK Firebase Messaging, vérifiez qu’il n’intercepte pas les messages FCM avant qu’OneSignal puisse les traiter. Ce problème survient couramment lorsque :- Les notifications s’affichent comme Livrées dans OneSignal mais n’apparaissent jamais sur l’appareil.
- L’application inclut à la fois OneSignal et
firebase_messaging(ou unFirebaseMessagingServicepersonnalisé). - Le push fonctionne lorsque Firebase Messaging est supprimé, mais échoue lorsque les deux SDK sont présents.
-
Vérifiez votre
AndroidManifest.xmlpour les anciens récepteurs Firebase tels quecom.google.firebase.iid.FirebaseInstanceIdReceiveret supprimez-les ou excluez-les conditionnellement si OneSignal est responsable de la livraison des push. -
Vérifiez les implémentations
FirebaseMessagingServicepersonnalisées (ou les bibliothèques telles quefirebase_messagingdans Flutter) qui remplacentonMessageReceived. Si un autre service traite ou supprime complètement les messages, il peut consommer le payload FCM avant qu’OneSignal puisse afficher la notification. -
Évitez d’appeler les API de gestion des tokens Firebase telles que :
FirebaseMessaging.getToken()ouFirebaseMessaging.deleteToken().
User.pushSubscription.token) et écoutez les changements d’abonnement/token en utilisant les API d’observateur du SDK.
Dépannage
Si vous avez parcouru les sections ci-dessus et que le problème n’est pas résolu, capturez un journal de débogage. C’est le moyen le plus rapide d’identifier exactement où la livraison échoue. Suivez Obtenir un journal de débogage pour activer la journalisation détaillée dans votre application. Ensuite :- Mettez l’application en arrière-plan
- Envoyez une notification de test à l’appareil concerné
- Vérifiez le journal pour toute erreur. Assurez-vous de voir OneSignal initialisé et que le
subscription-iddans le journal est abonné aux push et correspond à celui auquel vous envoyez le message.
Besoin d’aide ?Contactez notre équipe Support à
support@onesignal.comVeuillez inclure :- Votre ID d’application OneSignal
- L’ID d’abonnement ou l’ID externe
- L’URL du message que vous avez testé dans le tableau de bord OneSignal
- Le journal de débogage complet de Obtenir un journal de débogage