Passer au contenu

Résolution des problèmes des notifications push

Utilisez cette page pour diagnostiquer les problèmes de distribution et d’affichage des notifications push sur un appareil. Pour les vérifications de distribution côté tableau de bord (statut d’abonnement, segments, plafonds), consultez Résolution des problèmes des notifications push.

Avant de déboguer, ajoutez-vous en tant qu’utilisateur test et consultez Envoi de messages de test.

Commencez ici : identifiez votre symptôme

Trouvez le comportement que vous observez dans le tableau, puis suivez les étapes de la section correspondante. Si vous ne savez pas quelle section s’applique, utilisez le parcours d’investigation standard.

Symptôme Aller à
Notification push non reçue sur une plateforme Sélectionnez l’onglet de votre SDK dans Résolution des problèmes spécifiques à la plateforme
Les sauts de ligne autour des balises Liquid semblent incorrects lors de l’enregistrement Sauts de ligne dans les notifications push
Vérifications de distribution dans le tableau de bord (abonnement, segment, plafonds) Résolution des problèmes des notifications push
Le deep link depuis une notification push ne s’ouvre pas correctement Résolution des problèmes de deep linking
Codes d’erreur courants des notifications push Messages d’erreur courants des notifications push

Parcours d’investigation standard

Utilisez ce flux de travail pour chaque incident de notification push. Commencez à l’étape 1.

  1. Confirmez que l’appareil dispose d’un jeton push valide et que l’autorisation push est accordée dans les paramètres de l’appareil.
  2. Dans le tableau de bord, confirmez que l’utilisateur test correspond au Segment de la Campaign ou du Canvas et qu’il ne fait pas partie du groupe de contrôle.
  3. Envoyez une notification push de test à l’appareil de test.
  4. Activez la journalisation détaillée, reproduisez le problème et consultez les conseils spécifiques à la plateforme dans votre onglet SDK.
  5. Si le problème persiste, contactez l’assistance Braze en fournissant les journaux détaillés, la plateforme, la version du SDK et l’ID de la Campaign ou du Canvas.

Résolution des problèmes spécifiques à la plateforme

Sélectionnez l’onglet de votre SDK pour les vérifications de configuration et d’affichage spécifiques à la plateforme.

Résolution des problèmes

Si vous rencontrez des problèmes après avoir configuré les notifications push, tenez compte des éléments suivants :

  • Les notifications push Web nécessitent que votre site soit en HTTPS.
  • Tous les navigateurs ne peuvent pas recevoir de messages push. Assurez-vous que braze.isPushSupported() retourne true dans le navigateur.
  • Certains navigateurs, comme Firefox, n’affichent pas d’images dans les notifications push. Pour plus de détails sur la prise en charge des navigateurs, consultez la documentation MDN pour les images de notification.
  • Si un utilisateur a refusé l’accès push d’un site, il ne sera plus invité à accorder la permission à moins qu’il ne supprime le statut de refus dans les préférences de son navigateur.

Comprendre le flux de travail des notifications push de Braze

Le service Firebase Cloud Messaging (FCM) est l’infrastructure de Google pour les notifications push envoyées aux applications Android. Voici la structure simplifiée de la façon dont les notifications push sont activées pour les appareils de vos utilisateurs et comment 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 initializes 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 Notification and displayed.

Étape 1 : Configurer votre clé API Google Cloud

Lors du développement de votre application, vous devrez fournir au SDK Android de Braze votre identifiant d’expéditeur Firebase. De plus, vous devrez 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 vérifier que le service FCM est activé dans la console Google Developer.

Étape 2 : Les appareils s’enregistrent auprès de FCM et fournissent à Braze des jetons push

Dans les intégrations classiques, le SDK Android de Braze gère l’enregistrement des appareils pour la fonctionnalité FCM. Cela se produit généralement immédiatement lors de la première ouverture de l’application. Après l’enregistrement, Braze recevra un identifiant d’enregistrement FCM, qui est utilisé pour envoyer des messages spécifiquement à cet appareil. Nous stockerons l’identifiant d’enregistrement pour cet utilisateur, et cet utilisateur deviendra « inscrit aux notifications push » s’il ne disposait pas auparavant d’un jeton push pour l’une de vos applications.

Étape 3 : Lancer une Campaign push Braze

Lorsqu’une Campaign push est lancée, Braze envoie des requêtes à FCM pour distribuer votre message. Braze utilise la clé API copiée dans le tableau de bord pour s’authentifier et vérifier que nous pouvons envoyer des notifications push aux jetons push fournis.

Étape 4 : Supprimer les jetons invalides

Si FCM nous informe que l’un des jetons push auxquels nous tentions d’envoyer un message est invalide, nous supprimons ces jetons des profils utilisateur auxquels ils étaient associés. Si les utilisateurs n’ont pas d’autres jetons push, ils n’apparaîtront plus comme « inscrits aux notifications push » sur la page Segments.

Pour plus de détails sur FCM, consultez Cloud messaging.

Utiliser les journaux d’erreurs push

Braze fournit les erreurs de notification push dans le journal d’activité des messages. Ce journal d’erreurs offre une variété d’avertissements qui peuvent être très utiles pour identifier pourquoi vos Campaigns ne fonctionnent pas comme prévu. Sélectionner un message d’erreur vous redirige vers la documentation pertinente pour vous aider à résoudre un incident particulier.

Journal d'activité des messages de Braze affichant des entrées d'erreurs de notification push.

Résolution des problèmes

Les notifications push ne s’envoient pas

Vos notifications push peuvent ne pas s’envoyer en raison des situations suivantes :

  • Vos identifiants se trouvent dans le mauvais ID de projet Google Cloud Platform (mauvais ID d’expéditeur).
  • Vos identifiants ont une portée d’autorisation incorrecte.
  • Vous avez téléchargé les mauvais identifiants dans le mauvais espace de travail Braze (mauvais ID d’expéditeur).

Pour d’autres problèmes susceptibles de vous empêcher d’envoyer une notification push, consultez Guide utilisateur : résolution des problèmes des notifications push.

Aucun utilisateur « enregistré pour les notifications push » n’apparaît dans le tableau de bord de Braze (avant l’envoi de messages)

Confirmez que votre application est correctement configurée pour autoriser les notifications push. Les points de défaillance courants à vérifier incluent :

ID d’expéditeur incorrect

Vérifiez que l’ID d’expéditeur FCM correct est inclus dans le fichier braze.xml. Un ID d’expéditeur incorrect entraînera des erreurs MismatchSenderID signalées dans le journal d’activité des messages du tableau de bord.

L’enregistrement Braze ne se produit pas

Étant donné que l’enregistrement FCM est géré en dehors de Braze, l’échec de l’enregistrement ne peut se produire qu’à deux endroits :

  1. Lors de l’enregistrement auprès de FCM
  2. Lors de la transmission du jeton push généré par FCM à Braze

Nous vous recommandons de définir un point d’arrêt ou d’ajouter une journalisation pour confirmer que le jeton push généré par FCM est bien envoyé à Braze. Si un jeton n’est pas généré correctement ou pas du tout, nous vous recommandons de consulter la documentation FCM.

Google Play Services non présent

Pour que les notifications push FCM fonctionnent, Google Play Services doit être présent sur l’appareil. Si Google Play Services n’est pas installé sur un appareil, l’enregistrement push ne se produira pas.

Appareil non connecté à Internet

Vérifiez que votre appareil dispose d’une bonne connectivité Internet et n’envoie pas le trafic réseau via un proxy.

Appuyer sur la 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 tous les deep links lorsqu’une notification push est appuyé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 false, vous devez utiliser un rappel push Braze pour écouter et gérer les intentions de réception et d’ouverture de la notification push.

Les notifications push sont rejetées

Si une notification push n’est pas distribuée, assurez-vous qu’elle n’a pas été rejetée en consultant la console de développement. Voici les descriptions des erreurs courantes qui peuvent être enregistrées dans la console de développement :

Erreur : MismatchSenderID

MismatchSenderID indique un échec d’authentification. Confirmez que votre ID d’expéditeur Firebase et votre clé API FCM sont corrects.

Erreur : InvalidRegistration

InvalidRegistration peut être causée par un jeton push mal formé.

  1. Assurez-vous de transmettre un jeton push valide à Braze depuis Firebase Cloud Messaging.

Erreur : NotRegistered

  1. NotRegistered peut également se produire lorsque plusieurs enregistrements ont lieu et qu’un second enregistrement invalide le premier jeton.

Les notifications push sont envoyées mais ne s’affichent pas sur les appareils des utilisateurs

Il y a plusieurs raisons pour lesquelles cela pourrait se produire :

L’application a été fermée de force

Si vous fermez de force votre application via les paramètres système, vos notifications push ne seront pas envoyées. Relancer l’application réactivera la réception des notifications push sur votre appareil.

BrazeFirebaseMessagingService non enregistré

Le BrazeFirebaseMessagingService doit être correctement enregistré dans AndroidManifest.xml pour que les notifications push apparaissent :

<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 les notifications push

Si vous testez les notifications push via Wi-Fi, votre pare-feu peut bloquer les ports nécessaires à FCM pour recevoir les messages. Confirmez que les ports 5228, 5229 et 5230 sont ouverts. De plus, comme FCM ne spécifie pas ses adresses 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 15169.

La fabrique de notifications personnalisée renvoie null

Si vous avez implémenté une fabrique de notifications personnalisée, assurez-vous qu’elle ne renvoie pas null. Cela empêcherait l’affichage des notifications.

Les utilisateurs « enregistrés 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 push FCM.

Clé de serveur Firebase Cloud Messaging invalide

La clé de serveur Firebase Cloud Messaging fournie dans le tableau de bord de Braze est invalide. L’ID d’expéditeur fourni doit correspondre à celui référencé dans le fichier braze.xml de votre application. La clé de serveur et l’ID d’expéditeur se trouvent ici dans votre console Firebase :

La plateforme Firebase sous « Settings » puis « Cloud Messaging » affiche votre ID de serveur et votre clé de serveur.

Les clics sur les notifications push ne sont pas enregistrés

Si les clics sur les notifications push ne sont pas enregistrés, il est possible que les données de clics push n’aient pas encore été transmises à nos serveurs. Le SDK Braze pour Android peut limiter la fréquence des transmissions.

Si vous avez implémenté un gestionnaire de notifications push personnalisé, assurez-vous que vous préservez correctement les analyses natives des notifications push.

L’enregistrement des clics push est une opération réseau soumise aux limitations du réseau. Ainsi, bien que le SDK Braze pour Android tente de prendre en compte les défaillances réseau et réessaie les requêtes échouées, une certaine perte d’événements est à prévoir.

Les deep links peuvent être testés avec ADB. Nous vous recommandons de tester votre deep link avec la commande suivante :

adb shell am start -W -a android.intent.action.VIEW -d "THE_DEEP_LINK" THE_PACKAGE_NAME

Si le deep link ne fonctionne pas, il est peut-être mal configuré. Un deep link mal configuré ne fonctionnera pas lorsqu’il est envoyé via une notification push Braze.

Vérifier la logique de gestion personnalisée

Si le deep link fonctionne correctement avec ADB mais ne fonctionne pas depuis une notification push Braze, vérifiez si une gestion personnalisée de l’ouverture des notifications push a été implémentée. Si c’est le cas, vérifiez que le code de gestion personnalisée traite correctement le deep link entrant.

Désactiver le comportement de la pile de retour

Si le deep link fonctionne correctement avec ADB mais ne fonctionne pas depuis une notification push Braze, essayez de désactiver la pile de retour. Pour ce faire, mettez à jour votre fichier braze.xml pour inclure :

<bool name="com_braze_push_deep_link_back_stack_activity_enabled">false</bool>

Comprendre le flux de travail Braze/APNs

Le service Apple Push Notification (APNs) est l’infrastructure permettant d’envoyer des notifications push aux applications fonctionnant sur les plateformes Apple. Voici la structure simplifiée de la façon dont les notifications push sont activées pour les appareils de vos utilisateurs et comment Braze peut leur envoyer des notifications push :

  1. Vous configurez le certificat de notification push et le profil de provisionnement
  2. Les appareils s’enregistrent auprès d’APNs et fournissent à Braze des jetons de notification push
  3. Vous lancez une Campaign de notification push Braze
  4. Braze supprime les jetons non valides

Étape 1 : Configuration du certificat push et du profil de provisionnement

Pour développer votre application, créez un certificat SSL pour activer les notifications push. Ce certificat est inclus dans le profil de provisionnement avec lequel votre application est compilée et doit également être téléversé dans le tableau de bord de Braze. Le certificat permet à Braze d’indiquer aux APNs qu’il est autorisé à envoyer des notifications push en votre nom.

Il existe deux types de profils de provisionnement et de certificats : développement et distribution. Nous recommandons d’utiliser uniquement les profils et certificats de distribution pour éviter toute confusion. Si vous choisissez d’utiliser des profils et certificats différents pour le développement et la distribution, assurez-vous que le certificat téléversé dans le tableau de bord correspond au profil de provisionnement que vous utilisez actuellement.

Étape 2 : Les appareils s’enregistrent auprès des APNs et fournissent à Braze les jetons push

Lorsque les utilisateurs ouvrent votre application, ils sont invités à accepter les notifications push. S’ils acceptent cette invite, les APNs génèrent un jeton push pour cet appareil en particulier. Le SDK Swift envoie immédiatement et de manière asynchrone le jeton push pour les applications utilisant la politique de vidage automatique par défaut. Une fois qu’un jeton push est associé à un utilisateur, celui-ci apparaît comme « Push Registered » dans le tableau de bord sur son profil utilisateur sous l’onglet Engagement et est éligible pour recevoir des notifications push des Campaigns Braze.

Considérations relatives à la génération des jetons push

  • Si les utilisateurs installent votre application sur un autre appareil, Braze crée et capture un autre jeton de la même manière.
  • Si les utilisateurs réinstallent votre application, le SDK génère un nouveau jeton et le transmet à Braze. Cependant, les APNs et Braze peuvent toujours considérer le jeton original comme valide.
  • Si les utilisateurs désinstallent votre application, Braze ne reçoit pas immédiatement de notification, et le jeton apparaît toujours comme valide jusqu’à ce que les APNs le retirent.
  • À un moment donné, les APNs retirent les anciens jetons. Braze ne contrôle pas et n’a pas de visibilité sur ce processus.

Étape 3 : Lancement d’une Campaign push Braze

Lorsqu’une Campaign push est lancée, Braze envoie des requêtes aux APNs pour distribuer votre message. Plus précisément, les requêtes sont transmises aux APNs pour chaque jeton push valide actuel, à moins que l’option Envoyer à l’appareil le plus récent de l’utilisateur ne soit sélectionnée. Après que Braze a reçu une réponse positive des APNs, Braze enregistre une distribution réussie sur le profil utilisateur, bien que l’utilisateur puisse ne pas avoir reçu le message réel pour des raisons telles que :

  • Son appareil est éteint.
  • Son appareil n’est pas connecté à Internet (Wi-Fi ou cellulaire).
  • Il a récemment désinstallé l’application.

Braze utilise le certificat push SSL téléversé dans le tableau de bord pour s’authentifier et vérifier qu’il est autorisé à envoyer des notifications push aux jetons push fournis. Si un appareil est en ligne, la notification devrait être reçue peu après l’envoi de la Campaign. Notez que Braze fixe la date d’expiration APNs par défaut pour les notifications à 30 jours.

Étape 4 : Suppression des jetons invalides

Si les APNs nous informent que certains des jetons push auxquels nous tentions d’envoyer un message sont invalides, nous supprimons ces jetons des profils utilisateur auxquels ils étaient associés.

Utilisation des journaux d’erreur push

Le journal d’activité des messages vous permet de consulter tous les messages (en particulier les messages d’erreur) associés à vos Campaigns et envois, y compris les erreurs de notification push. Ce journal d’erreurs fournit une variété d’avertissements qui peuvent être très utiles pour identifier pourquoi vos Campaigns ne fonctionnent pas comme prévu. Sélectionner un message d’erreur vous redirige vers la documentation correspondante pour vous aider à résoudre un incident particulier.

Journaux d'erreur push affichant l'heure à laquelle l'erreur s'est produite, le nom de l'application, le canal, le type d'erreur et le message d'erreur.

Les erreurs courantes que vous pourriez voir ici incluent des notifications spécifiques à l’utilisateur, telles que « Received Unregistered Sending to Push Token ».

De plus, Braze fournit également un journal des modifications push sur le profil utilisateur sous l’onglet Engagement. Ce journal donne un aperçu du comportement d’enregistrement push, comme l’invalidation des jetons, les erreurs d’enregistrement push, les jetons transférés vers de nouveaux utilisateurs, etc.

Onglet Engagement du profil utilisateur Braze affichant le journal des modifications d'enregistrement push.

Erreurs du journal d’activité des messages

Received unregistered sending to push token

  • Assurez-vous que le jeton push envoyé à Braze depuis la méthode AppDelegate.braze?.notifications.register(deviceToken:) est valide. Vous pouvez consulter le journal d’activité des messages pour voir le jeton push. Il devrait ressembler à 6e407a9be8d07f0cdeb9e724733a89445f57a89ec890d63867c482a483506fa6, une longue chaîne contenant un mélange de lettres et de chiffres. Si votre jeton push semble différent, vérifiez votre code d’envoi des jetons push à Braze.
  • Assurez-vous que votre profil de provisionnement push correspond à l’environnement dans lequel vous testez. Les certificats universels peuvent être configurés dans le tableau de bord de Braze pour envoyer vers l’environnement APNs de développement ou de production. Utiliser un certificat de développement pour une application de production ou un certificat de production pour une application de développement ne fonctionnera pas.
  • Vérifiez que le jeton push que vous avez téléversé sur Braze correspond au profil de provisionnement utilisé pour compiler l’application à partir de laquelle vous avez envoyé le jeton push.

Device token not for topic

Les APNs retournent DeviceTokenNotForTopic (statut HTTP 400) lorsque le jeton push ne correspond pas au topic (identifiant de bundle) configuré pour vos identifiants. Braze peut afficher cela dans le journal d’activité des messages ou les journaux de distribution push sous la forme DeviceTokenNotForTopic.

Pour résoudre l’incohérence :

  1. Confirmez que l’identifiant de bundle de l’application correspond à l’App Bundle ID dans Braze (Paramètres > Paramètres de l’application > Paramètres des notifications push).
  2. Vérifiez que le profil de provisionnement utilisé pour compiler l’application inclut la capacité push pour cet identifiant de bundle.
  3. Confirmez que les identifiants push téléversés sur Braze correspondent à l’environnement de l’application (développement ou production).
  4. Pour les clés .p8, vérifiez que le Team ID et le Key ID dans Braze correspondent à votre compte Apple Developer.
  5. Re-téléversez une clé .p8 ou un certificat .p12 valide si les identifiants ont été renouvelés ou révoqués.

Préférez les clés d’authentification .p8 lorsque c’est possible. Pour les types d’identifiants et les indicateurs d’état du tableau de bord, consultez Migrer vers une clé d’authentification .p8.

BadDeviceToken sending to push token

Le BadDeviceToken est un code d’erreur APNs et ne provient pas de Braze. Il peut y avoir plusieurs raisons pour cette réponse, notamment :

  • L’application a reçu un jeton push qui n’était pas valide pour les identifiants téléchargés sur le tableau de bord.
  • Les notifications push ont été désactivées pour cet espace de travail.
  • L’utilisateur a refusé les notifications push.
  • L’application a été désinstallée.
  • Apple a actualisé le jeton push, ce qui a invalidé l’ancien jeton.
  • L’application a été compilée pour un environnement de production, mais les identifiants push téléchargés sur Braze sont configurés pour un environnement de développement (ou inversement).

Problèmes d’enregistrement push

Aucune invite d’enregistrement push

Si l’application ne vous invite pas à vous enregistrer pour les notifications push, il y a probablement un problème avec votre intégration d’enregistrement push. Assurez-vous d’avoir suivi notre documentation et d’avoir correctement intégré notre enregistrement push. Vous pouvez également placer des points d’arrêt dans votre code pour vous assurer que le code d’enregistrement push est bien exécuté.

Aucun utilisateur « push registered » n’apparaît dans le tableau de bord (avant l’envoi de messages)

Assurez-vous que votre application est correctement configurée pour autoriser les notifications push. Les points de défaillance courants à vérifier incluent :

  • Vérifiez que votre application vous invite à autoriser les notifications push. En général, cette invite apparaît lors de la 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 devrait, le problème vient probablement de la configuration de base des capacités push de votre application.
    • Vérifiez que les étapes d’intégration push ont été effectuées avec succès.
    • Vérifiez que le profil de provisionnement avec lequel votre application a été compilée inclut les permissions pour le push. Assurez-vous de récupérer tous les profils de provisionnement disponibles depuis votre compte Apple Developer. Pour confirmer cela, effectuez les étapes suivantes :
      1. Dans Xcode, accédez à Preferences > Accounts (ou utilisez le raccourci clavier Command+,).
      2. Sélectionnez l’identifiant Apple que vous utilisez pour votre compte développeur et cliquez sur View Details.
      3. Sur la page suivante, cliquez sur Refresh et confirmez que vous récupérez bien tous les profils de provisionnement disponibles.
  • Vérifiez que vous avez correctement activé la capacité push dans votre application.
  • Vérifiez que votre profil de provisionnement push correspond à l’environnement dans lequel vous testez. Les certificats universels peuvent être configurés dans le tableau de bord de Braze pour envoyer vers l’environnement APNs de développement ou de production. Utiliser un certificat de développement pour une application de production ou un certificat de production pour une application de développement ne fonctionnera pas.
  • Vérifiez que vous appelez bien notre méthode registerPushToken en plaçant un point d’arrêt dans votre code.
  • Assurez-vous de tester avec un appareil physique (le push ne fonctionne pas sur un simulateur) et d’avoir une bonne connectivité réseau.

Notifications push envoyées mais non affichées sur les appareils des utilisateurs

Les utilisateurs « push registered » ne sont plus activés après l’envoi de messages

Cela indique probablement que l’utilisateur avait un jeton push invalide. Cela peut se produire pour plusieurs raisons :

Incohérence entre le certificat du tableau de bord et celui de l’application

Si le certificat push que vous avez téléversé dans le tableau de bord n’est pas le même que celui du profil de provisionnement avec lequel votre application a été compilée, les APNs rejetteront le jeton. Vérifiez que vous avez téléversé le bon certificat et effectuez une autre session dans l’application avant de tenter une nouvelle notification de test.

L’application a été désinstallée

Si un utilisateur a désinstallé votre application, son jeton push sera invalide et supprimé lors du prochain envoi.

Régénération de votre profil de provisionnement

En dernier recours, repartir de zéro et créer un tout nouveau profil de provisionnement peut résoudre les erreurs de configuration qui surviennent lorsqu’on travaille avec plusieurs environnements, profils et applications en même temps. Il y a beaucoup de « pièces mobiles » dans la configuration des notifications push, donc parfois, il est préférable de tout recommencer. Cela vous aidera également à isoler le problème si vous devez poursuivre la résolution des problèmes.

Messages non distribués aux utilisateurs « push registered »

L’application est au premier plan

Sur les versions d’iOS qui n’intègrent pas le push via le framework UserNotifications, si l’application est au premier plan lorsque le message push est reçu, il ne sera pas affiché. Vous devez mettre l’application en arrière-plan sur vos appareils de test avant d’envoyer des messages de test.

Notification de test mal planifiée

Vérifiez la planification que vous avez définie pour votre message de test. S’il est configuré pour une distribution en fuseau horaire local ou avec le timing intelligent, il est possible que vous n’ayez tout simplement pas encore reçu le message (ou que l’application ait été au premier plan lors de sa réception).

L’utilisateur n’est pas « push registered » pour l’application testée

Vérifiez le profil utilisateur de la personne à laquelle vous essayez d’envoyer un message de test. Sous l’onglet Engagement, il devrait y avoir une liste d’« applications joignables par push ». 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 de votre espace de travail, ce qui pourrait constituer un faux positif.

Ce qui suit indiquerait un problème d’enregistrement push ou que le jeton de l’utilisateur a été renvoyé à Braze comme invalide par les APNs après un envoi push :

Un profil utilisateur affichant les paramètres de contact d'un utilisateur. Sous Push, « No Apps » est affiché.

Les clics push ne sont pas enregistrés

  • Assurez-vous d’avoir suivi les étapes d’intégration push.
  • Braze ne gère pas les notifications push reçues silencieusement au premier plan (comportement push au premier plan par défaut avant le framework UserNotifications). Cela signifie que les liens ne seront pas ouverts et que les clics push ne seront pas enregistrés. Si votre application n’a pas encore intégré le framework UserNotifications, Braze ne gérera pas les notifications push lorsque l’état de l’application est UIApplicationStateActive. Assurez-vous que votre application ne retarde pas les appels aux méthodes de gestion push ; sinon, le SDK Swift pourrait traiter les notifications push comme des événements push silencieux au premier plan et ne pas les gérer.

Pour une résolution complète des problèmes sur tous les canaux — y compris les liens universels, les schémas personnalisés, l’e-mail et les fournisseurs tiers comme Branch — consultez Résolution des problèmes de deep linking.

Les liens dans les notifications push doivent être conformes à ATS pour être ouverts dans les vues Web. Assurez-vous que vos liens Web utilisent HTTPS. Pour plus d’informations, consultez Conformité ATS.

La plupart du code qui gère les deep links gère également les ouvertures push. Tout d’abord, assurez-vous que les ouvertures push sont bien enregistrées. Si ce n’est pas le cas, corrigez ce problème (car la correction résout souvent aussi la gestion des liens).

Si les ouvertures sont enregistrées, vérifiez s’il s’agit d’un problème avec le deep link en général ou avec la gestion du deep link lors du clic push. Pour ce faire, testez si un deep link depuis le clic d’un message in-app fonctionne.

Les taps sur les images Push Story ne font rien

Si le fait de taper sur une image Push Story ne produit aucun effet, ouvrez le fichier Info.plist de la Notification Content Extension et confirmez que UNNotificationExtensionUserInteractionEnabled est défini sur YES. Le module BrazePushStory du SDK Swift a besoin de cette clé pour que l’extension puisse recevoir les taps. Consultez Push Stories.

Comprendre le flux de travail des notifications push de Braze

Le service Firebase Cloud Messaging (FCM) est l’infrastructure de Google pour les notifications push envoyées aux applications Android. Voici la structure simplifiée de la façon dont les notifications push sont activées pour les appareils de vos utilisateurs et comment 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 initializes 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 Notification and displayed.

Étape 1 : Configurer votre clé API Google Cloud

Lors du développement de votre application, vous devrez fournir au SDK Android de Braze votre identifiant d’expéditeur Firebase. De plus, vous devrez 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 vérifier que le service FCM est activé dans la console Google Developer.

Étape 2 : Les appareils s’enregistrent auprès de FCM et fournissent à Braze des jetons push

Dans les intégrations classiques, le SDK Android de Braze gère l’enregistrement des appareils pour la fonctionnalité FCM. Cela se produit généralement immédiatement lors de la première ouverture de l’application. Après l’enregistrement, Braze recevra un identifiant d’enregistrement FCM, qui est utilisé pour envoyer des messages spécifiquement à cet appareil. Nous stockerons l’identifiant d’enregistrement pour cet utilisateur, et cet utilisateur deviendra « inscrit aux notifications push » s’il ne disposait pas auparavant d’un jeton push pour l’une de vos applications.

Étape 3 : Lancer une Campaign push Braze

Lorsqu’une Campaign push est lancée, Braze envoie des requêtes à FCM pour distribuer votre message. Braze utilise la clé API copiée dans le tableau de bord pour s’authentifier et vérifier que nous pouvons envoyer des notifications push aux jetons push fournis.

Étape 4 : Supprimer les jetons invalides

Si FCM nous informe que l’un des jetons push auxquels nous tentions d’envoyer un message est invalide, nous supprimons ces jetons des profils utilisateur auxquels ils étaient associés. Si les utilisateurs n’ont pas d’autres jetons push, ils n’apparaîtront plus comme « inscrits aux notifications push » sur la page Segments.

Pour plus de détails sur FCM, consultez Cloud messaging.

Utiliser les journaux d’erreurs push

Braze fournit les erreurs de notification push dans le journal d’activité des messages. Ce journal d’erreurs offre une variété d’avertissements qui peuvent être très utiles pour identifier pourquoi vos Campaigns ne fonctionnent pas comme prévu. Sélectionner un message d’erreur vous redirige vers la documentation pertinente pour vous aider à résoudre un incident particulier.

Journal d'activité des messages de Braze affichant des entrées d'erreurs de notification push.

Résolution des problèmes

Les notifications push ne s’envoient pas

Vos notifications push peuvent ne pas s’envoyer en raison des situations suivantes :

  • Vos identifiants se trouvent dans le mauvais ID de projet Google Cloud Platform (mauvais ID d’expéditeur).
  • Vos identifiants ont une portée d’autorisation incorrecte.
  • Vous avez téléchargé les mauvais identifiants dans le mauvais espace de travail Braze (mauvais ID d’expéditeur).

Pour d’autres problèmes susceptibles de vous empêcher d’envoyer une notification push, consultez Guide utilisateur : résolution des problèmes des notifications push.

Aucun utilisateur « enregistré pour les notifications push » n’apparaît dans le tableau de bord de Braze (avant l’envoi de messages)

Confirmez que votre application est correctement configurée pour autoriser les notifications push. Les points de défaillance courants à vérifier incluent :

ID d’expéditeur incorrect

Vérifiez que l’ID d’expéditeur FCM correct est inclus dans le fichier braze.xml. Un ID d’expéditeur incorrect entraînera des erreurs MismatchSenderID signalées dans le journal d’activité des messages du tableau de bord.

L’enregistrement Braze ne se produit pas

Étant donné que l’enregistrement FCM est géré en dehors de Braze, l’échec de l’enregistrement ne peut se produire qu’à deux endroits :

  1. Lors de l’enregistrement auprès de FCM
  2. Lors de la transmission du jeton push généré par FCM à Braze

Nous vous recommandons de définir un point d’arrêt ou d’ajouter une journalisation pour confirmer que le jeton push généré par FCM est bien envoyé à Braze. Si un jeton n’est pas généré correctement ou pas du tout, nous vous recommandons de consulter la documentation FCM.

Google Play Services non présent

Pour que les notifications push FCM fonctionnent, Google Play Services doit être présent sur l’appareil. Si Google Play Services n’est pas installé sur un appareil, l’enregistrement push ne se produira pas.

Appareil non connecté à Internet

Vérifiez que votre appareil dispose d’une bonne connectivité Internet et n’envoie pas le trafic réseau via un proxy.

Appuyer sur la 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 tous les deep links lorsqu’une notification push est appuyé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 false, vous devez utiliser un rappel push Braze pour écouter et gérer les intentions de réception et d’ouverture de la notification push.

Les notifications push sont rejetées

Si une notification push n’est pas distribuée, assurez-vous qu’elle n’a pas été rejetée en consultant la console de développement. Voici les descriptions des erreurs courantes qui peuvent être enregistrées dans la console de développement :

Erreur : MismatchSenderID

MismatchSenderID indique un échec d’authentification. Confirmez que votre ID d’expéditeur Firebase et votre clé API FCM sont corrects.

Erreur : InvalidRegistration

InvalidRegistration peut être causée par un jeton push mal formé.

  1. Assurez-vous de transmettre un jeton push valide à Braze depuis Firebase Cloud Messaging.

Erreur : NotRegistered

  1. NotRegistered peut également se produire lorsque plusieurs enregistrements ont lieu et qu’un second enregistrement invalide le premier jeton.

Les notifications push sont envoyées mais ne s’affichent pas sur les appareils des utilisateurs

Il y a plusieurs raisons pour lesquelles cela pourrait se produire :

L’application a été fermée de force

Si vous fermez de force votre application via les paramètres système, vos notifications push ne seront pas envoyées. Relancer l’application réactivera la réception des notifications push sur votre appareil.

BrazeFirebaseMessagingService non enregistré

Le BrazeFirebaseMessagingService doit être correctement enregistré dans AndroidManifest.xml pour que les notifications push apparaissent :

<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 les notifications push

Si vous testez les notifications push via Wi-Fi, votre pare-feu peut bloquer les ports nécessaires à FCM pour recevoir les messages. Confirmez que les ports 5228, 5229 et 5230 sont ouverts. De plus, comme FCM ne spécifie pas ses adresses 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 15169.

La fabrique de notifications personnalisée renvoie null

Si vous avez implémenté une fabrique de notifications personnalisée, assurez-vous qu’elle ne renvoie pas null. Cela empêcherait l’affichage des notifications.

Les utilisateurs « enregistrés 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 push FCM.

Clé de serveur Firebase Cloud Messaging invalide

La clé de serveur Firebase Cloud Messaging fournie dans le tableau de bord de Braze est invalide. L’ID d’expéditeur fourni doit correspondre à celui référencé dans le fichier braze.xml de votre application. La clé de serveur et l’ID d’expéditeur se trouvent ici dans votre console Firebase :

La plateforme Firebase sous « Settings » puis « Cloud Messaging » affiche votre ID de serveur et votre clé de serveur.

Les clics sur les notifications push ne sont pas enregistrés

Si les clics sur les notifications push ne sont pas enregistrés, il est possible que les données de clics push n’aient pas encore été transmises à nos serveurs. Le SDK Braze pour Android peut limiter la fréquence des transmissions.

Si vous avez implémenté un gestionnaire de notifications push personnalisé, assurez-vous que vous préservez correctement les analyses natives des notifications push.

L’enregistrement des clics push est une opération réseau soumise aux limitations du réseau. Ainsi, bien que le SDK Braze pour Android tente de prendre en compte les défaillances réseau et réessaie les requêtes échouées, une certaine perte d’événements est à prévoir.

Les deep links peuvent être testés avec ADB. Nous vous recommandons de tester votre deep link avec la commande suivante :

adb shell am start -W -a android.intent.action.VIEW -d "THE_DEEP_LINK" THE_PACKAGE_NAME

Si le deep link ne fonctionne pas, il est peut-être mal configuré. Un deep link mal configuré ne fonctionnera pas lorsqu’il est envoyé via une notification push Braze.

Vérifier la logique de gestion personnalisée

Si le deep link fonctionne correctement avec ADB mais ne fonctionne pas depuis une notification push Braze, vérifiez si une gestion personnalisée de l’ouverture des notifications push a été implémentée. Si c’est le cas, vérifiez que le code de gestion personnalisée traite correctement le deep link entrant.

Désactiver le comportement de la pile de retour

Si le deep link fonctionne correctement avec ADB mais ne fonctionne pas depuis une notification push Braze, essayez de désactiver la pile de retour. Pour ce faire, mettez à jour votre fichier braze.xml pour inclure :

<bool name="com_braze_push_deep_link_back_stack_activity_enabled">false</bool>

Résolution des problèmes

Appuyer sur une notification push n’ouvre pas l’application

Sur Android, le fait qu’appuyer sur une notification push amène automatiquement votre application au premier plan et ouvre son deep link est contrôlé par le flag natif com_braze_handle_push_deep_links_automatically, dont la valeur par défaut est false.

Avec la valeur par défaut false :

  • Le SDK natif envoie toujours un broadcast BRAZE_PUSH_CLICKED et votre listener Dart push_opened se déclenche comme prévu.
  • Le SDK natif n’appelle pas startActivity(), donc votre application n’est pas amenée au premier plan et le deep link n’est pas suivi automatiquement.

Si ces deux comportements correspondent à ce que vous observez, le paramétrage du flag en est probablement la cause. Pour confirmer, vérifiez les journaux de votre appareil pour une entrée BrazePushReceiver traitant com.braze.action.BRAZE_PUSH_CLICKED, suivie d’un événement push_opened dans vos journaux Flutter, sans lancement d’application correspondant.

Pour corriger cela, définissez com_braze_handle_push_deep_links_automatically sur true dans votre braze.xml :

<bool name="com_braze_handle_push_deep_links_automatically">true</bool>

Pour en savoir plus, consultez Ajouter des deep links (Android) dans le guide des notifications push Flutter.

Autres problèmes de réception et d’enregistrement des notifications push

Étant donné que le SDK Braze Flutter pour Android est construit sur le SDK natif Braze Android, la plupart des autres problèmes de réception, d’enregistrement et de journalisation des notifications push (tels que les incohérences d’identifiant d’expéditeur, l’absence de Google Play Services ou le fait que BrazeFirebaseMessagingService ne soit pas enregistré) s’appliquent également aux applications Flutter. Pour en savoir plus, consultez le guide de résolution des problèmes natif Android.

Résolution des problèmes

Le push n’apparaît pas après la fermeture de l’application depuis le gestionnaire de tâches

Si vous constatez que les notifications push n’apparaissent plus après la fermeture de l’application depuis le gestionnaire de tâches, votre application est probablement en mode Debug. .NET MAUI ajoute un échafaudage en mode Debug qui empêche les applications de recevoir des notifications push après la fin de leur processus. Si vous exécutez votre application en mode Release, vous devriez voir les notifications push même après la fermeture de l’application depuis le gestionnaire de tâches.

La fabrique de notification personnalisée n’est pas définie correctement

Les fabriques de notification personnalisées (et tous les délégués) doivent étendre Java.Lang.Object pour fonctionner correctement à travers l’interface entre C# et Java. Consultez Xamarin sur l’implémentation des interfaces Java pour plus d’informations.

Sauts de ligne dans les notifications push

Lors de la rédaction de notifications push avec des étiquettes Liquid, les sauts de ligne adjacents aux étiquettes Liquid sont automatiquement supprimés avant l’envoi du message. Dans le compositeur de notifications push, ces sauts de ligne sont réajoutés afin que votre message reste lisible pendant la modification. Si vous remarquez des sauts de ligne autour des étiquettes Liquid lors de l’enregistrement de votre message, il s’agit d’un comportement attendu.

New Stuff!