Création et affichage d’offres avec la gestion des décisions

Découvrez comment afficher les offres de Journey Optimizer Decision Management dans vos applications mobiles avec Experience Platform Mobile SDK.

La gestion des décisions de Journey Optimizer vous permet de fournir à vos clients la meilleure offre et la meilleure expérience possible à tous les points de contact au bon moment. Une fois la conception réalisée, ciblez votre audience avec des offres personnalisées.

Architecture {modal="regular"}

La gestion des décisions facilite la personnalisation avec une bibliothèque centrale d’offres marketing et un moteur de décision qui applique des règles et des contraintes aux profils en temps réel riches créés par Adobe Experience Platform. Par conséquent, il vous permet d’envoyer à vos clients la bonne offre au bon moment. Voir À propos de la gestion des décisions pour plus d’informations.

NOTE
Cette leçon est facultative et s’applique uniquement aux utilisateurs de Journey Optimizer qui cherchent à utiliser la fonctionnalité de gestion des décisions pour afficher des offres dans une application mobile.

Conditions préalables

Objectifs d’apprentissage

Dans cette leçon, vous allez :

  • Mettez à jour votre configuration Edge pour la gestion des décisions.
  • Mettez à jour la propriété de balise avec l’extension Offer Decisioning et Target.
  • Mettez à jour votre schéma pour capturer les événements de proposition.
  • Validez la configuration dans Assurance.
  • Créez une décision d’offre basée sur les offres dans Journey Optimizer - Gestion des décisions.
  • Mettez à jour votre application pour enregistrer l’extension Optimizer.
  • Implémentez des offres à partir de la gestion des décisions dans votre application.

Configuration

TIP
Si vous avez déjà configuré votre environnement dans le cadre de la leçon Configuration des tests A/B avec Target, il se peut que vous ayez déjà effectué certaines des étapes de cette section de 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 vers Journey Optimizer - Gestion des décisions, mettez à jour votre flux de données.

  1. 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.

  2. Sélectionnez Plus pour Experience Platform et sélectionnez Modifier Modifier dans le menu contextuel.

  3. Dans l’écran Flux de données > Dossier > Adobe Experience Platform, assurez-vous que Offer Decisioning, Segmentation Edge et Adobe Journey Optimizer sont sélectionnés. Si vous suivez la leçon Target, sélectionnez également Destinations Personalization. Voir Paramètres Adobe Experience Platform pour plus d'informations.

  4. Pour enregistrer la configuration de votre flux de données, sélectionnez Enregistrer .

    configuration du train de données AEP {modal="regular"}

Installation de l’extension Offer Decisioning and Target tags

  1. Accédez à Balises recherchez la propriété de balise mobile et ouvrez la propriété.

  2. Sélectionnez Extensions.

  3. Sélectionnez Catalogue.

  4. Recherchez l’extension Offer Decisioning et Target.

  5. Installez l’extension . L’extension ne nécessite pas de configuration supplémentaire.

    Ajout d’une extension Offer Decisioning and Target {modal="regular"}

Mise à jour du schéma

  1. Accédez à l’interface de collecte de données et sélectionnez Schémas dans le rail de gauche.

  2. Sélectionnez Parcourir dans la barre supérieure.

  3. Sélectionnez votre schéma pour l’ouvrir.

  4. Dans l’éditeur de schémas, sélectionnez Ajouter Ajouter en regard de Groupes de champs .

  5. Dans la boîte de dialogue Ajouter des groupes de champs, Rechercher recherchez des proposition, sélectionnez Événement d’expérience - Interactions de proposition et sélectionnez Ajouter des groupes de champs. Ce groupe de champs collecte les données d’événement d’expérience relatives aux offres, telles que l’offre présentée, dans le cadre de quelle collection, décision et autres paramètres (voir plus loin dans cette leçon) ? Mais qu'en est-il de l'offre ? Est-il affiché, a-t-il interagi avec, a-t-il été ignoré, etc. ?

    Proposition {modal="regular"}

  6. Sélectionnez Enregistrer pour enregistrer les modifications apportées à votre schéma.

Validation de la configuration dans Assurance

Pour valider votre configuration dans Assurance :

  1. Accédez à l’interface utilisateur d’Assurance.

  2. Sélectionnez Configurer dans le rail de gauche et sélectionnez Ajouter en regard de Valider la configuration sous OFFER DECISIONING ET TARGET.

  3. Sélectionnez Enregistrer.

  4. Sélectionnez Valider la configuration dans le rail de gauche. La configuration des trains de données et de SDK dans votre application est validée.

    Validation d'AJO Decisioning {modal="regular"}

Créer un emplacement

Avant de pouvoir créer des offres, vous devez définir comment et où elles peuvent être placées dans l’application mobile. Dans la gestion des décisions, vous définissez des emplacements à cet effet ainsi qu’un emplacement pour le canal mobile prenant en charge une payload JSON :

  1. Dans l’interface utilisateur de Journey Optimizer, sélectionnez Composants Composants sous GESTION DES DÉCISIONS dans le rail de gauche.

  2. Sélectionnez Emplacements dans la barre supérieure.

  3. Si aucun emplacement nommé Mobile JSON, Mobile en tant que Type de canal et JSON en tant que Type de contenu n’est répertorié, vous devez créer un emplacement. Sinon, continuez à Créer des offres.

Pour créer l’emplacement JSON mobile :

  1. Sélectionnez Ajouter Créer un emplacement.

    1. dans la section Détails, saisissez Mobile JSON comme Nom, sélectionnez Mobile depuis Type de canal et JSON depuis Type de contenu.
    2. Sélectionnez Enregistrer pour enregistrer l’emplacement.

    Créer un emplacement {modal="regular"}

Créer des offres

  1. Dans l’interface utilisateur de Journey Optimizer, sélectionnez Offres Offres dans GESTION DES DÉCISIONS dans le rail de gauche.

  2. Dans l’écran Offres, sélectionnez Parcourir pour afficher la liste des offres.

  3. Sélectionnez Créer une offre.

  4. Dans la boîte de dialogue Nouvelle offre, sélectionnez Offre personnalisée et cliquez sur Suivant.

  5. À l’étape Détails de Créer une offre personnalisée :

    1. Saisissez un Nom pour l’offre, par exemple Luma - Juno Jacket, ainsi qu’un Date et heure de début et un Date et heure de fin. Seules les offres comprises dans ces dates sont sélectionnées par le moteur de décision.

    2. Sélectionnez Suivant.

      Offres - Détails {modal="regular"}

  6. À l'étape Ajouter des représentations de Créer une offre personnalisée :

    1. Sélectionnez Mobile Mobile dans la liste Canal, puis sélectionnez Mobile JSON dans la liste Emplacement.

    2. Sélectionnez Personnalisé pour Contenu.

    3. Sélectionnez Ajouter du contenu. Dans la boîte de dialogue Ajouter une personnalisation :

      1. Si un sélecteur Mode est disponible, assurez-vous qu’il est défini sur JSON.

      2. Saisissez le code JSON suivant :

        code language-json
        {
            "title": "Juno Jacket",
            "text": "On colder-than-comfortable mornings, you'll love warming up in the Juno All-Ways Performance 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.",
            "image": "https://luma.enablementadobe.com/content/dam/luma/en/products/women/tops/jackets/wj06-purple_main.jpg"
        }
        
      3. Sélectionnez Enregistrer.
        Offres - Contenu personnalisé {modal="regular"}

    4. Sélectionnez Suivant.

      Représentations des offres {modal="regular"}

  7. À l'étape Ajouter des contraintes de l'Créer une offre personnalisée :

    1. Définissez Priorité sur 10.

    2. Désactivez le bouton (bascule) Inclure la limitation.

    3. Sélectionnez Suivant.

      Offres - Contraintes {modal="regular"}

  8. À l’étape Révision de l’Création d’une offre personnalisée :

    1. Vérifiez l’offre, puis sélectionnez Terminer.
    2. Dans la boîte de dialogue Enregistrer l’offre, sélectionnez Enregistrer et approuver.
  9. Répétez les étapes 3 à 8 pour créer quatre offres supplémentaires avec des noms et un contenu différents. Toutes les autres valeurs de configuration, par exemple la date et l’heure de début ou la priorité, sont similaires à la première offre que vous avez créée. Vous pouvez rapidement créer des offres en double et les modifier.

    1. Dans l’interface utilisateur de Journey Optimizer, sélectionnez Offres Offres dans le rail de gauche, puis sélectionnez Offres dans la barre supérieure.

    2. Sélectionnez la ligne de l’offre que vous avez créée.

    3. Dans le volet de droite, sélectionnez Plus Autres actions et dans le menu contextuel, sélectionnez Dupliquer Dupliquer.

      Utilisez le tableau ci-dessous pour définir les quatre autres offres.

      table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 layout-fixed
      Nom de l’offre Contenu de l’offre au format JSON
      Luma - Bouteille d'eau Affirm { "title": "Affirm Water Bottle", "text": "You'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.", "image": "https://luma.enablementadobe.com/content/dam/luma/en/products/gear/fitness-equipment/ug06-lb-0.jpg" }
      Luma - T-shirt de fitness Désiré { "title": "Desiree Fitness Tee", "text": "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.", "image": "https://luma.enablementadobe.com/content/dam/luma/en/products/women/tops/tees/ws05-yellow_main.jpg" }
      Luma - Veste Adrienne Trek { "title": "Adrienne Trek Jacket", "text": "You'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.", "image": "https://luma.enablementadobe.com/content/dam/luma/en/products/women/tops/jackets/wj08-gray_main.jpg" }
      Luma - T-shirt de remise en forme quotidienne Aero { "title": "Aero Daily Fitness Tee", "text": "Need 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.", "image": "https://luma.enablementadobe.com/content/dam/luma/en/products/men/tops/tees/ms01-black_main.jpg" }
  10. La dernière étape consiste à créer une offre de secours, c’est-à-dire une offre envoyée aux clients s’ils ne sont pas éligibles à d’autres offres.

    1. Sélectionnez Créer une offre.

    2. Dans la boîte de dialogue Nouvelle offre, sélectionnez Offre personnalisée puis sélectionnez Suivant.

    3. À l’étape Détails de Créer une offre de secours, saisissez un Nom pour l’offre, par exemple Luma - Fallback Offer, puis sélectionnez Suivant.

    4. À l'étape Ajouter des représentations de Créer une offre de secours :

      1. Sélectionnez Mobile Mobile dans la liste Canal, puis sélectionnez Mobile JSON dans la liste Emplacement.

      2. Sélectionnez Personnalisé pour Contenu.

      3. Sélectionnez Ajouter du contenu.

      4. Dans la boîte de dialogue Ajouter une personnalisation, saisissez le code JSON suivant et sélectionnez Enregistrer :

        code language-json
        {
           "title": "Luma",
           "text": "Your store for sports wear and equipment.",
           "image": "https://luma.enablementadobe.com/content/dam/luma/en/logos/Luma_Logo.png"
        }
        
      5. Sélectionnez Suivant.

  11. À l’étape Réviser de Créer une offre de secours :

    1. Vérifiez l’offre, puis sélectionnez Terminer.
    2. Dans la boîte de dialogue Enregistrer l’offre, sélectionnez Enregistrer et approuver.

Vous devriez maintenant disposer de la liste d’offres suivante :
Liste des offres {modal="regular"}

Création d’une collection

Pour présenter une offre à l’utilisateur de votre application mobile, vous devez définir une collection d’offres composée d’une ou de plusieurs des offres que vous avez créées.

  1. Dans l’interface utilisateur de Journey Optimizer, sélectionnez Offres dans le rail de gauche.

  2. Sélectionnez Collections dans la barre supérieure.

  3. Sélectionnez Ajouter Créer une collection.

  4. Dans la boîte de dialogue Nouvelle collection, saisissez un Nom pour votre collection, par exemple Luma - Mobile App Collection, sélectionnez Créer une collection statique, puis cliquez sur Suivant.

  5. Dans Luma - Mobile App Collection, sélectionnez les offres à inclure dans la collection. Pour ce tutoriel, sélectionnez les cinq offres que vous avez créées. Vous pouvez facilement filtrer la liste à l’aide du champ de recherche, par exemple en saisissant Luma.

  6. Sélectionnez Enregistrer.

    Offres - Collection {modal="regular"}

Création d’une décision

La dernière étape consiste à définir une décision, c'est-à-dire la combinaison d'une ou de plusieurs portées de décision et de votre offre de secours.

Une portée de décision est la combinaison d’un emplacement spécifique (par exemple HTML dans un e-mail ou JSON dans une application mobile) et d’un ou plusieurs critères d’évaluation.

Un critère d’évaluation est la combinaison des éléments suivants :

  • une collection d’offres,
  • règles d’éligibilité : par exemple, l’offre est-elle disponible uniquement pour une audience spécifique,
  • une méthode de classement : lorsque plusieurs offres sont disponibles, quelle méthode utilisez-vous pour les classer (par exemple par priorité d’offre, à l’aide d’une formule ou d’un modèle d’IA).

Consultez la section Étapes clés de création et de gestion des offres si vous souhaitez comprendre comment les emplacements, les règles, les classements, les offres, les représentations, les collections, les décisions, etc. interagissent et sont liés les uns aux autres. Cette leçon se concentre uniquement sur l’utilisation du résultat d’une décision plutôt que sur la flexibilité de la définition des décisions dans Journey Optimizer - Gestion des décisions.

  1. Dans l’interface utilisateur de Journey Optimizer, sélectionnez Offres dans le rail de gauche.

  2. Sélectionnez Décisions dans la barre supérieure.

  3. Sélectionnez Ajouter Créer une décision.

  4. À l'étape Détails de Créer une nouvelle décision d'offre :

    1. Saisissez un Nom pour la décision, par exemple Luma - Mobile App Decision, saisissez Date et heure de début et Date et heure de fin.
    2. Sélectionnez Suivant.
  5. À l’étape Ajouter des portées de décision de Créer une décision d’offre :

    1. Sélectionnez Mobile JSON dans la liste Emplacement.

    2. Dans la mosaïque Critères d’évaluation, sélectionnez Ajouter Ajouter.

      1. Dans la boîte de dialogue Ajouter une collection d’offres, sélectionnez votre collection d’offres. Par exemple : Luma - Mobile App Collection.

      2. Sélectionnez Ajouter.

        Décision - Sélectionner une collection {modal="regular"}

    3. Assurez-vous que Aucun est sélectionné pour Éligibilité et Priorité des offres est sélectionné en tant que Méthode de classement.

    4. Sélectionnez Suivant.

      Portées des décision {modal="regular"}

  6. À l'étape Ajouter une offre de secours de Créer une nouvelle décision d'offre :

    1. Sélectionnez votre offre de secours, par exemple la Luma - Fallback offer.
    2. Sélectionnez Suivant.
  7. À l'étape Résumé de Créer une nouvelle décision d'offre :

    1. Sélectionnez Terminer.
    2. Dans la boîte de dialogue Enregistrer la décision d’offre, sélectionnez Enregistrer et activer.
    3. Dans l’onglet Décisions, votre décision apparaît avec le statut En ligne.

Votre décision d’offre, composée d’un ensemble d’offres, est maintenant prête à l’emploi. Pour utiliser la décision dans votre application, vous devez faire référence dans votre code à la portée de décision.

  1. Dans l’interface utilisateur de Journey Optimizer, sélectionnez Offres.

  2. Sélectionnez Décisions dans la barre supérieure.

  3. Sélectionnez votre décision, par exemple Luma - Mobile App Decision.

  4. Dans la mosaïque Portées des décision, sélectionnez Copier Copier.

  5. Dans le menu contextuel, sélectionnez Portée de décision.

    Copier la portée de décision {modal="regular"}

  6. Utilisez n’importe quel éditeur de texte pour coller la portée de décision en vue d’une utilisation ultérieure. La portée de décision présente le format JSON suivant.

    code language-json
    {
        "xdm:activityId":"xcore:offer-activity:xxxxxxxxxxxxxxx",
        "xdm:placementId":"xcore:offer-placement:xxxxxxxxxxxxxxx"
    }
    

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 installer et enregistrer le SDK d’optimisation. Si ces étapes ne sont pas claires, consultez la section Installation des SDK.

NOTE
Si vous avez terminé la section Installation des SDK, le SDK est déjà installé et vous pouvez ignorer cette étape.
iOS
  1. Dans Xcode, assurez-vous que AEP Optimize est ajouté à la liste des packages dans les dépendances de packages. Voir Gestionnaire de packages Swift.

  2. Accédez à Luma > Luma > AppDelegate dans le navigateur de projet Xcode.

  3. Assurez-vous que AEPOptimize fait partie de votre liste d’importations.

    code language-swift
    import AEPOptimize
    
  4. Assurez-vous que Optimize.self fait 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
    ]
    
  5. Accédez à Luma > Luma > Model > Data > décisions dans le navigateur de projet Xcode. Mettez à jour les valeurs activityId et placementId avec les détails de la portée de décision que vous avez copiés à partir de l’interface de Journey Optimizer.

  6. Accédez à Luma > Luma > Utils > MobileSDK dans le navigateur de projet Xcode. Recherchez la fonction func updatePropositionOD(ecid: String, activityId: String, placementId: String, itemCount: Int) async. Ajoutez le code suivant :

    code language-swift
    // set up the XDM dictionary, define decision scope and call update proposition API
    Task {
       let ecid = ["ECID" : ["id" : ecid, "primary" : true] as [String : Any]]
       let identityMap = ["identityMap" : ecid]
       let xdmData = ["xdm" : identityMap]
       let decisionScope = DecisionScope(activityId: activityId, placementId: placementId, itemCount: UInt(itemCount))
       Optimize.clearCachedPropositions()
       Optimize.updatePropositions(for: [decisionScope], withXdm: xdmData) { data, error in
             if let error = error {
                Logger.aepMobileSDK.error("MobileSDK - updatePropositionsAT: Error updating propositions: \(error.localizedDescription)")
             }
       }
    }
    

    Cette fonction :

    • configure un xdmData de dictionnaire XDM, contenant l’ECID pour identifier le profil pour lequel vous devez présenter les offres.

    • définit decisionScope, un objet qui repose sur la décision que vous avez définie dans l’interface Journey Optimizer - Gestion des décisions et qui est défini à l’aide de la portée de décision copiée à partir de Créer une décision. L’application Luma utilise un fichier de configuration (decisions.json) qui récupère les paramètres de l’étendue en fonction du format JSON suivant :

      code language-json
      "scopes": [
          {
              "name": "name of the scope",
              "activityId": "xcore:offer-activity:xxxxxxxxxxxxxxx",
              "placementId": "xcore:offer-placement:xxxxxxxxxxxxxxx",
              "itemCount": 2
          }
      ]
      

      Cependant, vous pouvez utiliser n’importe quel type d’implémentation pour vous assurer que les API Optimize obtiennent les paramètres appropriés (activityId, placementId et itemCount), afin de construire un objet DecisionScope valide pour votre implémentation.
      À titre d’information : les autres valeurs-clés du fichier decisions.json sont destinées à une utilisation ultérieure et ne sont pas pertinentes et utilisées actuellement dans cette leçon et dans le cadre du tutoriel.

    • appelle deux API : Optimize.clearCachePropositions et Optimize.updatePropositions. Ces fonctions effacent toutes les propositions mises en cache et mettent à jour les propositions pour ce profil.

  7. Accédez à Luma > Luma > Views > Personalization > EdgeOffersView dans le navigateur de projet Xcode. Recherchez la fonction func onPropositionsUpdateOD(activityId: String, placementId: String, itemCount: Int) async et inspectez le code de cette fonction. La partie la plus importante de cette fonction est l’appel API Optimize.onPropositionsUpdate, qui

    • récupère les propositions du profil actif en fonction de la portée de décision (que vous avez définie dans Journey Optimizer - Gestion des décisions),
    • récupère l'offre de la proposition,
    • déplie le contenu de l’offre afin qu’elle puisse être affichée correctement dans l’application, et
    • déclenche l'action displayed() sur l'offre qui renvoie un événement à l'Edge Network informant de l'affichage de l'offre.
  8. Toujours en EdgeOffersView, ajoutez le code suivant au modificateur .onFirstAppear. Ce code garantit que le rappel pour la mise à jour des offres n’est enregistré qu’une seule fois.

    code language-swift
    // Invoke callback for offer updates
    Task {
        await self.onPropositionsUpdateOD(activityId: decision.activityId, placementId: decision.placementId, itemCount: decision.itemCount)
    }
    
  9. Toujours dans EdgeOffersView, ajoutez le code suivant au modificateur .task. Ce code met à jour les offres lors de l’actualisation de la vue.

    code language-swift
    // Clear and update offers
    await self.updatePropositionsOD(ecid: currentEcid, activityId: decision.activityId, placementId: decision.placementId, itemCount: decision.itemCount)
    
Android
  1. Dans Android Studio, assurez-vous que aepsdk-optimized-android fait partie des dépendances dans build.gradle.kts (module :app) dans Android ChevronDown > Scripts Gradle. Voir Gradle.

  2. Accédez à Android ChevronDown > app > kotlin+java > com.adobe.luma.tutorial.android > MainActivity dans le navigateur d’Android Studio.

  3. Assurez-vous que Optimize fait partie de votre liste d’importations.

    code language-kotlin
    import com.adobe.marketing.mobile.optimize.Optimize
    
  4. Assurez-vous que Optimize.EXTENSION fait 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
    )
    
  5. Accédez à Android ChevronDown > app > assets > data > decisions.json dans le navigateur de projet Xcode. Mettez à jour les valeurs activityId et placementId avec les détails de la portée de décision que vous avez copiés à partir de l’interface de Journey Optimizer.

  6. Accédez à Android ChevronDown > app > kotlin+java > com.adobe.luma.tutorial.android > models > MobileSDK dans le navigateur d’Android Studio. Recherchez la fonction suspend fun updatePropositionsOD(ecid: String, activityId: String, placementId: String, itemCount: Int) . Ajoutez le code suivant :

    code language-kotlin
    // set up the XDM dictionary, define decision scope and call update proposition API
    withContext(Dispatchers.IO) {
       val ecidMap = mapOf("ECID" to mapOf("id" to ecid, "primary" to true))
       val identityMap = mapOf("identityMap" to ecidMap)
       val xdmData = mapOf("xdm" to identityMap)
       val decisionScope = DecisionScope(activityId, placementId, itemCount)
       Optimize.clearCachedPropositions()
       Optimize.updatePropositions(listOf(decisionScope), xdmData, null, object :
             AdobeCallbackWithOptimizeError<MutableMap<DecisionScope?, OptimizeProposition?>?> {
             override fun fail(optimizeError: AEPOptimizeError?) {
                val responseError = optimizeError
                Log.i("MobileSDK", "updatePropositionsOD error: ${responseError}")
             }
             override fun call(propositionsMap: MutableMap<DecisionScope?, OptimizeProposition?>?) {
                val responseMap = propositionsMap
                Log.i("MobileSDK", "updatePropositionsOD call: ${responseMap}")
             }
       })
    }
    

    Cette fonction :

    • configure un xdmData de dictionnaire XDM, contenant l’ECID pour identifier le profil pour lequel vous devez présenter les offres.

    • définit decisionScope, un objet qui repose sur la décision que vous avez définie dans l’interface Journey Optimizer - Gestion des décisions et qui est défini à l’aide de la portée de décision copiée à partir de Créer une décision. L’application Luma utilise un fichier de configuration (decisions.json) qui récupère les paramètres de l’étendue en fonction du format JSON suivant :

      code language-json
      "scopes": [
          {
              "name": "name of the scope",
              "activityId": "xcore:offer-activity:xxxxxxxxxxxxxxx",
              "placementId": "xcore:offer-placement:xxxxxxxxxxxxxxx",
              "itemCount": 2
          }
      ]
      

      Cependant, vous pouvez utiliser n’importe quel type d’implémentation pour vous assurer que les API Optimize obtiennent les paramètres appropriés (activityId, placementId et itemCount), afin de construire un objet DecisionScope valide pour votre implémentation.
      À titre d’information : les autres valeurs-clés du fichier decisions.json sont destinées à une utilisation ultérieure et ne sont pas pertinentes et utilisées actuellement dans cette leçon et dans le cadre du tutoriel.

    • appelle deux API : Optimize.clearCachePropositions et Optimize.updatePropositions. Ces fonctions effacent toutes les propositions mises en cache et mettent à jour les propositions pour ce profil.

  7. Accédez à Android ChevronDown > app > kotlin+java > com.adobe.luma.tutorial.android > views > EdgeOffers.kt dans le navigateur de projet Xcode. Recherchez la fonction suspend fun onPropositionsUpdateOD(ecid: String, activityId: String, placementId: String, itemCount: Int) et inspectez le code de cette fonction. La partie la plus importante de cette fonction est l’appel API Optimize.onPropositionsUpdate, qui

    • récupère les propositions du profil actif en fonction de la portée de décision (que vous avez définie dans Journey Optimizer - Gestion des décisions),
    • récupère l'offre de la proposition,
    • déplie le contenu de l’offre afin qu’elle puisse être affichée correctement dans l’application, et
    • renvoie les offres.
  8. Toujours en EdgeOffers.kt, ajoutez la fonction LaunchedEffect pour vous assurer que les offres sont actualisées au lancement de l’onglet Personalization .

    code language-kotlin
    // recompose the view when the number of received offers changes
    LaunchedEffect(offersOD.count()) {
        updatePropositionsOD(
            currentEcid,
            decision.activityId,
            decision.placementId,
            decision.itemCount
        )
        offersOD =
            onPropositionsUpdateOD(decision.activityId, decision.placementId, decision.itemCount)
    }
    

Validation à l’aide de l’application

iOS
  1. Recréez et exécutez l’application dans le simulateur ou sur un appareil physique à partir de Xcode, à l’aide de Play .

  2. Accédez à l’onglet Personalization.

  3. 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 DECISION LUMA - MOBILE APP DECISION.

    {width="300"}

    Les offres sont aléatoires, car vous avez donné à toutes les offres la même priorité et le classement de la décision est basé sur la priorité.

Android
  1. Recréez et exécutez l’application dans le simulateur ou sur un appareil physique à partir d’Android Studio, à l’aide de Play .

  2. Accédez à l’onglet Personalization.

  3. 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 DECISION LUMA - MOBILE APP DECISION.

    {width="300"}

    Les offres sont aléatoires, car vous avez donné à toutes les offres la même priorité et le classement de la décision est basé sur la priorité.

Validation de la mise en œuvre dans Assurance

Pour valider l'implémentation des offres dans Assurance :

  1. Consultez la section instructions de configuration pour connecter votre simulateur ou votre appareil à Assurance.

  2. Sélectionnez Configurer dans le rail de gauche et sélectionnez Ajouter en regard de Vérifier et simuler sous ADOBE JOURNEY OPTIMIZER DECISIONING.

  3. Sélectionnez Enregistrer.

  4. Sélectionnez Vérifier et simuler dans le rail de gauche. La configuration des trains de données est validée, ainsi que la configuration SDK dans votre application.

  5. Sélectionnez Demandes dans la barre supérieure. Vos demandes Offres s’affichent.
    Validation d'AJO Decisioning {modal="regular"}

  6. Vous pouvez explorer les onglets Simuler et Liste d’événements pour en savoir plus sur les fonctionnalités, en vérifiant votre configuration de la gestion des décisions de Journey Optimizer.

Étapes suivantes

Vous devriez maintenant disposer de tous les outils nécessaires pour commencer à ajouter d’autres fonctionnalités à votre implémentation Journey Optimizer - Gestion des décisions . 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 décision.
  • combinez plusieurs portées de décision.
SUCCESS
Vous avez activé l’application pour afficher des offres à l’aide de l’extension Offer Decisioning and Target pour Experience Platform Mobile SDK.
Merci d’avoir consacré votre temps à découvrir Adobe Experience Platform Mobile SDK. Si vous avez des questions, souhaitez partager des commentaires généraux ou des suggestions sur le contenu futur, partagez-les dans ce article de discussion de la communauté Experience League.

Suivant : Effectuer des tests A/B

recommendation-more-help
9fed61f5-c338-47ad-8005-0b89a5f4af8b