Résolution des problèmes des notifications push
Découvrez comment résoudre les problèmes liés aux notifications push pour le SDK de Braze.
Comprendre le processus de poussée de Braze
Le service Firebase Cloud Messaging (FCM) est l’infrastructure Google pour les notifications push envoyées aux applications Android. Voici la structure simplifiée de la manière dont les notifications push sont activées pour les appareils de vos utilisateurs et la façon dont Braze peut leur envoyer des notifications push :
---
config:
theme: mc
---
sequenceDiagram
participant Device as User Device
participant App as Android App
participant BrazeSDK as Braze SDK
participant BrazeAPI as Braze Server
participant Firebase as Google Firebase
Note over Device, Firebase: Register Option 1<br/>Register Automatically using `com_braze_firebase_cloud_messaging_registration_enabled` in braze.xml
App ->> Braze: App intializes Braze with the first Braze call<br>This could be automatic session handling
BrazeSDK ->> App: Get push token from Firebase Manager
BrazeSDK ->> BrazeAPI: Send push token to Braze Server
Note right of BrazeAPI: Braze will remove push token from any<br>other user who may have previously<br> been logged in on the same device.
Note over Device, Firebase: Register Option 2<br/>Manual registration.
App ->> BrazeSDK: App sets `Braze.registeredPushToken`
BrazeSDK ->> BrazeAPI: Send push token to Braze Server
Note right of BrazeAPI: Braze will remove push token from any<br>other user who may have previously<br> been logged in on the same device.
Note over Device, Firebase: Push permission
BrazeAPI ->> BrazeSDK: In-App Message containing push prompt
BrazeSDK -> App: In-App Message is displayed
App -> BrazeSDK: User requests permissions
BrazeSDK -> App: Displays the Push Authorization prompt
BrazeSDK -> BrazeAPI: If authorized and `com_braze_optin_when_push_authorized`, Opt-In value is sent.
Note over Device, Firebase: Push Notification Is Sent
BrazeAPI ->> Firebase: Sends push message
Firebase ->> Device: Push message sent
Device ->> App: Android will send the push to the App.<br>This could be blocked to Do Not Disturb, Power Saving Mode, etc.
App ->> BrazeSDK: Message is sent to BrazeFirebaseMessagingService
BrazeSDK ->> Device: SDK will check if the push is from Braze.<br>If so, push data is transformed into a Push Notfication and displayed.
Étape 1 : Configurer votre clé API Google Cloud
Pour développer votre application, vous devrez fournir votre ID d’expéditeur Firebase au SDK Braze pour Android. De plus, vous devez fournir une clé API pour les applications serveur au tableau de bord de Braze. Braze utilisera cette clé API pour envoyer des messages à vos appareils. Vous devrez également vous assurer que le service FCM est activé dans la console de développement de Google.
Une erreur courante pendant cette étape est d’utiliser la clé API d’identification de l’application plutôt que la clé API REST.
Étape 2 : Les appareils s’inscrivent au FCM et fournissent à Braze des jetons de notification push
Dans les intégrations typiques, le SDK Braze pour Android traitera l’enregistrement des appareils pour la capacité FCM. Cela se produira généralement immédiatement après l’ouverture de l’application pour la première fois. Après l’inscription, Braze recevra un ID d’enregistrement FCM, utilisé pour envoyer des messages spécifiquement à cet appareil. Nous stockerons l’ID d’enregistrement pour cet utilisateur et il deviendra « push registered » (enregistré pour les notifications push) s’il n’avait pas au préalable de jeton de notification push pour l’une de vos applications.
Étape 3 : Lancer une campagne de notifications push Braze
Lorsqu’une campagne de notifications push est lancée, Braze fera des requêtes à FCM pour transmettre votre message. Braze utilisera la clé API copiée dans le tableau de bord pour authentifier et vérifier que nous pouvons envoyer des notifications push aux jetons de notification push fournis.
Étape 4 : Supprimer les jetons non valides
Si FCM nous informe que certains des jetons de notification push auxquels nous tentions d’envoyer un message ne sont pas valides, nous supprimons ces jetons des profils utilisateur auxquels ils sont associés. Si des utilisateurs n’ont pas d’autres jetons de notification push, ils ne s’afficheront plus en tant que « Push Registered » (Enregistré pour les notifications push) dans la page Segments.
Pour plus d’informations sur FCM, consultez Messagerie cloud.
Utiliser les journaux d’erreur de notification push
Braze fournit des erreurs de notification push dans le journal des activités de message. Ce journal d’erreurs fournit de nombreux avertissements qui peuvent être très utiles pour identifier les raisons pour lesquelles vos campagnes ne fonctionnent pas comme prévu. Cliquer sur un message d’erreur vous redirigera vers la documentation pertinente pour vous aider à résoudre un incident particulier.
Scénarios de résolution des problèmes
Les notifications push ne sont pas envoyées
Il se peut que vos messages push ne soient pas envoyés en raison des situations suivantes :
- Vos identifiants existent dans le mauvais ID de projet de Google Cloud Platform (ID d’expéditeur incorrect).
- Vos informations d’identification n’ont pas la bonne portée de permission.
- Vous avez téléchargé des informations d’identification erronées dans le mauvais espace de travail de Braze (mauvais ID de l’expéditeur).
Pour d’autres problèmes susceptibles de vous empêcher d’envoyer un message push, reportez-vous à User Guide : Résolution des problèmes des notifications push.
Aucun utilisateur « Push Registered » (Enregistré pour les notifications push) ne s’affiche dans le tableau de bord de Braze (avant l’envoi de messages)
Confirmez que votre app est correctement configurée pour autoriser les notifications push. Les points de défaillance fréquents à vérifier comprennent :
ID d’expéditeur incorrect
Vérifiez que l’ID correct d’expéditeur FCM figure dans le fichier braze.xml
. Un ID d’expéditeur incorrect va entraîner le signalement d’erreurs MismatchSenderID
dans le journal des activités de message du tableau de bord.
L’enregistrement Braze ne se fait pas
Puisque l’enregistrement FCM est géré en dehors de Braze, une erreur d’enregistrement ne peut se produire que dans deux endroits :
- Lors de l’enregistrement avec FCM
- Lors de la transmission du jeton de notification push généré par FCM à Braze
Nous recommandons de définir un point de rupture ou une journalisation pour garantir que le jeton de notification push généré par FCM est envoyé à Braze. Si un jeton n’est pas généré correctement ou pas du tout, nous recommandons de consulter la documentation FCM.
Les services Google Play ne sont pas présents
Pour que la notification push FCM fonctionne, les services Google Play doivent être présents sur l’appareil. Si les services Google Play ne sont pas présents sur un appareil, l’enregistrement de la notification push ne sera pas effectué.
Remarque : Les services Google Play ne sont pas installés sur les émulateurs Android qui n’ont pas les API Google installées.
L’appareil n’est pas connecté à Internet
Vérifiez que votre appareil dispose d’une bonne connectivité internet et qu’il n’envoie pas le trafic réseau par l’intermédiaire d’un proxy.
Appuyer sur une notification push n’ouvre pas l’application
Vérifiez si com_braze_handle_push_deep_links_automatically
est défini sur true
ou false
. Pour permettre à Braze d’ouvrir automatiquement l’application et les liens profonds lorsqu’une notification push est touchée, définissez com_braze_handle_push_deep_links_automatically
sur true
dans votre fichier braze.xml
.
Si com_braze_handle_push_deep_links_automatically
est défini sur sa valeur par défaut de false
, vous devez créer une Fonction de rappel de notification push Braze pour écouter et gérer les notifications push reçues et les intentions ouvertes.
Rebonds de notifications push
Si une notification push n’est pas transmise, consultez la console de développement pour vous assurer qu’elle n’a pas été rejetée. Vous trouverez ci-dessous une description des erreurs fréquentes susceptibles d’être consignées dans la console de développement :
Erreur : MismatchSenderID
MismatchSenderID
indique une défaillance de l’authentification. Vérifiez que votre ID d’expéditeur Firebase et la clé API FCM sont corrects.
Erreur : InvalidRegistration
InvalidRegistration
peut être causé par un jeton de notification push déficient.
- Veillez à transmettre un jeton de poussée valide à Braze depuis Firebase Cloud Messaging.
Erreur : NotRegistered
-
NotRegistered
se produit généralement lorsqu’une application a été supprimée d’un appareil. Braze utiliseNotRegistered
en interne pour signaler qu’une application a été désinstallée d’un appareil. -
NotRegistered
peut également se produire lorsque plusieurs enregistrements se produisent et qu’un deuxième enregistrement invalide le premier jeton.
Les notifications push sont envoyées mais ne sont pas affichées sur les appareils des utilisateurs
Il y a plusieurs raisons pour lesquelles cela pourrait se produire :
L’application a été forcée à s’arrêter
Si vous forcez votre application à quitter via les paramètres système, vos notifications push ne seront pas envoyées. Lancer à nouveau l’application permettra de permettre à nouveau à votre appareil de recevoir des notifications push.
BrazeFirebaseMessagingService n’est pas enregistré
BrazeFirebaseMessagingService doit être correctement enregistré dans AndroidManifest.xml
pour que les notifications push s’affichent :
1
2
3
4
5
6
<service android:name="com.braze.push.BrazeFirebaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
Le pare-feu bloque la notification push
Si vous testez la notification push par Wi-Fi, votre pare-feu peut bloquer les ports nécessaires pour que FCM reçoive les messages. Vérifiez que les ports 5228
, 5229
et 5230
sont ouverts. En outre, puisque FCM ne spécifie pas ses IP, vous devez également autoriser votre pare-feu à accepter les connexions sortantes vers toutes les adresses IP contenues dans les blocs IP répertoriés dans l’ASN de Google de 15169
.
La fabrique de notification personnalisée renvoie null
Si vous avez mis en place une fabrique de notifications personnalisée, assurez-vous qu’elle ne renvoie pas null
. Ceci empêcherait l’affichage des notifications.
Les utilisateurs « Push Registered » (Enregistré pour les notifications push) ne sont plus activés après l’envoi de messages
Il y a plusieurs raisons pour lesquelles cela pourrait se produire :
L’application a été désinstallée
Les utilisateurs ont désinstallé l’application. Cela invalidera leur jeton de notification push FCM.
Clé du serveur Firebase Cloud Messaging non valide
La clé du serveur Firebase Cloud Messaging fournie dans le tableau de bord de Braze n’est pas valide. L’ID d’expéditeur fourni doit correspondre à celui référencé dans le fichier braze.xml
de votre application. La clé du serveur et l’ID d’expéditeur sont disponibles ici dans votre console Firebase :
.
Les clics de notification push ne sont pas enregistrés
Braze enregistre les clics de notification push automatiquement, ce scénario doit donc être relativement rare.
Si les clics push ne sont pas enregistrés, il est possible que les données des clics push n’aient pas encore été transférées vers nos serveurs. Braze restreint la fréquence de ses transmissions en fonction de la solidité de la connexion réseau. Avec une bonne connexion réseau, les données de clics de notification push doivent arriver au serveur dans la minute, dans la plupart des cas.
Les liens profonds ne fonctionnent pas
Vérifiez la configuration du lien profond
Les liens profonds peuvent être testés avec ADB. Nous vous recommandons de tester votre lien profond avec la commande suivante :
adb shell am start -W -a android.intent.action.VIEW -d "THE_DEEP_LINK" THE_PACKAGE_NAME
Si le lien profond n’arrive pas à fonctionner, il peut être mal configuré. Un lien profond mal configuré ne fonctionnera pas lorsque vous l’enverrez par le biais de la notification push de Braze.
Vérifiez la logique de gestion personnalisée
Si le lien profond fonctionne correctement avec ADB mais ne fonctionne pas à partir de Braze push, vérifiez si une création de liens profonds personnalisée a été mise en œuvre. Si oui, vérifiez que le code de gestion personnalisé gère correctement le lien profond entrant.
Désactiver le comportement de la pile arrière
Si le lien profond fonctionne correctement avec ADB mais ne fonctionne pas à partir de Braze push, essayez de désactiver la pile arrière. Pour ce faire, mettez à jour votre fichier braze.xml pour y inclure :
1
<bool name="com_braze_push_deep_link_back_stack_activity_enabled">false</bool>
Comprendre le flux de travail du Braze/APN
Le service Apple Push Notification (APN) est l’infrastructure permettant d’envoyer des notifications push aux applications fonctionnant sur les plateformes d’Apple. Voici la structure simplifiée de la manière dont les notifications push sont activées pour les appareils de vos utilisateurs et la façon dont Braze peut leur envoyer des notifications push :
- Vous configurez le certificat push et le profil de provisionnement
- Les appareils s’enregistrent pour les APN et fournissent à Braze des jetons de notification push
- Vous lancez une campagne de notifications push Braze
- Braze supprime les jetons non valides
Étape 1 : Configurer le certificat push et le profil de provisionnement
Lors du développement de votre application, vous devez créer un certificat SSL pour activer les notifications push. Ce certificat sera inclus dans le profil de provisionnement avec lequel votre application est créée et devra également être téléchargé sur le tableau de bord de Braze. Le certificat permet à Braze de communiquer aux APN que nous sommes autorisés à envoyer des notifications push en votre nom.
Il existe deux types de profils de provisionnement et de certificats : le développement et la distribution. Nous vous recommandons d’utiliser uniquement des profils de distribution et des certificats pour éviter toute confusion. Si vous choisissez d’utiliser différents profils et certificats pour le développement et la distribution, assurez-vous que le certificat téléchargé sur le tableau de bord correspond au profil de provisionnement que vous utilisez actuellement.
Ne modifiez pas l’environnement de certificat push (développement par rapport à la production). La modification du certificat de notification push pour un environnement incorrect peut entraîner la suppression accidentelle de son jeton de notification push, ce qui le rend inaccessible par la notification push.
Étape 2 : Les appareils s’enregistrent pour les APN et fournissent à Braze des jetons de notification push
Lorsque les utilisateurs ouvrent votre application, ils sont invités à accepter les notifications push. S’ils acceptent cette invite, les APN généreront un jeton de notification push pour cet appareil particulier. Le SDK Swift enverra immédiatement et de manière asynchrone le jeton push pour les apps utilisant la politique de rinçage automatique par défaut. Une fois que nous aurons associé un jeton push à un utilisateur, il apparaîtra comme “Enregistré Push” dans le tableau de bord de son profil utilisateur sous l’onglet Engagement et sera éligible pour recevoir des notifications push des campagnes Braze.
À partir de macOS 13, sur certains appareils, vous pouvez tester les notifications push sur un simulateur iOS 16 fonctionnant sous Xcode 14. Pour plus de détails, reportez-vous aux notes de version de Xcode 14.
Considérations relatives à la génération de jetons push
- Si les utilisateurs installent votre app sur un autre appareil, un autre jeton sera créé et capturé de la même manière.
- Si les utilisateurs réinstallent votre app, un nouveau jeton sera généré et transmis à Braze. Cependant, le jeton d’origine peut toujours être considéré comme valide par les APN et Braze.
- Si les utilisateurs désinstallent votre application, Braze n’en est pas immédiatement informé et le jeton apparaîtra toujours comme valide jusqu’à ce qu’il soit retiré par les APN.
- À un moment donné, les APN retireront les anciens jetons. Braze n’en a ni le contrôle ni la visibilité.
Étape 3 : Lancer une campagne de notifications push Braze
Lorsqu’une campagne de notifications push est lancée, Braze effectuera des demandes aux APN pour délivrer votre message. Plus précisément, les demandes sont transmises aux APN pour chaque jeton de poussée en cours de validité, sauf si l’option Envoyer à l’appareil le plus récent de l’utilisateur est sélectionnée. Une fois que Braze a reçu une réponse positive des APN, nous enregistrons une réception/distribution réussie dans le profil de l’utilisateur, bien que l’utilisateur puisse ne pas avoir reçu le message pour diverses raisons :
- Leur appareil est hors tension.
- Leur appareil n’est pas connecté à l’internet (Wi-Fi ou cellulaire).
- Ils ont récemment désinstallé l’application.
Braze utilisera le certificat push SSL téléchargé dans le tableau de bord pour authentifier et vérifier que nous sommes autorisés à envoyer des notifications push aux jetons de notification push fournis. Si un appareil est en ligne, la notification devrait être reçue peu de temps après l’envoi de la campagne. Notez que Braze fixe à 30 jours la date d’expiration par défaut des APN pour les notifications.
Étape 4 : Supprimer les jetons non valides
Si l ‘APN nous informe que l’un des jetons push auxquels nous avons tenté d’envoyer un message n’est pas valide, nous supprimons ces jetons des profils utilisateurs auxquels ils étaient associés.
Il est normal que les APN renvoient initialement un statut de réussite même si un jeton n’est plus enregistré, car les APN ne signalent pas immédiatement les événements d’invalidation des jetons. Les APN retardent intentionnellement le renvoi de l’état 410
pour les jetons non valides selon une planification aléatoire, conçue pour protéger la vie privée des utilisateurs et empêcher le suivi des désinstallations d’applications. Vous pouvez continuer à envoyer des notifications à un jeton non enregistré jusqu’à ce que l’APN renvoie le statut 410
.
Utilisation des journaux d’erreurs de push
Le journal d’activité des messages vous donne la possibilité de voir tous les messages (en particulier les messages d’erreur) associés à vos campagnes et à vos envois, y compris les erreurs de notification push. Ce journal d’erreurs fournit de nombreux avertissements qui peuvent être très utiles pour identifier les raisons pour lesquelles vos campagnes ne fonctionnent pas comme prévu. Cliquer sur un message d’erreur vous redirigera vers la documentation pertinente pour vous aider à résoudre un incident particulier.
Les erreurs courantes que vous pouvez voir ici comprennent des notifications spécifiques à l’utilisateur, telles que “Received Unregistered Sending to Push Token”.
En outre, Braze fournit également un journal des modifications en mode push sur le profil utilisateur, sous l’onglet Engagement. Ce journal des modifications donne un aperçu du comportement d’enregistrement des notifications push, comme l’invalidation des jetons, les erreurs d’enregistrement push, les jetons déplacés vers de nouveaux utilisateurs, etc.
Erreurs du journal des activités liées aux messages
Réception d’un envoi non enregistré au jeton de notification push
- Assurez-vous que le jeton de commande est envoyé à Braze à partir de la méthode
AppDelegate.braze?.notifications.register(deviceToken:)
est valide. Vous pouvez consulter le journal des activités liées aux messages pour voir le jeton de notification push. Il devrait ressembler à quelque chose comme6e407a9be8d07f0cdeb9e724733a89445f57a89ec890d63867c482a483506fa6
, une longue chaîne de caractères contenant un mélange de lettres et de chiffres. Si votre jeton de poussée semble différent, vérifiez votre code d’envoi des jetons de poussée à Braze. - Vérifiez que votre profil de provisionnement de notification push correspond à l’environnement dans lequel vous effectuez des tests. Les certificats universels peuvent être configurés dans le tableau de bord de Braze pour envoyer vers l’environnement de développement ou de production APN. L’utilisation d’un certificat de développement pour une application de production ou d’un certificat de production pour une application de développement ne fonctionnera pas.
- Vérifiez que le jeton de notification push que vous avez téléchargé sur Braze correspond au profil de provisionnement que vous avez utilisé pour créer l’application à partir de laquelle vous avez envoyé le jeton de notification push.
Jeton d’appareil non destiné à la rubrique
Cette erreur indique que le certificat push et l’ID de lot (bundle ID) de votre application ne correspondent pas. Vérifiez que le certificat de notification push que vous avez téléchargé sur Braze correspond au profil de provisionnement que vous avez utilisé pour créer l’application à partir de laquelle vous avez envoyé le jeton de notification push.
BadDeviceToken envoyant au jeton de notification push
Le BadDeviceToken
est un code d’erreur APN et ne provient pas de Braze. Cette réponse peut être renvoyée pour plusieurs raisons, notamment :
- L’application a reçu un jeton de notification push qui n’était pas valide pour les informations d’identification téléchargées sur le tableau de bord.
- La fonction “Push” a été désactivée pour cet espace de travail.
- L’utilisateur s’est désinscrit des notifications push.
- L’application a été désinstallée.
- Apple a actualisé le jeton de notification push, ce qui a invalidé l’ancien jeton.
- L’application a été conçue pour un environnement de production, mais les informations d’identification des notifications push téléchargées sur Braze sont définies pour un environnement de développement (ou l’inverse).
Problèmes d’enregistrement de notifications push
Pas d’invite d’enregistrement push
Si l’application ne vous invite pas à vous inscrire aux notifications push, il y a probablement un problème avec votre intégration d’inscription push. Assurez-vous d’avoir suivi notre documentation et d’avoir correctement intégré notre enregistrement push. Vous pouvez également définir des points d’arrêt dans votre code pour vous assurer que le code d’inscription de notification push est en cours d’exécution.
Aucun utilisateur “enregistré en push” n’apparaît dans le tableau de bord (avant l’envoi des messages)
Assurez-vous que votre application est correctement configurée pour autoriser les notifications push. Les points de défaillance fréquents à vérifier comprennent :
- Vérifiez que votre application vous invite à autoriser les notifications push. En général, cette invite apparaîtra lors de votre première ouverture de l’application, mais elle peut être programmée pour apparaître ailleurs. Si elle n’apparaît pas là où elle le devrait, le problème est probablement la configuration de base des capacités de notification push de votre application.
- Vérifiez que les étapes de l’intégration push ont été effectuées avec succès.
- Vérifiez que le profil de provisionnement de votre application a été créé avec des autorisations pour les notifications push. Assurez-vous de retirer tous les profils de provisionnement disponibles depuis votre compte développeur Apple. Pour confirmer cela, procédez comme suit :
- Dans Xcode, sélectionnez Préférences > Comptes (ou utilisez le raccourci clavier Command+,).
- Sélectionnez l’ID Apple que vous utilisez pour votre compte développeur et cliquez sur Afficher les détails.
- Sur la page suivante, cliquez sur Actualiser et confirmez que vous tirez tous les profils de provisionnement disponibles.
- Vérifiez que vous avez bien activé la fonction “push” dans votre application.
- Vérifiez que votre profil de provisionnement de notification push correspond à l’environnement dans lequel vous effectuez des tests. Les certificats universels peuvent être configurés dans le tableau de bord de Braze pour envoyer vers l’environnement de développement ou de production APN. L’utilisation d’un certificat de développement pour une application de production ou d’un certificat de production pour une application de développement ne fonctionnera pas.
- Vérifiez que vous utilisez
registerPushToken
en définissant un point de rupture dans votre code. - Assurez-vous que vous testez à l’aide d’un appareil (push ne fonctionnera pas sur un simulateur) et que vous disposez d’une bonne connectivité réseau.
Notifications push envoyées mais non affichées sur les appareils des utilisateurs.
Les utilisateurs « Push Registered » (Enregistré pour les notifications push) ne sont plus activés après l’envoi de messages
Ceci indique probablement que l’utilisateur avait un jeton de notification push non valide. Cela peut se produire pour plusieurs raisons :
Pas de correspondance du tableau de bord et du certificat d’application
Si le certificat de notification push que vous avez téléchargé dans le tableau de bord n’est pas le même dans le profil de provisionnement avec lequel votre application a été créée , les APN rejetteront le jeton. Vérifiez que vous avez téléchargé le bon certificat et terminé une autre session dans l’application avant de tenter une autre notification de test.
L’application a été désinstallée
Si un utilisateur a désinstallé votre application, son jeton de notification push sera invalide et supprimé lors du prochain envoi.
Régénération de votre profil de provisionnement
En dernier recours, recommencez à zéro et en créant un tout nouveau profil de provisionnement cela peut éliminer les erreurs de configuration résultant de l’utilisation simultanée de plusieurs environnements, profils et applications. La mise en place des notifications push comporte de nombreuses “pièces mobiles”, c’est pourquoi il est parfois préférable de recommencer depuis le début. Cela permettra également d’isoler le problème si vous devez continuer la résolution des problèmes.
Messages non livrés aux utilisateurs « notification push enregistrée »
Application au premier plan
Sur les versions iOS qui ne sont pas intégrées à la commande via l’infrastructure UserNotifications
, si l’application est en premier plan lorsque le message de notification push est reçu, il ne s’affiche pas. Vous devez faire l’expérience de l’application sur vos appareils de test avant d’envoyer des messages de test.
Notification de test planifiée de manière incorrecte
Vérifiez la planification que vous avez définie pour votre message de test. S’il est réglé sur la réception/distribution par fuseau horaire local ou sur le timing intelligent, il se peut que vous n’ayez pas encore reçu le message (ou que l’application ait été au premier plan au moment de sa réception).
L’utilisateur n’est pas « inscrit aux notifications push » pour l’application testée
Vérifiez le profil utilisateur de l’utilisateur auquel vous essayez d’envoyer un message de test. Sous l’onglet Engagement, il devrait y avoir une liste d’“apps poussables”. Vérifiez que l’application à laquelle vous essayez d’envoyer des messages de test figure dans cette liste. Les utilisateurs apparaîtront comme “Push Registered” s’ils ont un jeton push pour n’importe quelle application dans votre espace de travail, ce qui pourrait donc être un faux positif.
Ce qui suit indiquerait un problème avec l’inscription aux notifications push ou que le jeton de l’utilisateur a été renvoyé à Braze comme invalide par les APN après avoir été envoyé :
Les clics de notification push ne sont pas enregistrés
- Assurez-vous d’avoir suivi les étapes de l’intégration push.
- Braze ne gère pas les notifications push reçues silencieusement au premier plan (par ex., comportement push avant-plan par défaut avant le framework
UserNotifications
). Cela signifie que les liens ne seront pas ouverts et que les clics ne seront pas enregistrés. Si votre application n’a pas encore intégré l’infrastructureUserNotifications
, Braze ne traitera pas les notifications push lorsque l’état de l’application estUIApplicationStateActive
. Veillez à ce que votre application ne retarde pas les appels aux méthodes de gestion de push; sinon, le SDK Swift risque de considérer les notifications push comme des événements push silencieux de premier plan et de ne pas les traiter.
Les liens profonds ne fonctionnent pas
Les liens Web des clics sur les notifications push ne s’ouvrent pas
Les liens dans les notifications push doivent être conformes à la norme ATS pour être ouverts dans des vues web. Assurez-vous que vos liens Web utilisent HTTPS. Pour plus d’informations, veuillez vous référer à la conformité ATS.
Les liens profonds à partir des clics sur les notifications push ne s’ouvrent pas
La plupart du code qui gère les liens profonds gère également les ouvertures push. Tout d’abord, assurez-vous que les ouvertures de notification push sont enregistrées. Si ce n’est pas le cas, corrigez ce problème (car la correction corrige souvent la gestion des liens).
Si les ouvertures sont enregistrées, vérifiez s’il s’agit d’un problème avec le lien profond en général ou avec la gestion des clics sur les notifications push du lien profond. Pour ce faire, testez si un lien profond d’un message in-app fonctionne.
Troubleshooting
If you’re experiencing issues after setting up push notifications, consider the following:
- Web push notifications require that your site be HTTPS.
- Not all browsers can receive push messages. Ensure that
braze.isPushSupported()
returnstrue
in the browser. - If a user has denied a site push access, they won’t be prompted for permission again unless they remove the denied status from their browser preferences.
Comprendre le processus de poussée de Braze
Le service Firebase Cloud Messaging (FCM) est l’infrastructure Google pour les notifications push envoyées aux applications Android. Voici la structure simplifiée de la manière dont les notifications push sont activées pour les appareils de vos utilisateurs et la façon dont Braze peut leur envoyer des notifications push :
---
config:
theme: mc
---
sequenceDiagram
participant Device as User Device
participant App as Android App
participant BrazeSDK as Braze SDK
participant BrazeAPI as Braze Server
participant Firebase as Google Firebase
Note over Device, Firebase: Register Option 1<br/>Register Automatically using `com_braze_firebase_cloud_messaging_registration_enabled` in braze.xml
App ->> Braze: App intializes Braze with the first Braze call<br>This could be automatic session handling
BrazeSDK ->> App: Get push token from Firebase Manager
BrazeSDK ->> BrazeAPI: Send push token to Braze Server
Note right of BrazeAPI: Braze will remove push token from any<br>other user who may have previously<br> been logged in on the same device.
Note over Device, Firebase: Register Option 2<br/>Manual registration.
App ->> BrazeSDK: App sets `Braze.registeredPushToken`
BrazeSDK ->> BrazeAPI: Send push token to Braze Server
Note right of BrazeAPI: Braze will remove push token from any<br>other user who may have previously<br> been logged in on the same device.
Note over Device, Firebase: Push permission
BrazeAPI ->> BrazeSDK: In-App Message containing push prompt
BrazeSDK -> App: In-App Message is displayed
App -> BrazeSDK: User requests permissions
BrazeSDK -> App: Displays the Push Authorization prompt
BrazeSDK -> BrazeAPI: If authorized and `com_braze_optin_when_push_authorized`, Opt-In value is sent.
Note over Device, Firebase: Push Notification Is Sent
BrazeAPI ->> Firebase: Sends push message
Firebase ->> Device: Push message sent
Device ->> App: Android will send the push to the App.<br>This could be blocked to Do Not Disturb, Power Saving Mode, etc.
App ->> BrazeSDK: Message is sent to BrazeFirebaseMessagingService
BrazeSDK ->> Device: SDK will check if the push is from Braze.<br>If so, push data is transformed into a Push Notfication and displayed.
Étape 1 : Configurer votre clé API Google Cloud
Pour développer votre application, vous devrez fournir votre ID d’expéditeur Firebase au SDK Braze pour Android. De plus, vous devez fournir une clé API pour les applications serveur au tableau de bord de Braze. Braze utilisera cette clé API pour envoyer des messages à vos appareils. Vous devrez également vous assurer que le service FCM est activé dans la console de développement de Google.
Une erreur courante pendant cette étape est d’utiliser la clé API d’identification de l’application plutôt que la clé API REST.
Étape 2 : Les appareils s’inscrivent au FCM et fournissent à Braze des jetons de notification push
Dans les intégrations typiques, le SDK Braze pour Android traitera l’enregistrement des appareils pour la capacité FCM. Cela se produira généralement immédiatement après l’ouverture de l’application pour la première fois. Après l’inscription, Braze recevra un ID d’enregistrement FCM, utilisé pour envoyer des messages spécifiquement à cet appareil. Nous stockerons l’ID d’enregistrement pour cet utilisateur et il deviendra « push registered » (enregistré pour les notifications push) s’il n’avait pas au préalable de jeton de notification push pour l’une de vos applications.
Étape 3 : Lancer une campagne de notifications push Braze
Lorsqu’une campagne de notifications push est lancée, Braze fera des requêtes à FCM pour transmettre votre message. Braze utilisera la clé API copiée dans le tableau de bord pour authentifier et vérifier que nous pouvons envoyer des notifications push aux jetons de notification push fournis.
Étape 4 : Supprimer les jetons non valides
Si FCM nous informe que certains des jetons de notification push auxquels nous tentions d’envoyer un message ne sont pas valides, nous supprimons ces jetons des profils utilisateur auxquels ils sont associés. Si des utilisateurs n’ont pas d’autres jetons de notification push, ils ne s’afficheront plus en tant que « Push Registered » (Enregistré pour les notifications push) dans la page Segments.
Pour plus d’informations sur FCM, consultez Messagerie cloud.
Utiliser les journaux d’erreur de notification push
Braze fournit des erreurs de notification push dans le journal des activités de message. Ce journal d’erreurs fournit de nombreux avertissements qui peuvent être très utiles pour identifier les raisons pour lesquelles vos campagnes ne fonctionnent pas comme prévu. Cliquer sur un message d’erreur vous redirigera vers la documentation pertinente pour vous aider à résoudre un incident particulier.
Scénarios de résolution des problèmes
Les notifications push ne sont pas envoyées
Il se peut que vos messages push ne soient pas envoyés en raison des situations suivantes :
- Vos identifiants existent dans le mauvais ID de projet de Google Cloud Platform (ID d’expéditeur incorrect).
- Vos informations d’identification n’ont pas la bonne portée de permission.
- Vous avez téléchargé des informations d’identification erronées dans le mauvais espace de travail de Braze (mauvais ID de l’expéditeur).
Pour d’autres problèmes susceptibles de vous empêcher d’envoyer un message push, reportez-vous à User Guide : Résolution des problèmes des notifications push.
Aucun utilisateur « Push Registered » (Enregistré pour les notifications push) ne s’affiche dans le tableau de bord de Braze (avant l’envoi de messages)
Confirmez que votre app est correctement configurée pour autoriser les notifications push. Les points de défaillance fréquents à vérifier comprennent :
ID d’expéditeur incorrect
Vérifiez que l’ID correct d’expéditeur FCM figure dans le fichier braze.xml
. Un ID d’expéditeur incorrect va entraîner le signalement d’erreurs MismatchSenderID
dans le journal des activités de message du tableau de bord.
L’enregistrement Braze ne se fait pas
Puisque l’enregistrement FCM est géré en dehors de Braze, une erreur d’enregistrement ne peut se produire que dans deux endroits :
- Lors de l’enregistrement avec FCM
- Lors de la transmission du jeton de notification push généré par FCM à Braze
Nous recommandons de définir un point de rupture ou une journalisation pour garantir que le jeton de notification push généré par FCM est envoyé à Braze. Si un jeton n’est pas généré correctement ou pas du tout, nous recommandons de consulter la documentation FCM.
Les services Google Play ne sont pas présents
Pour que la notification push FCM fonctionne, les services Google Play doivent être présents sur l’appareil. Si les services Google Play ne sont pas présents sur un appareil, l’enregistrement de la notification push ne sera pas effectué.
Remarque : Les services Google Play ne sont pas installés sur les émulateurs Android qui n’ont pas les API Google installées.
L’appareil n’est pas connecté à Internet
Vérifiez que votre appareil dispose d’une bonne connectivité internet et qu’il n’envoie pas le trafic réseau par l’intermédiaire d’un proxy.
Appuyer sur une notification push n’ouvre pas l’application
Vérifiez si com_braze_handle_push_deep_links_automatically
est défini sur true
ou false
. Pour permettre à Braze d’ouvrir automatiquement l’application et les liens profonds lorsqu’une notification push est touchée, définissez com_braze_handle_push_deep_links_automatically
sur true
dans votre fichier braze.xml
.
Si com_braze_handle_push_deep_links_automatically
est défini sur sa valeur par défaut de false
, vous devez créer une Fonction de rappel de notification push Braze pour écouter et gérer les notifications push reçues et les intentions ouvertes.
Rebonds de notifications push
Si une notification push n’est pas transmise, consultez la console de développement pour vous assurer qu’elle n’a pas été rejetée. Vous trouverez ci-dessous une description des erreurs fréquentes susceptibles d’être consignées dans la console de développement :
Erreur : MismatchSenderID
MismatchSenderID
indique une défaillance de l’authentification. Vérifiez que votre ID d’expéditeur Firebase et la clé API FCM sont corrects.
Erreur : InvalidRegistration
InvalidRegistration
peut être causé par un jeton de notification push déficient.
- Veillez à transmettre un jeton de poussée valide à Braze depuis Firebase Cloud Messaging.
Erreur : NotRegistered
-
NotRegistered
se produit généralement lorsqu’une application a été supprimée d’un appareil. Braze utiliseNotRegistered
en interne pour signaler qu’une application a été désinstallée d’un appareil. -
NotRegistered
peut également se produire lorsque plusieurs enregistrements se produisent et qu’un deuxième enregistrement invalide le premier jeton.
Les notifications push sont envoyées mais ne sont pas affichées sur les appareils des utilisateurs
Il y a plusieurs raisons pour lesquelles cela pourrait se produire :
L’application a été forcée à s’arrêter
Si vous forcez votre application à quitter via les paramètres système, vos notifications push ne seront pas envoyées. Lancer à nouveau l’application permettra de permettre à nouveau à votre appareil de recevoir des notifications push.
BrazeFirebaseMessagingService n’est pas enregistré
BrazeFirebaseMessagingService doit être correctement enregistré dans AndroidManifest.xml
pour que les notifications push s’affichent :
1
2
3
4
5
6
<service android:name="com.braze.push.BrazeFirebaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
Le pare-feu bloque la notification push
Si vous testez la notification push par Wi-Fi, votre pare-feu peut bloquer les ports nécessaires pour que FCM reçoive les messages. Vérifiez que les ports 5228
, 5229
et 5230
sont ouverts. En outre, puisque FCM ne spécifie pas ses IP, vous devez également autoriser votre pare-feu à accepter les connexions sortantes vers toutes les adresses IP contenues dans les blocs IP répertoriés dans l’ASN de Google de 15169
.
La fabrique de notification personnalisée renvoie null
Si vous avez mis en place une fabrique de notifications personnalisée, assurez-vous qu’elle ne renvoie pas null
. Ceci empêcherait l’affichage des notifications.
Les utilisateurs « Push Registered » (Enregistré pour les notifications push) ne sont plus activés après l’envoi de messages
Il y a plusieurs raisons pour lesquelles cela pourrait se produire :
L’application a été désinstallée
Les utilisateurs ont désinstallé l’application. Cela invalidera leur jeton de notification push FCM.
Clé du serveur Firebase Cloud Messaging non valide
La clé du serveur Firebase Cloud Messaging fournie dans le tableau de bord de Braze n’est pas valide. L’ID d’expéditeur fourni doit correspondre à celui référencé dans le fichier braze.xml
de votre application. La clé du serveur et l’ID d’expéditeur sont disponibles ici dans votre console Firebase :
.
Les clics de notification push ne sont pas enregistrés
Braze enregistre les clics de notification push automatiquement, ce scénario doit donc être relativement rare.
Si les clics push ne sont pas enregistrés, il est possible que les données des clics push n’aient pas encore été transférées vers nos serveurs. Braze restreint la fréquence de ses transmissions en fonction de la solidité de la connexion réseau. Avec une bonne connexion réseau, les données de clics de notification push doivent arriver au serveur dans la minute, dans la plupart des cas.
Les liens profonds ne fonctionnent pas
Vérifiez la configuration du lien profond
Les liens profonds peuvent être testés avec ADB. Nous vous recommandons de tester votre lien profond avec la commande suivante :
adb shell am start -W -a android.intent.action.VIEW -d "THE_DEEP_LINK" THE_PACKAGE_NAME
Si le lien profond n’arrive pas à fonctionner, il peut être mal configuré. Un lien profond mal configuré ne fonctionnera pas lorsque vous l’enverrez par le biais de la notification push de Braze.
Vérifiez la logique de gestion personnalisée
Si le lien profond fonctionne correctement avec ADB mais ne fonctionne pas à partir de Braze push, vérifiez si une création de liens profonds personnalisée a été mise en œuvre. Si oui, vérifiez que le code de gestion personnalisé gère correctement le lien profond entrant.
Désactiver le comportement de la pile arrière
Si le lien profond fonctionne correctement avec ADB mais ne fonctionne pas à partir de Braze push, essayez de désactiver la pile arrière. Pour ce faire, mettez à jour votre fichier braze.xml pour y inclure :
1
<bool name="com_braze_push_deep_link_back_stack_activity_enabled">false</bool>
Résolution des problèmes
La notification push n’apparaît pas après la fermeture de l’application à l’aide du commutateur de tâche
Si vous constatez que les notifications push n’apparaissent plus après la fermeture de l’application à l’aide du commutateur de tâche, votre application est probablement en mode Débogage. Xamarin ajoute des échafaudages en mode Débogage qui empêchent les applications de recevoir une notification push après que leur processus est tué. Si vous exécutez votre application en mode Libérer, vous devriez voir vos notifications push, même après la fermeture de l’application à l’aide du commutateur de tâche.
Le générateur de notifications personnalisées n’est pas correctement configuré
Les générateurs de notifications personnalisées (et tous les délégués) doivent étendre Java.Lang.Object
afin de fonctionner correctement au-delà du fossé entre C# et Java. Consultez Xamarin pour plus d’informations concernant l’implémentation d’interfaces Java.