Envoi de notifications push Android avec Firebase Cloud Messaging

Auteur: Louise Ward
Date De Création: 4 Février 2021
Date De Mise À Jour: 1 Juillet 2024
Anonim
Android Notifications with Firebase Cloud Messaging
Vidéo: Android Notifications with Firebase Cloud Messaging

Contenu


Bien que cela dépasse le cadre de ce didacticiel, vous pouvez également utiliser FCM pour les notifications en amont, où FCM reçoit une application cliente, ou pour notifier à votre application les nouvelles données pouvant être téléchargées. De cette manière, vous pouvez vous assurer que la communication entre votre serveur d'applications et votre application client ne se produit que lorsque cela est nécessaire, ce qui est bien plus efficace que l'application client qui contacte le serveur à intervalles réguliers. Il se peut toutefois que de nouvelles données soient disponibles.

Étant donné que FCM fait partie de Firebase, il est également compatible avec d’autres services Firebase. Une fois que vous maîtriserez les bases du FCM, vous voudrez peut-être utiliser les tests A / B pour identifier les notifications les plus efficaces ou utiliser Firebase Predictions pour appliquer un puissant apprentissage automatique à toutes les données analytiques générées à partir de vos différentes campagnes FCM.


FCM prend en charge deux types de s:

  • Notification s. L’application client se comportera différemment selon qu’elle sera en arrière-plan ou au premier plan lorsqu’elle recevra le FCM. Si votre application est en arrière-plan, le SDK Firebase le traitera automatiquement et l’affichera sous forme de notification dans la barre des tâches système du périphérique. Étant donné que le système Android construit la notification pour vous, c'est l'un des moyens les plus simples d'envoyer des notifications push à vos utilisateurs. Si votre application reçoit un FCM alors qu’elle est au premier plan, le système habitude gérer cette notification automatiquement, vous permettant de traiter le rappel onReceived () de votre application. Nous allons explorer onReceived () plus loin dans ce didacticiel, mais pour le moment, sachez que si votre application reçoit un instant, elle est affichée au premier plan. Par défaut, cette information ne sera pas affichée à l'utilisateur.
  • Des données. Contrairement aux notifications, vous pouvez utiliser data pour envoyer des éléments de données personnalisés à l'application cliente. Toutefois, FCM impose une limite de 4 Ko sur ces données. Par conséquent, si votre charge utile dépasse 4 Ko, vous devrez récupérer les données supplémentaires à l'aide de WorkManager ou de l'API JobScheduler.

Dans ce tutoriel, nous allons nous concentrer sur les notifications.


Qu'en est-il de Google Cloud Messaging?

Si vous utilisez le serveur Google Cloud Messaging (GCM) et les API clientes, il y a une mauvaise nouvelle: ce service est déjà obsolète et Google envisage de désactiver «la plupart» des services GCM en avril 2019. Si vous êtes toujours En utilisant GCM, vous devriez alors commencer à migrer vos projets vers FCM dès maintenant et avoir terminé votre migration avant avril 2019.

Ajout de Firebase à votre projet Android

Voyons à quel point il est facile d’ajouter une prise en charge FCM de base à votre application, puis utilisez-la pour envoyer des notifications push à vos utilisateurs.

FCM étant un service Firebase, vous devez ajouter Firebase à votre application:

  • Rendez-vous sur la console Firebase.
  • Sélectionnez «Ajouter un projet» et attribuez un nom à votre projet.
  • Lisez les termes et conditions. Si vous souhaitez continuer, sélectionnez «J'accepte…», puis «Créer un projet».
  • Sélectionnez «Ajouter Firebase à votre application Android».
  • Entrez le nom du package de votre projet, puis cliquez sur «Enregistrer l'application».
  • Sélectionnez "Télécharger google-services.json".
  • Dans Android Studio, faites glisser le fichier google-services.json dans le répertoire "app" de votre projet.
  • Ouvrez votre fichier build.gradle au niveau du projet et ajoutez les éléments suivants:

classpath com.google.gms: google-services: 4.0.1

  • Ouvrez votre fichier build.gradle au niveau de l'application et ajoutez le plug-in de services Google, ainsi que les dépendances pour Firebase Core et FCM:

// Ajouter le plug-in de services Google // appliquer le plug-in: com.google.gms.google-services……… dépendances {implementation fileTree (dir: libs, include:) // Add Firebase Core // implémentation com.google.firebase: firebase-core: 16.0.1 // Ajout de FCM // implémentation com.google.firebase: firebase-messaging: 17.3.4

  • Lorsque vous y êtes invité, synchronisez vos modifications.
  • Ensuite, vous devez faire savoir à la console Firebase que vous avez correctement ajouté Firebase à votre projet. Installez votre application sur un smartphone ou une tablette physique Android, ou sur un périphérique virtuel Android (AVD).
  • De retour dans la console Firebase, sélectionnez «Exécuter l’application pour vérifier l’installation».
  • Une fois que Firebase a détecté votre application, vous verrez un message de félicitations. Sélectionnez «Continuer vers la console».

Envoi de votre première notification push avec Firebase

Et c'est tout! Vous pouvez maintenant envoyer une notification push à vos utilisateurs. Cette notification apparaîtra dans la barre d'état système du périphérique (pour l'instant, supposons que votre application ne soit pas au premier plan lors de la livraison).

Vous créez des notifications FCM à l'aide de Notifications Composer, disponible via la console Firebase:

  • Assurez-vous que votre application est installée et fonctionne en arrière-plan et que votre appareil dispose d'une connexion Internet active.
  • Dans la console Firebase, sélectionnez «Cloud Messaging» dans le menu de gauche.

  • Sélectionnez «Envoyez votre premier».
  • Donnez-vous un titre et un corps de texte, puis cliquez sur «Suivant».

  • Ouvrez le menu déroulant "Sélectionner une application" et choisissez votre application dans la liste. Cette section comprend également certaines options avancées que vous pouvez utiliser pour créer des notifications ciblées, en fonction de facteurs tels que la version de l'application, les paramètres régionaux du périphérique et la dernière fois que l'utilisateur a utilisé votre application. Nous n’utiliserons aucune de ces options dans notre notification de test, mais si vous voulez voir ce qui est disponible, sélectionnez «et…» et explorez le menu déroulant suivant.

  • Une fois que vous avez terminé d’éditer cette section, cliquez sur «Suivant».
  • En supposant que vous souhaitiez envoyer ce message immédiatement, ouvrez le menu déroulant "Envoyer aux utilisateurs éligibles" et sélectionnez "Maintenant".
  • En bas à droite de l'écran, cliquez sur «Publier».
  • Vérifiez toutes les informations dans la fenêtre contextuelle suivante. Si vous souhaitez continuer, sélectionnez «Publier».

Après quelques instants, tous les périphériques clients que vous avez ciblés devraient recevoir cette notification dans leur barre d'état système.

La plupart du temps, les notifications FCM seront envoyées immédiatement, mais il faut parfois attendre quelques minutes avant de recevoir une notification, aussi ne paniquez pas si votre notification est retardée.

Définition d'objectifs: événements de conversion de notification

Lorsque vous créez une notification, vous avez généralement un objectif en tête: ramener les utilisateurs à votre application, les convaincre d'acheter un achat intégré à l'application ou simplement ouvrir votre notification.

Vous pouvez affecter un objectif à votre notification à l’aide de Notification Composer, puis suivre les performances de cette notification dans le tableau de bord de rapports FCM.

Pour définir un objectif, développez la section «Evénements de conversion» de Navigation Composer, puis ouvrez le menu déroulant associé et choisissez parmi les événements de conversion disponibles.

Votre notification a-t-elle été un succès?

Après avoir envoyé une notification, vous pouvez analyser ses performances dans le tableau de bord des rapports FCM, qui devrait se charger automatiquement à chaque fois que vous envoyez un nouveau message. Vous pouvez également accéder directement au tableau de bord.

Même si vous n’avez pas défini d’objectifs de conversion explicites, vous pouvez toujours savoir si les utilisateurs agissent sur vos notifications en comparant le nombre de messages livrés au nombre de messages ouverts.

Vous pouvez également sélectionner n'importe lequel dans cette liste pour afficher les données d'envoi, d'ouverture et de conversion sous forme de graphique. Si vous définissez des objectifs de conversion, c’est également à cet endroit que vous trouverez les statistiques relatives à ces objectifs.

Et si mon application est au premier plan?

Les notifications FCM se comportent différemment selon l'état de l'application cliente.

Par défaut, votre application n’affiche aucun FCM reçu au premier plan. Ainsi, lorsque vous envoyez un message, il n’ya aucune garantie que vos utilisateurs voir cette .

Pour agir sur le contenu de votre application alors qu'elle est dans le premier plan, vous devez étendre FirebaseMessagingService, redéfinir la méthode onReceived, puis extraire le contenu en utilisant getNotification ou getData, selon que vous travaillez avec des données ou des notifications, ou les deux.

Créez une nouvelle classe Java nommée «MyFirebaseMessagingService», puis ajoutez les éléments suivants:

Classe publique MyFirebaseMessagingService étend FirebaseMessagingService {@Override public void onReceived (Remote) {super.onReceived (remote);

Vous devrez également créer un objet de notification. Vous avez la possibilité de personnaliser votre notification, par exemple en choisissant le son qui doit être lu chaque fois que l'utilisateur reçoit cette notification ou en appliquant une icône de notification personnalisée. Vous devrez également récupérer le contenu des données ou de la notification, par exemple:

NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder (this, "channel_id") .setContentTitle (remote.getNotification (). GetTitle ()) .setContentText (remote.getNotification (). GetBody ()) .setPriority (NotificationCompat. setStyle (nouvelle NotificationCompat.BigTextStyle ()) .setSound (RingtoneManager.getDefaultUri (RingtoneManager.TYPE_NOTIFICATION)) .setSmallIcon (R.mipmap.ic_launcher) .setAutoCancel (true); NotificationManager notificationManager = (NotificationManager) getSystemService (Context.NOTIFICATION_SERVICE); notificationManager.notify (0, notificationBuilder.build ()); }}

Une fois que vous avez créé votre service, n’oubliez pas de l’ajouter à votre manifeste:

Désormais, chaque fois que votre application reçoit un message FCM alors qu’il est au premier plan, il est transmis au gestionnaire onReceived () et votre application exécute alors l’action définie par vous, telle que la publication de la notification ou la mise à jour du contenu de votre application.

Des notifications plus attrayantes: cibler vos utilisateurs

Jusqu'à présent, nous envoyions la même notification à l'ensemble de notre base d'utilisateurs, mais les notifications sont beaucoup plus attrayantes lorsqu'elles ciblent des utilisateurs spécifiques.

Vous pouvez utiliser Notification Composer pour envoyer différentes notifications à différentes parties de votre base d'utilisateurs. Rendez-vous dans Notification Composer et créez votre notification normalement, mais dans la section «Cible», cliquez sur «et». Cela vous donne accès à une nouvelle liste déroulante contenant les options suivantes:

  • Version. Cela vous permet de cibler ou d'exclure les périphériques exécutant des versions spécifiques de votre application. Par exemple, vous pouvez envoyer des notifications aux personnes qui exécutent la version gratuite, en les encourageant à passer à la version Premium de votre application.
  • La langue. Vous pouvez utiliser ce paramètre pour cibler ou exclure les différentes langues et paramètres régionaux pris en charge par votre application, tels que la création de notifications adaptées à différents fuseaux horaires ou à différentes langues.
  • Public (s) d'utilisateur. Cela vous permet de cibler ou d'exclure différentes sections de votre public. Par exemple, vous pouvez utiliser ce paramètre pour tenter les personnes qui ont l'habitude de faire des achats via l'application, en leur offrant un rabais ou en attirant leur attention sur tous les nouveaux produits in-app étonnants que vous venez de publier.
  • Propriété de l'utilisateur. Si vous avez configuré Firebase Analytics, vous aurez accès à une gamme d'informations sur votre public, via les propriétés de l'utilisateur. Vous pouvez utiliser ces propriétés en combinaison avec FCM pour envoyer des notifications ciblées à des sections très spécifiques de votre base d'utilisateurs, telles que les personnes de 25 à 34 ans intéressées par le sport.
  • Prédiction. Si vous avez configuré Firebase Predictions, vous pouvez cibler les utilisateurs en fonction de la probabilité qu’ils adoptent un comportement particulier au cours des 7 prochains jours. Par exemple, si Predictions avertit qu'une personne est susceptible de se désengager de votre jeu mobile, vous pouvez utiliser FCM pour l'inviter à participer à une nouvelle quête ou pour lui envoyer de la monnaie en jeu.
  • Dernier engagement de l'application. Si un utilisateur n'a pas lancé votre application depuis un moment, vous pouvez utiliser ce paramètre pour lui envoyer quelques notifications, simplement pour lui rappeler tout le contenu de qualité que votre application peut offrir.
  • D'abord ouvert. Cela vous permet d'envoyer des notifications en fonction de la première ouverture de votre application par l'utilisateur. Par exemple, vous pourriez aider les nouveaux utilisateurs à devenir plus rapides en leur envoyant des notifications contenant des astuces et des conseils utiles.

Cibler un seul appareil avec des jetons d'enregistrement

Nous avons déjà vu comment envoyer des notifications ciblées en fonction de facteurs tels que l’âge de l’utilisateur, ses centres d’intérêt et la dernière fois qu’il s’est engagé avec votre application, mais vous pouvez obtenir encore plus spécifique. Dans cette dernière section, je vais vous montrer comment envoyer une notification FCM à un unique dispositif.

Lorsque l'utilisateur lance votre application pour la première fois, le SDK FCM génère un jeton d'enregistrement pour cette instance d'application client. Vous pouvez utiliser FirebaseInstanceId.getInstance (). GetInstanceId () pour capturer ce jeton d'enregistrement, puis envoyer une notification à ce jeton spécifique.

Notez que dans un projet réel, vous capturez généralement un jeton en l'envoyant à votre serveur d'applications et en le stockant à l'aide de la méthode que vous préférez, mais pour que tout reste simple, je vais simplement imprimer ce jeton dans Logcat d'Android Studio.

Voici mon MainActivity terminée:

importer android.support.v7.app.AppCompatActivity; importer android.os.Bundle; import android.support.annotation.NonNull; importer android.util.Log; importer com.google.android.gms.tasks.OnCompleteListener; importer com.google.android.gms.tasks.Task; import com.google.firebase.iid.FirebaseInstanceId; import com.google.firebase.iid.InstanceIdResult; Classe publique MainActivity étend AppCompatActivity {private statique final String TAG = "MainActivity"; @Override protected void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); FirebaseInstanceId.getInstance (). GetInstanceId () .addOnCompleteListener (nouveau OnCompleteListener() {@Override public void onComplete (@NonNull Task tâche) {if (! task.isSuccessful ()) {// À faire // return; } // Obtention du jeton d'ID d'instance // Jeton de chaîne = task.getResult (). GetToken (); String msg = getString (R.string.fcm_token, jeton); Log.d (TAG, msg); }}); }}

Ouvrez votre fichier strings.xml et créez la ressource de chaîne «fcm_token» à laquelle nous faisons référence dans notre MainActivity:

Jeton FCM:% s

Vous pouvez maintenant récupérer le jeton unique de votre appareil:

  • Installez votre projet sur le périphérique Android connecté ou AVD.
  • Ouvrez le logiciel Logcat d’Android Studio en sélectionnant l’onglet «Logcat» (où se trouve le curseur dans la capture d’écran suivante).

  • Le jeton de votre appareil sera imprimé dans la section «Débogage» de Logcat. Ouvrez le menu déroulant et sélectionnez «Débogage».

En fonction de la quantité d'informations contenues dans votre Logcat, il peut s'avérer difficile de repérer la ligne que vous recherchez. Si vous éprouvez des difficultés, lancez une recherche sur le mot «jeton» ou essayez de fermer puis de relancer l’application.

Une fois le jeton récupéré, vous pouvez l’utiliser pour envoyer une notification push à ce périphérique particulier:

  • Rendez-vous sur la console Firebase et sélectionnez votre projet dans le menu déroulant, si ce n’est déjà fait.
  • Choisissez «Cloud Messaging» dans le menu de gauche.
  • Cliquez sur le bouton "Nouvelle notification".
  • Entrez votre titre et votre texte, comme d'habitude, puis cliquez sur «Tester sur l'appareil».

  • Copiez / collez votre jeton dans le champ "Ajouter une instance ...", puis cliquez sur la petite icône bleue "+" qui apparaît.
  • Cochez la case accompagnant le jeton.

  • Cliquez sur "Test".

Cette notification apparaîtra désormais sur le périphérique client ciblé uniquement.

Emballer

Dans cet article, je vous ai montré comment envoyer des notifications push Android à l'aide de Firebase Cloud Messaging et comment créer des notifications ciblant différentes sections de votre base d'utilisateurs.

Allez-vous utiliser FCM dans vos propres projets Android? Faites-nous savoir dans les commentaires ci-dessous!

Il y a de forte chance que lorque l'on pene aux ordinateur, l'un de premier nom qui nou viennent à l'eprit oit Microoft. an urprie, le erveur de bae de donnée QL de Microoft et l...

Ne laiez pa votre manque de connaiance pécialiée en codage vou empêcher de la contruction du ite parfait.Vou pouvez concevoir, peronnalier, héberger et gérer votre ite Web per...

Postes Intéressants