Créer et envoyer des notifications push
Découvrez comment créer des notifications push pour les applications mobiles avec le SDK Mobile Experience Platform et Journey Optimizer.
Journey Optimizer vous permet de créer des parcours et d’envoyer des messages à des audiences ciblées. Avant d’envoyer des notifications push avec Journey Optimizer, vous devez vous assurer que les configurations et intégrations appropriées sont en place. Pour comprendre le flux de données des notifications push dans Journey Optimizer, reportez-vous à la documentation.
Conditions préalables
-
Création et exécution de l’application avec les SDK installés et configurés.
-
Configurez l’application pour Adobe Experience Platform.
-
Accès à Journey Optimizer et autorisations suffisantes comme décrit ici. Vous avez également besoin d’une autorisation suffisante pour accéder aux fonctionnalités Journey Optimizer suivantes.
- Créez une surface d’application.
- Créez un parcours.
- Créez un message.
- Créer des paramètres prédéfinis de message.
-
Compte de développeur Apple payant disposant d’un accès suffisant pour créer des certificats, des identifiants et des clés.
-
Appareil ou simulateur iOS physique à tester.
Objectifs d'apprentissage
Dans cette leçon, vous allez
- Enregistrez l’ID d’application avec le service Apple Push Notification (APNS).
- Créez une surface d’application dans Journey Optimizer.
- Mettez à jour votre schéma pour inclure les champs de messagerie push.
- Installez et configurez l’extension de balise Journey Optimizer.
- Mettez à jour votre application pour enregistrer l’extension de balise Journey Optimizer.
- Validez la configuration dans Assurance.
- Envoi d’un message de test à partir d’Assurance
- Définissez votre propre événement, parcours et expérience de notification push dans Journey Optimizer.
- Envoyez votre propre notification push depuis l’application.
Configuration
Enregistrement de l’ID d’application avec des APNS
Les étapes suivantes ne sont pas spécifiques à Adobe Experience Cloud et sont conçues pour vous guider tout au long de la configuration des APNS.
Création d’une clé privée
-
Sur le portail destiné aux développeurs Apple, accédez à Clés.
-
Pour créer une clé, sélectionnez +.
-
Fournissez un nom de clé.
-
Cochez la case Service de notification push Apple (APNS) .
-
Sélectionnez Continuer.
-
Vérifiez la configuration et sélectionnez Enregistrer.
-
Téléchargez la clé privée
.p8
. Il est utilisé dans la configuration Surface de l’application plus loin dans cette leçon. -
Prenez note de l'ID de clé. Il est utilisé dans la configuration Surface de l’application.
-
Prenez note de l'ID d'équipe. Il est utilisé dans la configuration Surface de l’application.
Vous trouverez de la documentation supplémentaire ici.
Ajout d’une surface d’application dans la collecte de données
-
Dans l’ interface de collecte de données, sélectionnez App Surfaces dans le panneau de gauche.
-
Pour créer une configuration, sélectionnez Créer une surface d’application.
-
Saisissez un Nom pour la configuration, par exemple
Luma App Tutorial
. -
Dans Configuration d'application mobile, sélectionnez Apple iOS.
-
Saisissez l’ID du lot de l’application mobile dans le champ ID de l’application (ID du lot iOS) . Par exemple,
com.adobe.luma.tutorial.swiftui
. -
Activez la bascule Push Credentials (Informations d’identification push) pour ajouter vos informations d’identification.
-
Faites glisser et déposez votre fichier
.p8
Apple Push Notification Authentication Key . -
Fournissez l’ ID de clé, une chaîne de 10 caractères attribuée lors de la création de la clé d’authentification
p8
. Elle se trouve sous l’onglet Clés de la page Certificats, identifiants et profils des pages du portail du développeur Apple. Voir aussi Création d’une clé privée. -
Indiquez l'identifiant d'équipe. L’ID d’équipe est une valeur qui se trouve sous l’onglet Adhésion ou en haut de la page du portail des développeurs Apple. Voir aussi Création d’une clé privée.
-
Sélectionnez Enregistrer.
Mise à jour de la configuration des flux de données
Pour vous assurer que les données envoyées de votre application mobile à l’Edge Network sont transférées vers Journey Optimizer, mettez à jour votre configuration Experience Edge .
-
Dans l’interface utilisateur de la collecte de données, sélectionnez Datastreams, puis sélectionnez votre flux de données, par exemple Luma Mobile App.
-
Sélectionnez
-
Dans l’écran Datastreams >
-
Si cette option n’est pas déjà sélectionnée, sélectionnez Jeu de données de profil push AJO dans le jeu de données de profil. Ce jeu de données de profil est requis lors de l’utilisation de l’appel de l’API
MobileCore.setPushIdentifier
(voir Enregistrer le jeton de l’appareil pour les notifications push) qui garantit que l’identifiant unique des notifications push (ou l’identifiant push) est stocké dans le profil de l’utilisateur. -
Adobe Journey Optimizer est sélectionné. Voir Paramètres Adobe Experience Platform pour plus d’informations.
-
Pour enregistrer votre configuration de flux de données, sélectionnez Enregistrer.
-
Installation de l’extension de balises Journey Optimizer
Pour que votre application fonctionne avec Journey Optimizer, vous devez mettre à jour la propriété de balise.
-
Accédez à Balises > Extensions > Catalogue,
-
Ouvrez votre propriété, par exemple Luma Mobile App Tutorial.
-
Sélectionnez Catalog.
-
Recherchez l’extension Adobe Journey Optimizer.
-
Installez l’extension .
-
Dans la boîte de dialogue Installer l’extension
-
Sélectionnez un environnement, par exemple Développement.
-
Sélectionnez le jeu de données Jeu de données d’événement de suivi d’expérience AJO dans la liste Jeu de données d’événement.
-
Sélectionnez Enregistrer dans la bibliothèque et créer.
-
Validation de la configuration avec Assurance
-
Consultez la section instructions de configuration pour connecter votre simulateur ou périphérique à Assurance.
-
Dans l’interface utilisateur d’assurance, sélectionnez Configurer.
-
Sélectionnez
-
Sélectionnez Enregistrer.
-
Sélectionnez Débogage push dans le volet de navigation de gauche.
-
Sélectionnez l’onglet Valider la configuration .
-
Sélectionnez votre appareil dans la liste Client.
-
Confirmez que vous n’obtenez aucune erreur.
-
Sélectionnez l’onglet Envoyer le test push .
-
(Facultatif) Modifiez les détails par défaut pour Title et Body
-
Sélectionnez
-
Vérifiez les résultats du test.
-
La notification push de test devrait apparaître dans votre application.
Signature
La signature de l’application Luma est nécessaire pour envoyer des notifications push et nécessite un compte développeur Apple payant.
Pour mettre à jour la signature de votre application :
-
Accédez à votre application dans Xcode.
-
Sélectionnez Luma dans le navigateur de projet.
-
Sélectionnez la cible Luma.
-
Sélectionnez l’onglet Signing & Capabilities .
-
Configurez la gestion automatique de la signature, Team et Bundle Identifier, ou utilisez vos détails de mise en service de développement Apple spécifiques.
note important IMPORTANT Assurez-vous d’utiliser un identifiant de lot unique et remplacez l’identifiant de lot com.adobe.luma.tutorial.swiftui
, car chaque identifiant de lot doit être unique. En règle générale, vous utilisez un format DNS inversé pour les chaînes d’ID de lot, commecom.organization.brand.uniqueidentifier
. La version terminée de ce tutoriel, par exemple, utilisecom.adobe.luma.tutorial.swiftui
.
Ajout de fonctionnalités de notification push à votre application
-
Dans Xcode, sélectionnez Luma dans la liste TARGETS, sélectionnez l’onglet Signing & Capabilities, cliquez sur le bouton + Capability, puis sélectionnez Push Notifications. Cela permet à votre application de recevoir des notifications push.
-
Vous devez ensuite ajouter une extension de notification à l’application. Revenez à l’onglet General et sélectionnez l’icône + au bas de la section TARGETS .
-
Vous êtes invité à sélectionner le modèle correspondant à votre nouvelle cible. Sélectionnez Extension du service de notification, puis Suivant.
-
Dans la fenêtre suivante, utilisez
NotificationExtension
comme nom de l'extension et cliquez sur le bouton Terminer .
Une extension de notification push doit maintenant être ajoutée à votre application, comme dans l’écran ci-dessous.
Mise en oeuvre de Journey Optimizer dans l’application
Comme indiqué dans les leçons précédentes, l’installation d’une extension de balise mobile fournit uniquement la configuration. Vous devez ensuite installer et enregistrer le SDK de messagerie. Si ces étapes ne sont pas claires, consultez la section Installer les SDK .
-
Dans Xcode, assurez-vous que AEP Messaging est ajouté à la liste des packages dans les dépendances de modules. Voir Swift Package Manager.
-
Accédez à Luma > Luma > AppDelegate dans le navigateur de projet Xcode.
-
Assurez-vous que
AEPMessaging
fait partie de votre liste d’importations.import AEPMessaging
-
Vérifiez que
Messaging.self
fait partie du tableau des extensions que vous enregistrez.code language-swift let extensions = [ AEPIdentity.Identity.self, Lifecycle.self, Signal.self, Edge.self, AEPEdgeIdentity.Identity.self, Consent.self, UserProfile.self, Places.self, Messaging.self, Optimize.self, Assurance.self ]
Enregistrement du jeton de périphérique pour les notifications push
-
Ajoutez l’API
MobileCore.setPushIdentifier
à la fonctionfunc application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)
.code language-swift // Send push token to Mobile SDK MobileCore.setPushIdentifier(deviceToken)
Cette fonction récupère le jeton de l’appareil unique sur lequel l’application est installée. Définit ensuite le jeton pour la diffusion de la notification push à l’aide de la configuration que vous avez configurée et qui repose sur le service Apple Push Notification (APN).
MobileCore.updateConfigurationWith(configDict: ["messaging.useSandbox": true])
détermine si les notifications push utilisent un environnement de test APN ou un serveur de production pour envoyer des notifications push. Lors du test de votre application dans le simulateur ou sur un appareil, assurez-vous que messaging.useSandbox
est défini sur true
afin de recevoir des notifications push. Lors du déploiement de votre application pour production afin de tester à l’aide d’Apple Testflight, assurez-vous que vous avez défini messaging.useSandbox
sur false
sans quoi votre application de production ne pourra pas recevoir de notifications push.Créer votre propre notification push
Pour créer votre propre notification push, vous devez définir un événement dans Journey Optimizer qui déclenche un parcours chargé de l'envoi d'une notification push.
Mettre à jour votre schéma
Vous allez définir un nouveau type d’événement, qui n’est pas encore disponible dans la liste des événements définis dans votre schéma. Vous utiliserez ce type d’événement ultérieurement lors du déclenchement des notifications push.
-
Dans l’interface utilisateur de Journey Optimizer, sélectionnez Schémas dans le rail de gauche.
-
Sélectionnez Parcourir dans la barre d’onglets.
-
Sélectionnez votre schéma, par exemple Luma Mobile App Event Schema pour l’ouvrir.
-
Dans l’éditeur de schémas :
-
Sélectionnez le champ eventType .
-
Dans le volet Propriétés du champ, faites défiler l’écran vers le bas pour afficher la liste des valeurs possibles pour le type d’événement. Sélectionnez Ajouter une ligne et ajoutez
application.test
comme VALUE etTest event for push notification
commeDISPLAY NAME
. -
Sélectionnez Appliquer.
-
Sélectionnez Enregistrer.
-
Définition d’un événement
Les événements dans Journey Optimizer vous permettent de déclencher vos parcours unitairement pour envoyer des messages, par exemple des notifications push. Voir À propos des événements pour plus d’informations.
-
Dans l’interface utilisateur de Journey Optimizer, sélectionnez Configurations dans le rail de gauche.
-
Dans l’écran Tableau de bord, sélectionnez le bouton Gérer dans la mosaïque Événements.
-
Dans l’écran Events, sélectionnez Create Event.
-
Dans le volet Edit event1 :
-
Saisissez
LumaTestEvent
comme Nom de l’événement. -
Fournissez une description, par exemple
Test event to trigger push notifications in Luma app
. -
Sélectionnez le schéma d’événement d’expérience d’application mobile que vous avez créé précédemment dans Création d’un schéma XDM dans la liste Schéma, par exemple Luma Mobile App Event Schema v.1.
-
Sélectionnez
Dans la boîte de dialogue Fields, assurez-vous que les champs suivants sont sélectionnés (en plus des champs par défaut toujours sélectionnés (_id, id et timestamp). Vous pouvez basculer, à l’aide de la liste déroulante, entre Sélectionné, Tous et Principal ou utiliser le champ
- Application identifiée (id),
- Type d’événement (eventType),
- Principal (principal).
Sélectionnez ensuite Ok.
-
Sélectionnez
-
Dans la boîte de dialogue Ajouter une condition d’ID d’événement, placez Type d’événement (eventType) sur Faites glisser un élément ici.
-
Dans la fenêtre contextuelle, faites défiler l’écran vers le bas et sélectionnez application.test (qui est le type d’événement que vous avez ajouté précédemment à la liste des types d’événement dans le cadre de la mise à jour de votre schéma). Faites ensuite défiler l’écran jusqu’en haut et sélectionnez Ok.
-
Sélectionnez Ok pour enregistrer la condition.
-
-
Sélectionnez ECID (ECID) dans la liste Espace de noms. Le champ Identifiant du profil est automatiquement renseigné avec l’identifiant du premier élément de l’ECID clé pour la carte identityMap.
-
Sélectionnez Enregistrer.
-
Vous venez de créer une configuration d’événement basée sur le schéma d’événements d’expérience d’application mobile que vous avez créé précédemment dans le cadre de ce tutoriel. Cette configuration d’événement filtrera les événements d’expérience entrants à l’aide de votre type d’événement spécifique (application.test
). De ce fait, seuls les événements de ce type spécifique, initiés à partir de votre application mobile, déclencheront le parcours que vous créez à l’étape suivante. Dans un scénario réel, vous souhaiterez peut-être envoyer des notifications push depuis un service externe. Toutefois, les mêmes concepts s’appliquent : depuis l’application externe, envoyez un événement d’expérience dans un Experience Platform contenant des champs spécifiques sur lesquels vous pouvez appliquer des conditions avant que ces événements ne déclenchent un parcours.
Création du parcours
L’étape suivante consiste à créer le parcours qui déclenche l’envoi de la notification push lors de la réception de l’événement approprié.
-
Dans l’interface utilisateur de Journey Optimizer, sélectionnez Parcours dans le rail de gauche.
-
Sélectionnez Créer un Parcours.
-
Dans le panneau Propriétés du Parcours :
-
Saisissez un Nom pour le parcours, par exemple
Luma - Test Push Notification Journey
. -
Saisissez une Description pour le parcours, par exemple
Journey for test push notifications in Luma mobile app
. -
Assurez-vous que l’option Autoriser la rentrée est sélectionnée et définissez la Période d’attente de rentrée sur 30 Secondes.
-
Cliquez sur OK.
-
-
De retour dans la zone de travail du parcours, à partir de EVENTS, effectuez un glisser-déposer de votre
- Dans le panneau Events: LumaTestEvent , saisissez un libellé, par exemple
Luma Test Event
.
- Dans le panneau Events: LumaTestEvent , saisissez un libellé, par exemple
-
Dans la liste déroulante ACTIONS, effectuez un glisser-déposer de
-
Fournissez un libellé, par exemple
Luma Test Push Notification
, fournissez une description, par exempleTest push notification for Luma mobile app
, sélectionnez Transactional dans la liste Category et sélectionnez Luma dans la surface push. -
Sélectionnez
Dans l’éditeur Notification push :
-
Saisissez un Titre, par exemple
Luma Test Push Notification
, puis un Corps, par exempleTest push notification for Luma mobile app
. -
Vous pouvez éventuellement saisir un lien vers une image (.png ou .jpg) dans Ajouter un média. Si vous le faites, l’image fera partie de la notification push.
-
Pour enregistrer et quitter l’éditeur, sélectionnez
-
-
Pour enregistrer et terminer la définition de notification push, sélectionnez Ok.
-
-
Votre parcours devrait ressembler à celui-ci. Sélectionnez Publish pour publier et activer votre parcours.
Déclencher la notification push
Vous avez tous les ingrédients en place pour envoyer une notification push. Reste à savoir comment déclencher cette notification push. Essentiellement, c’est la même chose que précédemment : envoyez simplement un événement d’expérience avec la charge utile appropriée (comme dans Events).
Cette fois, l’événement d’expérience que vous êtes sur le point d’envoyer n’est pas créé en créant un dictionnaire XDM simple. Vous allez utiliser un struct
représentant une payload de notification push. La définition d’un type de données dédié est une autre manière de mettre en oeuvre la création de payloads d’événement d’expérience dans votre application.
-
Accédez à Luma > Luma > Modèle > XDM > TestPushPayload dans le navigateur de projet Xcode et inspectez le code.
code language-swift import Foundation // MARK: - TestPush struct TestPushPayload: Codable { let application: Application let eventType: String } // MARK: - Application struct Application: Codable { let id: String }
Le code est une représentation de la payload simple suivante que vous allez envoyer pour déclencher votre parcours de notification push de test.
code language-json { "eventType": string, "application" : [ "id": string ] }
-
Accédez à Luma > Luma > Utils > MobileSDK dans le navigateur de projet Xcode et ajoutez le code suivant à
func sendTestPushEvent(applicationId: String, eventType: String)
:code language-swift // Create payload and send experience event Task { let testPushPayload = TestPushPayload( application: Application( id: applicationId ), eventType: eventType ) // send the final experience event await sendExperienceEvent( xdm: testPushPayload.asDictionary() ?? [:] ) }
Ce code crée une instance
testPushPayload
à l’aide des paramètres fournis à la fonction (applicationId
eteventType
), puis appellesendExperienceEvent
lors de la conversion de la charge utile en dictionnaire. Cette fois-ci, ce code prend également en compte les aspects asynchrones de l’appel du SDK Adobe Experience Platform en utilisant le modèle d’accès simultané de Swift basé surawait
etasync
. -
Accédez à Luma > Luma > Views > General > ConfigView dans le navigateur de projet Xcode. Dans la définition du bouton de notification push, ajoutez le code suivant pour envoyer la payload de l’événement d’expérience de notification push de test afin de déclencher votre parcours lorsque ce bouton est activé.
code language-swift // Setting parameters and calling function to send push notification Task { let eventType = testPushEventType let applicationId = Bundle.main.bundleIdentifier ?? "No bundle id found" await MobileSDK.shared.sendTestPushEvent(applicationId: applicationId, eventType: eventType) }
Validation à l’aide de votre application
-
Recréez et exécutez l’application dans le simulateur ou sur un appareil physique à partir de Xcode, en utilisant
-
Accédez à l’onglet Paramètres .
-
Appuyez sur Notification push. La notification push apparaît dans votre application.
Étapes suivantes
Vous devriez maintenant disposer de tous les outils pour gérer les notifications push dans votre application. Par exemple, vous pouvez créer dans Journey Optimizer un parcours qui envoie une notification push de bienvenue lorsqu’un utilisateur de l’application se connecte. Ou une notification push de confirmation lorsqu’un utilisateur achète un produit dans l’application. Ou entre dans la clôture virtuelle d’un emplacement (comme vous le verrez dans la leçon Places).
Suivant : Créer et envoyer des messages in-app