Définir et gérer la priorité des messages

Vous avez le choix entre deux options pour attribuer une priorité de diffusion aux messages en aval sur Android : une priorité normale et une priorité élevée. La distribution des messages de priorité normale et élevée fonctionne comme suit:

  • Priorité normale : Il s'agit de la priorité par défaut pour les messages de données. Les messages de priorité normale sont distribués immédiatement lorsque l'appareil n'est pas en veille. Lorsque l'appareil est en mode Sommeil, la diffusion peut être retardée pour économiser la batterie jusqu'à ce que l'appareil quitte le mode Sommeil. Pour les messages moins urgents, tels que les notifications de nouveaux e-mails, la synchronisation de l'UI ou la synchronisation des données de l'application en arrière-plan, choisissez la priorité de diffusion normale.

    Lorsque vous recevez un message de priorité normale sur Android qui demande une synchronisation des données en arrière-plan pour votre application, vous pouvez planifier une tâche avec WorkManager pour la gérer lorsque le réseau est disponible.

  • Priorité élevée. FCM tente de distribuer immédiatement des messages à priorité élevée, ce qui permet à FCM d'activer un appareil en veille si nécessaire et d'exécuter un traitement limité (y compris un accès réseau très limité). Les messages à priorité élevée doivent généralement entraîner une interaction de l'utilisateur avec votre application ou ses notifications.

Gestion et dépriorisation des messages sur Android

Les messages à priorité élevée sur Android sont destinés à du contenu sensible au temps et visible par l'utilisateur. Ils doivent faire l'objet de notifications visibles par l'utilisateur. Si FCM détecte un schéma dans lequel les messages ne génèrent pas de notifications destinées aux utilisateurs, vos messages peuvent être dépriorisés en priorité normale ou délégués pour être gérés par les services Google Play.

FCM utilise sept jours de comportement des messages pour déterminer s'il faut déprioriser ou mettre en proxy les messages. Il prend cette décision indépendamment pour chaque instance de votre application. Si, en réponse à des messages à priorité élevée, les notifications sont affichées de manière visible par l'utilisateur, vos futurs messages à priorité élevée ne seront pas affectés.

Délégation de notifications avec les services Google Play

Les messages de notification à priorité élevée (et non les messages de données) qui répondent à certains critères sont mis en proxy par les services Google Play au lieu d'être dépriorisés. Cela signifie que les notifications sont affichées par les services Google Play au nom de l'application, sans qu'il soit nécessaire de la démarrer. Cela permet d'offrir une meilleure expérience utilisateur globale sur les appareils Android.

Notez que les messages de notification par proxy modifient la manière dont les données analytiques liées aux messages reçus sont enregistrées:

  • Pour que les données analytiques des notifications par proxy soient enregistrées, votre application doit utiliser le SDK FCM 24.0.0 ou une version ultérieure.
  • Vous remarquerez peut-être des retards ou une baisse du nombre de messages reçus par rapport au nombre enregistré avant l'introduction des notifications par proxy. En effet, les analyses des notifications transmises par proxy ne sont consignées qu'une fois que votre application démarre. Elles peuvent ne pas l'être du tout si la notification n'entraîne pas l'ouverture de l'application.

Le proxying des messages de notification de cette manière est le comportement par défaut pour les applications utilisant Android Q ou version ultérieure et les services Google Play 19054000 ou version ultérieure. Les messages envoyés via l'API HTTP v1 sont mis en proxy, mais les messages envoyés via la console Firebase ou les anciennes API ne le sont pas. Notez que cette fonctionnalité est actuellement en version bêta et peut donc encore changer.

Bien que nous vous recommandions vivement de laisser la délégation activée pour ses avantages sur la batterie et la mémoire de l'appareil, vous pouvez désactiver ce comportement de l'une des manières suivantes:

  • Au niveau de l'application: dans le fichier manifeste de votre application, ajoutez la directive <meta-data android:name= "delivery_metrics_exported_to_big_query_enabled" android:value="false"/>.
  • Par instance d'application: pour l'instance d'application, définissez fun setNotificationDelegationEnabled(disable: Boolean): Task<Void!> dans le flux d'UI de votre application, en fonction du cas d'utilisation spécifique.
  • Message par message: définissez la clé proxy sur DENY dans l'objet AndroidNotification de la requête d'envoi.

Mesurer la priorité des messages sur Android

  • Messages individuels. Lors de la distribution, vous pouvez déterminer si un message individuel a été dépriorisé ou non en comparant sa priorité de distribution, à partir de getPriority(), avec sa priorité d'origine, à partir de getOriginalPriority().

  • Tous les messages L'API FCM Aggregate Delivery Data peut indiquer le pourcentage de tous vos messages envoyés à Android qui sont dépriorisés. Certains messages peuvent être exclus des rapports de données agrégées, mais dans l'ensemble, ils doivent donner une vue globale des taux de dépriorisation des messages. Pour en savoir plus et obtenir un exemple de code permettant d'interroger l'API, consultez notre article sur les données de diffusion agrégées. Vous pouvez également l'explorer dans l'explorateur d'API.

  • Notifications de proxy Les notifications par proxy ne seront pas comptabilisées dans les métriques de diffusion FCM ou GA actuelles. Vous risquez donc de constater une baisse pouvant aller jusqu'à 15% dans les métriques de diffusion des notifications. Pour générer des rapports sur les messages proxyés, utilisez l'API FCM Aggregate Delivery Data. ProxyNotificationInsightPercents indique le pourcentage de notifications transmises avec succès par proxy, ainsi que les détails des messages qui n'ont pas pu l'être.

Dépannage

  • Assurez-vous que les notifications sont activées dans l'instance de votre application. Si l'utilisateur a désactivé l'autorisation de notification pour votre application, aucune de vos notifications ne sera publiée. Par conséquent, vos messages seront dépriorisés. Vous devez vérifier que les notifications sont activées avant d'envoyer des messages à priorité élevée à une instance d'application.

  • N'appelez pas chez vous avant d'envoyer une notification. Étant donné qu'une petite partie de la population mobile Android se trouve sur des réseaux à latence élevée, évitez d'ouvrir une connexion à vos serveurs avant d'afficher une notification. Appeler à nouveau le serveur avant la fin du temps de traitement autorisé peut être risqué pour les utilisateurs sur les réseaux à latence élevée. Incluez plutôt le contenu de la notification dans le message FCM et affichez-le immédiatement. Si vous devez synchroniser du contenu supplémentaire dans l'application sur Android, vous pouvez planifier une tâche avec WorkManager pour la gérer en arrière-plan.