Créer et afficher des offres avec Decisioning
Découvrez comment afficher les offres de Journey Optimizer Decisioning dans vos applications mobiles avec Experience Platform Mobile SDK.
Journey Optimizer Decisioning est la nouvelle génération de la gestion des offres et le successeur de Decision Management. La fonctionnalité Prise de décision vous permet de diffuser des offres marketing personnalisées en combinant un catalogue centralisé d’éléments de décision à un puissant moteur de décision. Que vous adaptiez le contenu à des audiences individuelles ou que vous optimisiez les stratégies à l’aide de classements optimisés par l’IA, la prise de décision fournit les outils nécessaires pour prendre des décisions pilotées par les données à grande échelle. Découvrez les concepts clés tels que les éléments de décision, les règles et les politiques, et explorez la manière dont ces éléments fonctionnent ensemble pour sélectionner et prioriser le meilleur contenu pour vos campagnes. De la gestion des collections et des emplacements à l’utilisation des données Adobe Experience Platform, ce guide complet vous permet de bénéficier d’une personnalisation plus intelligente et d’offrir des expériences client percutantes.
La prise de décision simplifie la personnalisation en offrant un catalogue centralisé d’offres marketing connues sous le nom d’« éléments de décision » et un moteur de décision sophistiqué. Ce moteur tire parti des règles et des critères de classement pour sélectionner et présenter les éléments de décision les plus pertinents à chaque personne. Ces éléments de décision sont intégrés de manière transparente aux messages et aux expériences sur les canaux Adobe Journey Optimizer : expérience basée sur le code, e-mail, SMS, notifications push, etc.
Dans cette leçon, l’accent est mis sur l’utilisation du canal d’expérience basé sur du code pour diffuser des offres dans l’application mobile. Et pas sur l’explication détaillée de toutes les fonctionnalités de la solution Decisioning. Reportez-vous à la documentation Prise de décision pour plus d’informations.
Conditions préalables
- Application créée et exécutée avec succès avec les SDK installés et configurés.
- Configurez l’application pour Adobe Experience Platform.
- Accès à Journey Optimizer - Prise de décision avec les autorisations appropriées pour gérer les offres et les décisions.
Objectifs d’apprentissage
Dans cette leçon, vous allez :
- Mettez à jour votre configuration Edge pour Decisioning.
- Créez un schéma représentant les offres.
- Validez la configuration dans Assurance.
- Configurez une configuration de canal d’expérience basée sur du code.
- Créez une campagne d’expérience basée sur du code, basée sur les offres dans Journey Optimizer - Prise de décision.
- Implémentez des offres à partir de Decisioning dans votre application.
Configuration
Mettre à jour la configuration du flux de données
Pour vous assurer que les données envoyées de votre application mobile à Platform Edge Network sont transférées à Journey Optimizer - Prise de décision, mettez à jour votre flux de données.
-
Dans l’interface utilisateur de collecte de données, sélectionnez Flux de données, puis sélectionnez votre flux de données, par exemple Luma Mobile App.
-
Sélectionnez
pour Experience Platform et sélectionnez Modifier dans le menu contextuel. -
Dans l’écran Flux de données >
> Adobe Experience Platform, assurez-vous que Offer Decisioning, Segmentation Edge et Adobe Journey Optimizer sont activés.- Si vous prévoyez de suivre uniquement cette leçon de prise de décision et non la leçon Gestion des décisions , il n’est pas nécessaire d’activer Offer Decisioning.
- Si vous suivez la leçon Target, sélectionnez également Destinations. Voir Paramètres pour plus d’informations.
-
Pour enregistrer la configuration de votre flux de données, sélectionnez Enregistrer .
{modal="regular"}
Définition de votre schéma
-
Accédez à l’interface de collecte de données et sélectionnez Schémas dans le rail de gauche.
-
Sélectionnez Parcourir dans la barre supérieure.
-
Ouvrez le schéma Éléments d’offre personnalisés - Experience Decisioning. Ce schéma est le schéma dédié pour configurer les éléments de votre offre, leurs attributs et leurs métadonnées.
-
Ajoutez à votre schéma des groupes de champs supplémentaires qui représentent la manière dont vous souhaitez utiliser les offres dans Decisioning. Consultez la section Créer un schéma pour comprendre comment créer des schémas. Dans le cadre de cette leçon, deux groupes de champs sont créés dans la configuration de sandbox _techmarketingdemos : Offre et Métadonnées d’offre. Vous pouvez voir la structure complète du schéma ci-dessous.
- Tous les champs mediaAssets, tels que image ou imageLowRes sont de type DesignAssets et possèdent automatiquement les champs de chaîne destinationURL, edgePath, repository, sourceURL, trackedURL et type.
- Tous les autres champs sont de type Objet (par exemple offerMetadata) ou Chaîne (par exemple fullDescription).
{modal="regular"}
Vous pouvez définir votre schéma Éléments d’offre personnalisés - Experience Decisioning comme vous le souhaitez. La structure ci-dessus n’est qu’un exemple qui est utilisé pour la suite de cette leçon.
-
Veillez à sélectionner Enregistrer pour enregistrer les modifications apportées au schéma Éléments d’offre personnalisés - Experience Decisioning.
Installation de l’extension de balises Journey Optimizer
Pour que votre application fonctionne avec Journey Optimizer, vous devez mettre à jour votre propriété de balise.
- Accédez à Balises > Extensions > Catalogue.
- Ouvrez votre propriété, par exemple Luma Mobile App Tutorial.
- Sélectionnez Catalogue.
- Recherchez l’extension .
- Installez l’extension .
Lorsque vous utilisez uniquement des offres basées sur la prise de décision dans votre application, dans Installer l’extension ou Configurer l’extension, vous n’avez rien à configurer. Si vous avez déjà suivi la leçon Notifications push dans le tutoriel, vous constatez que pour l’environnement Développement, le jeu de données Jeu de données d’événement d’expérience de suivi push AJO est sélectionné dans la liste Jeu de données d’événement.
Implémentation de Journey Optimizer dans l’application
Comme nous l’avons vu 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 Installation des SDK.
-
Dans Xcode, assurez-vous que AEP Messaging est ajouté à la liste des packages dans Dépendances de packages. Voir Gestionnaire de packages Swift.
-
Accédez à Luma > Luma > AppDelegate dans le navigateur de projet Xcode.
-
Assurez-vous que
AEPMessagingfait partie de votre liste d’importations.import AEPMessaging -
Assurez-vous que
Messaging.selffait partie du tableau d’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 ]
-
Dans Android Studio, assurez-vous que aepsdk-messaging-android fait partie des dépendances dans build.gradle.kts dans Android
> Scripts Gradle. Voir Gradle. -
Accédez à
app > kotlin+java > com.adobe.luma.tutorial.android > LumaApplication dans le navigateur de projet Android Studio. -
Assurez-vous que
com.adobe.marketing.mobile.Messagingfait partie de votre liste d’importations.import import com.adobe.marketing.mobile.Messaging -
Assurez-vous que
Messaging.EXTENSIONfait partie du tableau d’extensions que vous enregistrez.code language-kotlin val extensions = listOf( Identity.EXTENSION, Lifecycle.EXTENSION, Signal.EXTENSION, Edge.EXTENSION, Consent.EXTENSION, UserProfile.EXTENSION, Places.EXTENSION, Messaging.EXTENSION, Optimize.EXTENSION, Assurance.EXTENSION )
Validation de la configuration dans Assurance
Vous n’avez pas besoin de valider la configuration pour la prise de décision dans Assurance. Decisioning n’utilise pas d’extension de balise de collecte de données Experience Platform spécifique et ne nécessite pas de package supplémentaire pour votre application. Decisioning repose sur l’extension Messaging de votre application, que vous auriez déjà dû ajouter dans le cadre des leçons Installation des SDK mobiles Adobe Experience Platform et Création et envoi de messages in-app de ce tutoriel.
Créer une configuration de canal d’expérience basée sur du code
Pour afficher des offres dans les écrans de votre application, vous devez configurer un canal d’expérience dédié basé sur du code. Ce canal d’expérience basé sur le code définit la surface (l’emplacement) dans l’application où vous affichez vos offres.
Pour créer un canal d’expérience basé sur du code.
-
Dans l’interface utilisateur de Journey Optimizer, sélectionnez
Canaux sous Administration dans le rail de gauche. -
Sélectionnez Configurations de canal dans Paramètres généraux.
-
Sélectionnez Créer une configuration de canal.
-
Dans Détails de configuration du canal :
-
Saisissez un Nom. Par exemple :
LumaMobileAppCodeBased. -
Saisissez une Description. Par exemple :
Code-based experience for Luma app used in Mobile SDK tutorial. -
Sélectionnez Expérience basée sur le code dans le menu déroulant Sélectionner le canal.
-
Sélectionnez une ou plusieurs actions marketing dans la liste Sélectionnez une ou plusieurs actions marketing. Par exemple, Personalization sur site .
-
Sélectionnez les plateformes pour lesquelles vous souhaitez configurer l’expérience basée sur le code. Pour ce tutoriel, sélectionnez ou Android ou les deux.
-
Pour :
- Saisissez ou sélectionnez ID de l’application. Par exemple, l’identifiant de votre application :
com.adobe.luma.tutorial.swiftui. - Saisissez ou sélectionnez un emplacement pour Emplacement ou chemin d’accès dans l’application. Par exemple :
offersLocation. - Saisissez une URL de prévisualisation. Par exemple :
lumatutorialswiftui://.
- Saisissez ou sélectionnez ID de l’application. Par exemple, l’identifiant de votre application :
-
Pour :
- Saisissez ou sélectionnez ID de l’application. Par exemple, l’identifiant de votre application :
com.adobe.luma.tutorial.android. - Saisissez ou sélectionnez un emplacement pour Emplacement ou chemin d’accès dans l’application. Par exemple :
offersLocation. - Saisissez une URL de prévisualisation. Par exemple :
lumatutorialandroid://default.
- Saisissez ou sélectionnez ID de l’application. Par exemple, l’identifiant de votre application :
-
Contenu
- Sélectionnez JSON pour le Format.
-
-
-
Sélectionnez Envoyer pour envoyer votre expérience basée sur le code.
Créer des offres
Dans cette section, vous allez créer des offres pour Decisioning.
-
Dans l’interface utilisateur de Journey Optimizer, sélectionnez
Catalogs dans Decisioning dans le rail de gauche. -
Sélectionnez Offres dans Catalogues pour afficher la liste des Offres.
-
Sélectionnez Créer un élément.
-
À l’étape ➊ Attributs de la création d’une offre (élément de décision) :
{modal="regular"}
-
Dans la section Attributs standard :
- Saisissez un Nom de l’offre. Par exemple :
Luma - Desiree Fitness Tee. - Saisissez une Date de début ou sélectionnez-en une en utilisant
. Par exemple :7/1/2026, 12:00 AM. - Saisissez une Date de fin ou sélectionnez-en une en utilisant
. Par exemple :12/31/2026, 12:00 AM. - Saisissez une Priorité. Par exemple :
10. - Sélectionnez une ou plusieurs balises appropriées dans le menu déroulant Balises. Par exemple : Luma - Application mobile.
- Saisissez un Nom de l’offre. Par exemple :
-
Dans la section Attributs personnalisés , saisissez les valeurs du contenu et des métadonnées de l’offre. Les données que vous pouvez saisir et la manière dont vous pouvez les saisir sont entièrement déterminées par la manière dont vous avez défini votre schéma pour les offres. Dans ce tutoriel, vous souhaitez fournir un titre, du texte et une image pour chaque offre.
-
Dans le conteneur Offre, dans le sous-conteneur Media Assets :
- Sélectionnez Ajouter depuis l’URL pour Image et saisissez une valeur appropriée pour Esaisir l’URL source. Par exemple :
https://newluma.enablementadobe.com/images/ws05-yellow_main.jpg. - Sélectionnez Ajouter à partir de l’URL pour Image (haute résolution) et saisissez une valeur appropriée pour Saisir l’URL source. Par exemple :
https://newluma.enablementadobe.com/images/ws05-yellow_main.jpg.
- Sélectionnez Ajouter depuis l’URL pour Image et saisissez une valeur appropriée pour Esaisir l’URL source. Par exemple :
-
Dans le conteneur Offre, au sein du sous-conteneur Texte :
- Saisissez une valeur pour Description complète. Par exemple :
When you're too far to turn back, thank yourself for choosing the Desiree Fitness Tee. Its ultra-lightweight, ultra-breathable fabric wicks sweat away from your body and helps keeps you cool for the distance. - Saisissez une valeur pour Titre. Par exemple :
Desiree Fitness Tee.
- Saisissez une valeur pour Description complète. Par exemple :
-
-
Sélectionnez Suivant.
-
-
À l’étape ➋ Éligibilité de la création d’une offre (élément de décision) :
{modal="regular"}
- Dans Éligibilité, assurez-vous que Tous les visiteurs est sélectionné.
- Vous n’avez pas besoin de créer de limitation dans la section Limitation.
- Sélectionnez Suivant.
-
À l’étape ➌ la révision de l’offre lors de la création d’une offre (élément de décision) :
{modal="regular"}
- Examen de l’offre. Vous pouvez utiliser
pour modifier Attributs standard, Attributs du client ou Contraintes de profil. - Sélectionnez Enregistrer.
- Examen de l’offre. Vous pouvez utiliser
-
-
Répétez l’étape 3 (Créer un élément) pour les offres supplémentaires suivantes :
table 0-row-4 1-row-4 2-row-4 3-row-4 4-row-4 Nom Titre Description complète Image et Image (haute résolution) Luma - Affirm Water BottleAffirm Water BottleYou'll stay hydrated with ease with the Affirm Water Bottle by your side or in hand. Measurements on the outside help you keep track of how much you're drinking, while the screw-top lid prevents spills. A metal carabiner clip allows you to attach it to the outside of a backpack or bag for easy access.https://newluma.enablementadobe.com/images/ug06-lb-0.jpgLuma - Aero Daily Fitness TeeAero Daily Fitness TeeNeed an everyday action tee that helps keep you dry? The Aero Daily Fitness Tee is made of 100% polyester wicking knit that funnels moisture away from your skin. Don't be fooled by its classic style; this tee hides premium performance technology beneath its unassuming look.https://newluma.enablementadobe.com/images/ms01-black_main.jpgLuma - Adrienne Trek JacketAdrienne Trek JacketYou're ready for a cross-country jog or a coffee on the patio in the Adrienne Trek Jacket. Its style is unique with stand collar and drawstrings, and it fits like a jacket should.https://newluma.enablementadobe.com/images/wj08-gray_main.jpgLuma - Juno JacketJuno JacketOn colder-than-comfortable mornings, you'll love warming up in the Juno All-Ways Performanc Jacket, designed to compete with wind and chill. Built-in Cocona™ technology aids evaporation, while a special zip placket and stand-up collar keep your neck protected.https://newluma.enablementadobe.com/images/wj06-purple_main.jpgToutes les autres valeurs, telles que Date de début, Date de fin, Priorité, Limitation, Éligibilité et d’autres, qui ne sont pas explicitement définies dans le tableau ci-dessus doivent être identiques pour toutes les offres et en fonction de ce que vous avez défini pour la première offre.
Vous devriez maintenant disposer de la liste d’offres suivante :
Création d’une collection
Pour présenter une offre à l’utilisateur de votre application mobile, vous devez créer une collection d’offres composée d’une ou de plusieurs des offres que vous avez créées. Vous utilisez des règles pour sélectionner les offres appartenant à une collection.
-
Dans l’interface utilisateur de Journey Optimizer, sélectionnez
Catalogs dans Decisioning dans le rail de gauche. -
Sélectionnez Collections dans Catalogues pour afficher la liste des Collections.
-
Sélectionnez Créer une collection.
-
Dans la section Détails :
- Saisissez un Nom pour la collection. Par exemple :
Luma - Mobile App Collection. - Saisissez une Description pour la collection. Par exemple :
Collection of Luma mobile app offers.
- Saisissez un Nom pour la collection. Par exemple :
-
Dans la section Règles de collection, sous NOMBRE D’ÉLÉMENTS :
-
Sélectionnez Cliquer pour créer un élément de décision…
-
Utilisez Sélectionner un attribut pour sélectionner un attribut.
- Dans la boîte de dialogue Sélectionner un attribut sélectionnez un attribut de décision. Par exemple Nom de l’offre.
- Sélectionnez Enregistrer.
-
Utilisez le menu déroulant Est égal à pour sélectionner une condition. Par exemple Commence par.
-
Dans le champ de texte, saisissez la valeur de la condition. Par exemple :
Luma -. Cette valeur sélectionne toutes les offres dont le nom commence parLuma -pour qu’elles fassent partie de la collection. Vous pouvez créer n’importe quel type de règle et également combiner des règles à l’aide de la règle Add.
-
-
Sélectionnez Créer pour créer la collection.
{modal="regular"}
Créer une stratégie de sélection
Une stratégie de sélection est réutilisable et se compose d’une collection associée à une contrainte d’éligibilité et à une méthode de classement permettant de déterminer les offres à afficher lorsqu’elles sont sélectionnées dans une politique de décision. La politique de décision est traitée dans la section Créer une campagne.
Dans notre implémentation, la stratégie de sélection est maintenue aussi simple que possible.
-
Dans l’interface utilisateur de Journey Optimizer, sélectionnez
Configuration de la stratégie dans Prise de décision dans le rail de gauche. -
Sélectionnez Stratégies de sélection.
-
Sélectionnez Créer une stratégie de sélection. Dans la boîte de dialogue Créer une stratégie de sélection :
-
Saisissez un Nom de la stratégie de sélection. Par exemple :
Luma - Mobile App Selection Strategy. -
Utilisez Sélectionner la collection pour sélectionner la collection pour la stratégie de sélection.
- Dans la boîte de dialogue Collection sélectionnez une collection. Par exemple : Luma - Collection d’applications mobiles.
- Sélectionnez Enregistrer.
-
Assurez-vous que Tous les visiteurs est sélectionné pour Éligibilité.
-
Assurez-vous que Priorité des offres est sélectionné pour Méthode de classement.
-
-
Sélectionnez Créer pour créer la stratégie de sélection.
Créer une campagne
Vous allez à présent créer une campagne qui utilise à la fois votre collection d’offres et votre canal de configuration de l’expérience basé sur le code. Les campagnes sont des actions marketing coordonnées qui diffusent du contenu à une audience spécifique sur un ou plusieurs canaux.
Dans le cadre de la campagne, vous créez également une politique de décision. Les politiques de décision sont des conteneurs pour vos offres qui tirent profit du moteur de prise de décision afin de renvoyer dynamiquement le meilleur contenu à diffuser pour chaque membre de l’audience. Leur objectif est de sélectionner les meilleures offres pour chaque profil, tandis que la création de campagne et de parcours vous permet d’indiquer comment les éléments de décision sélectionnés doivent être présentés, y compris les attributs d’élément à inclure dans le message.
-
Dans l’interface utilisateur de Journey Optimizer, sélectionnez
Campagnes dans Gestion des Parcours dans le rail de gauche. -
Sélectionnez Créer une campagne.
-
Dans la boîte de dialogue Créer votre campagne, sélectionnez Planifié - Marketing comme type de campagne à créer.
-
Sélectionnez Confirmer.
-
Dans l’onglet Propriétés de l’écran **Campagne - *horodatage ***:
- Saisissez un Nom pour la campagne. Par exemple :
Luma - Mobile App Offers. - Vous pouvez éventuellement saisir une Description.
- Saisissez un Nom pour la campagne. Par exemple :
-
Sélectionnez Actions.
-
Dans la section Actions :
- Sélectionnez
Ajouter une action. Dans le menu déroulant, sélectionnez Expérience basée sur le code. - Dans la section Configuration d’action Expérience basée sur le code, sélectionnez votre configuration de canal d’expérience basée sur le code LumaMobileAppCodeBased dans le menu déroulant Configuration de canal d’expérience basée sur le code.
- Sélectionnez
-
Ne modifiez pas les autres paramètres Optimisation, Langues et Gestion des conflits.
-
-
Sélectionnez Contenu.
-
Dans l’écran Expérience basée sur le code, sélectionnez
Modifier le code. -
Dans l’écran Expérience basée sur le code | Configuration de canal : LumaMobileAppCodeBased :
-
Dans l’éditeur, saisissez le code JSON suivant :
code language-json { "version": "1.0", "offers": [ ] } -
Sélectionnez
Politique de décision dans le deuxième rail de gauche.-
Sélectionnez
Ajouter une politique de décision. -
Dans l’assistant de boîte de dialogue Créer une politique de décision, à l’étape ➊ Détails :
- Saisissez un Nom pour la politique de décision. Par exemple :
Luma - Mobile App Decision Policy. - Sélectionnez ou saisissez
2pour le Nombre d’éléments. Cette entrée garantit le renvoi de deux offres. - Sélectionnez Suivant.
- Saisissez un Nom pour la politique de décision. Par exemple :
-
Dans l’assistant de dialogue Créer une politique de décision, à l’étape ➋ Stratégies :
-
Dans la Séquence de stratégie, sélectionnez
Ajouter pour ajouter une séquence de stratégie. -
Dans le menu contextuel, sélectionnez Stratégie de sélection.
- Dans la boîte de dialogue Ajouter une stratégie de sélection, sélectionnez la stratégie de sélection que vous avez créée précédemment, Luma - Stratégie de sélection des applications mobiles.
- Sélectionnez Enregistrer.
-
Sélectionnez Suivant.
-
-
Dans l’assistant de boîte de dialogue Créer une politique de décision, à l’étape ➌ Réviser, passez en revue votre politique de décision.
- Sélectionnez Créer pour créer la politique de décision.
-
-
Maintenant qu’une politique de décision est disponible, vous pouvez utiliser le rail Luma - Politique de décision pour les applications mobiles pour insérer les éléments appropriés de cette politique de décision dans l’éditeur JSON.
-
Dans l’éditeur JSON, ajoutez une nouvelle ligne entre
[et]. -
Dans le rail Luma - Politique de décision pour les applications mobiles :
- Sélectionnez
Insérer une politique pour insérer la politique de décision au format JSON dans l’éditeur. - Positionnez le curseur dans l’éditeur sur une ligne avant le
de fermeture{{/each}}. - Sélectionnez nom-client (par exemple : _techmarketingdemos) > Offre > Text content>Title et + . Le titre de l’offre est ainsi ajouté au fichier JSON en tant qu’élément de
title. - Sélectionnez nom-client > Offre > Contenu textuel>> Description complète puis+. Cette action ajoute la description de l’offre au fichier JSON en tant qu’élément de
text. - Sélectionnez nom-client > Offre > Ressources multimédias > Image>sourceURL et + . Cela ajoute l’URL source de l’image haute résolution de l’offre au fichier JSON en tant qu’élément
image.
Votre fichier JSON final doit ressembler à ce qui suit, avec des valeurs mises à jour pour l’identifiant de la politique de décision et les noms des clients.
Assurez-vous que vos éléments
title,textetimageJSON sont enveloppés sous la forme d’un objet à l’aide de{ }. Et que vous insérez un,après cet objet et juste avant{{/each}}dans le JSON. - Sélectionnez
-
-
Utilisez
Validate pour valider le fichier JSON. -
Sélectionnez Enregistrer et fermer.
-
-
-
Sélectionnez Réviser pour activer.
-
L’écran Examiner pour activer (Luma - Offres d’applications mobiles) donne un aperçu de votre campagne.
-
Si aucun avertissement ou erreur ne s’affiche, sélectionnez Activer pour activer la campagne. Dans la boîte de dialogue de confirmation, sélectionnez à nouveau Activer.
-
Dans la liste des campagnes, vous devriez voir la campagne passer du statut
Activating à Processing en Live.
Désormais, votre campagne d’expérience basée sur le code est active et vous pouvez mettre à jour l’application mobile afin d’utiliser la campagne d’expérience basée sur le code pour effectuer le rendu des offres sur l’emplacement ou la surface définis dans la configuration du canal d’expérience basée sur le code.
Mise en œuvre d’offres dans votre application
Comme nous l’avons vu dans les leçons précédentes, l’installation d’une extension de balise mobile fournit uniquement la configuration . Vous devez ensuite vous assurer que l’extension de messagerie est configurée pour votre application. Si ces étapes ne sont pas claires, consultez la section Installation des SDK.
-
Dans Xcode, assurez-vous que AEP Messaging est ajouté à la liste des packages dans Dépendances de packages. Voir Gestionnaire de packages Swift.
-
Accédez à Luma > Luma > AppDelegate dans le navigateur de projet Xcode.
-
Assurez-vous que
AEPMessagingfait partie de votre liste d’importations.code language-swift import AEPMessaging -
Assurez-vous que
Messaging.selffait partie du tableau d’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 ] -
Accédez à Luma > Luma > Model > Data > général dans le navigateur de projet Xcode. Assurez-vous que
showDecisioningest défini surtrueetshowPersonalizationsurfalsedans la sectionconfig.code language-json ... "showPersonalisation": false, "showDecisioning": true, ...Ces paramètres garantissent que Decisioning est utilisé pour les offres dans l’onglet Personnalisation de l’application.
-
Accédez à Luma > Luma > Model > Data > général dans le navigateur de projet Xcode. Assurez-vous qu’une section de
decisioningavec un élément desurfaceest configurée, en identifiant l’emplacement ou la surface que vous avez configurée pour votre canal d’expérience basé sur le code. Par exemple :offersLocation.code language-json "decisioning": { "surface": "offersLocation" }, -
Accédez à Luma > Luma > Utils > MobileSDK dans le navigateur de projet Xcode. Recherchez la fonction
func updatePropositionsForSurface(). Ajoutez le code suivant :code language-swift // get the propositions for the surfaces configured. Logger.aepMobileSDK.info("MobileSDK - updatePropositionsForSurfaces: Updating \(surfaces.count) surface(s)") for surface in surfaces { Logger.aepMobileSDK.info("MobileSDK - updatePropositionsForSurfaces: Surface URI: \(surface.uri)") } // Call the Messaging extension API to fetch propositions Messaging.updatePropositionsForSurfaces(surfaces) Logger.aepMobileSDK.info("MobileSDK - updatePropositionsForSurfaces: Update triggered successfully")Cette fonction :
- obtient les propositions pour les surfaces.
Dans cette implémentation, une seule surface est configurée et utilisée. Le code nécessite des mises à jour si vous souhaitez gérer plusieurs surfaces configurées.
-
Accédez à Luma > Luma > Views > Personalization > EdgeDecisioningOffersView dans le navigateur de projet Xcode. Recherchez la fonction
func fetchPropositions() asyncet inspectez le code de cette fonction. La partie la plus importante de cette fonction est l’appel APIMessaging.getPropositionsForSurfaces([surface]) { propositionsDict, error in, qui- récupère les propositions du profil actuel en fonction de la surface,
- récupère l’offre de la proposition,
- déplie le contenu de l’offre (à l’aide de la fonction
parseCodeBasedContent) afin qu’elle puisse être affichée correctement dans l’application.
-
Toujours en EdgeDecisioningOffersView, découvrez comment dans le .
taskmodifier :- Les propositions sont mises à jour à l’aide de
self.updatePropositionsForSurface(). - Une brève attente est mise en œuvre pour que le réseau Edge réponde et mette en cache les propositions.
- Les propositions mises en cache sont récupérées à l’aide de
await self.fetchPropositions.
- Les propositions sont mises à jour à l’aide de
-
Dans Android Studio, assurez-vous que aepsdk-optimized-android fait partie des dépendances dans build.gradle.kts (module :app) dans Android
> Scripts Gradle. Voir Gradle. -
Accédez à
> app > kotlin+java > com.adobe.luma.tutorial.android > MainActivity dans le navigateur d’Android Studio. -
Assurez-vous que
Optimizefait partie de votre liste d’importations.code language-kotlin import com.adobe.marketing.mobile.optimize.Optimize -
Assurez-vous que
Optimize.EXTENSIONfait partie du tableau d’extensions que vous enregistrez.code language-kotlin val extensions = listOf( Identity.EXTENSION, Lifecycle.EXTENSION, Signal.EXTENSION, Edge.EXTENSION, Consent.EXTENSION, UserProfile.EXTENSION, Places.EXTENSION, Messaging.EXTENSION, Optimize.EXTENSION, Assurance.EXTENSION ) -
Accédez à
> app > assets > data > general.json dans le navigateur de projet. Assurez-vous queshowDecisioningest défini surtrueetshowPersonalizationsurfalsedans la sectionconfig.code language-json ... "showPersonalisation": false, "showDecisioning": true, ...Ces paramètres garantissent que Decisioning est utilisé pour les offres dans l’onglet Personnalisation de l’application.
-
Accédez à
> app > assets > data > general.json dans le navigateur de projet. Assurez-vous qu’une section dedecisioningavec un élément desurfaceest configurée, en identifiant l’emplacement ou la surface que vous avez configurée pour votre canal d’expérience basé sur le code. Par exemple :offersLocation.code language-json "decisioning": { "surface": "offersLocation" }, -
Accédez à
> app > kotlin+java > com.adobe.luma.tutorial.android > models > MobileSDK dans le navigateur d’Android Studio. Recherchez la fonctionsuspend fun updatePropositionsForSurfaces(surfaces: List<Surface>). Ajoutez le code suivant :code language-kotlin // get the propositions for the surfaces configured withContext(Dispatchers.IO) { Log.i("MobileSDK", "updatePropositionsForSurfaces: Updating ${surfaces.size} surface(s)") surfaces.forEach { surface -> Log.i("MobileSDK", "updatePropositionsForSurfaces: Surface URI: ${surface.uri}") } Messaging.updatePropositionsForSurfaces(surfaces) Log.i("MobileSDK", "updatePropositionsForSurfaces: Update triggered successfully") }Cette fonction :
- obtient les propositions pour les surfaces.
Dans cette implémentation, une seule surface est configurée et utilisée. Le code nécessite des mises à jour si vous souhaitez gérer plusieurs surfaces configurées.
-
Accédez à
> app > kotlin+java > com.adobe.luma.tutorial.android > views > EdgeDecisioningOffersView.kt dans le navigateur de projet. Recherchez la fonctionsuspend fun fetchPropositionsForSurface(surface: Surface): DecisioningResult = withContext(Dispatchers.IO)et inspectez le code de cette fonction. La partie la plus importante de cette fonction est l’appel APIMessaging.getPropositionsForSurfaces(listOf(surface)) { propositionsMap -> propositionsMap[surface]?.let { propositions ->, qui- récupère les propositions du profil actuel en fonction de la surface,
- récupère l’offre de la proposition,
- déplie le contenu de l’offre (à l’aide de la fonction
parseCodeBasedContent) afin qu’elle puisse être affichée correctement dans l’application.
-
Toujours en EdgeDecisioningOffersView.kt, découvrez comment fonctionne dans l’
LaunchedEffect:- Les propositions sont mises à jour à l’aide de
MobileSDK.shared.updatePropositionsForSurfaces(listOf(surface)). - Un bref délai est implémenté pour que le réseau Edge réponde et mette en cache les propositions.
- Les propositions mises en cache sont récupérées à l’aide de
fetchPropositionsForSurface(surface).
- Les propositions sont mises à jour à l’aide de
Validation à l’aide de l’application
-
Recréez et exécutez l’application dans le simulateur ou sur un appareil physique à partir de Xcode, à l’aide de
. -
Accédez à l’onglet Personalization.
-
Faites défiler l’écran jusqu’en haut pour afficher deux offres aléatoires de la collection que vous avez définie dans la mosaïque Surface Offers Location.
{width="300"}
Les offres sont aléatoires, car vous avez donné à toutes les offres la même priorité et le classement des offres est basé sur la priorité.
-
Recréez et exécutez l’application dans le simulateur ou sur un appareil physique à partir d’Android Studio, à l’aide de
. -
Accédez à l’onglet Personalization.
-
Faites défiler l’écran jusqu’en haut pour afficher deux offres aléatoires dans la zone supérieure de la collection que vous avez définie dans la mosaïque Surface Offers Location.
{width="300"}
Les offres sont aléatoires, car vous avez donné à toutes les offres la même priorité et le classement des offres est basé sur la priorité.
Validation de la mise en œuvre dans Assurance
Pour valider l’implémentation des offres dans Assurance :
-
Consultez la section instructions de configuration pour connecter votre simulateur ou votre appareil à Assurance.
-
Sélectionnez Événements dans le rail de gauche.
-
Recherchez les événements réponse des propositions de message dans la liste des événements.
-
Dans le volet de droite, développez un événement de ce type : ACPExtensionEventData > propositions > 0 > items > 0 > data > content > offers. Vous voyez deux offres 0 et 1 contenant chacune les données attendues.
Étapes suivantes
Vous devriez maintenant disposer de tous les outils nécessaires pour commencer à ajouter d’autres fonctionnalités à votre implémentation Journey Optimizer - Decisioning. Par exemple :
- appliquez différents paramètres à vos offres (par exemple, priorité, limitation)
- collecter des attributs de profil dans l’application (voir Profil) et les utiliser pour créer des audiences. Utilisez ensuite ces audiences dans le cadre des règles d’éligibilité de votre prise de décision.
- combinez plusieurs surfaces.
Suivant : Effectuer des tests A/B