Optimisation et personnalisation avec Adobe Target

Découvrez comment optimiser et personnaliser les expériences de vos applications mobiles avec Platform Mobile SDK et Adobe Target.

Target fournit tout ce dont vous avez besoin pour personnaliser les expériences de vos clients. Target vous aide à maximiser les recettes de vos sites web et mobiles, de vos applications, de vos médias sociaux et de vos autres canaux numériques. Target peut effectuer des tests A/B, multivarier des tests, recommander des produits et du contenu, cibler du contenu, personnaliser automatiquement le contenu avec l’IA, etc. Cette leçon se concentre sur la fonctionnalité de test A/B de Target. Pour plus d’informations consultez la présentation du test A/B .

Architecture {modal="regular"}

Avant d’effectuer des tests A/B avec Target, vous devez vous assurer que les configurations et intégrations appropriées sont en place.

NOTE
Cette leçon est facultative et s’applique uniquement aux utilisateurs d’Adobe Target qui souhaitent effectuer des tests A/B.

Conditions préalables

Objectifs d’apprentissage

Dans cette leçon, vous allez :

  • Mettez à jour votre flux de données pour l’intégration de Target.
  • 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 un test A/B simple dans Target.
  • Mettez à jour votre application pour enregistrer l’extension Optimizer.
  • Implémentez le test A/B dans votre application.
  • Validez la mise en œuvre dans Assurance.

Configuration

TIP
Si vous avez déjà configuré votre application dans le cadre de la leçon Offres Journey Optimizer, vous avez peut-être déjà effectué certaines des étapes de cette section de configuration.

Mettre à jour la configuration du flux de données

Adobe Target

Pour que les données envoyées de votre application mobile à Experience Platform Edge Network soient transférées vers Adobe Target, vous devez mettre à jour la configuration de 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 Ajouter un service puis Adobe Target dans la liste Service.

  3. Si vous êtes un client Target Premium et souhaitez utiliser des jetons de propriété, saisissez la valeur Target Jeton de propriété que vous souhaitez utiliser pour cette intégration. Les utilisateurs de Target Standard peuvent ignorer cette étape.

    Vos propriétés se trouvent dans l’interface utilisateur de Target, dans Administration > Propriétés. Sélectionnez Code pour afficher le jeton de propriété de la propriété que vous souhaitez utiliser. Le format du jeton de propriété est du type "at_property": "xxxxxxxx-xxxx-xxxxx-xxxx-xxxxxxxxxxxx" ; vous ne devez entrer que la valeur xxxxxxxx-xxxx-xxxxx-xxxx-xxxxxxxxxxxx.

    Vous pouvez éventuellement spécifier un identifiant d’environnement cible. Target utilise des environnements pour organiser vos sites et environnements de pré-production afin de faciliter la gestion et la création de rapports séparée. Les environnements prédéfinis comprennent la production, l’évaluation et le développement. Voir Environnements et Identifiant d’environnement Target pour plus d’informations.

    Vous pouvez éventuellement spécifier un espace de noms d’identifiant tiers cible pour prendre en charge la synchronisation des profils sur un espace de noms d’identité (par exemple, l’identifiant CRM). Voir Espace de noms d’identifiant tiers cible pour plus d’informations.

  4. Sélectionnez Enregistrer.

    Ajouter Target au flux de données {modal="regular"}

Adobe Journey Optimizer

Pour vous assurer que les données envoyées de votre application mobile à Edge Network sont transférées vers Journey Optimizer - Gestion des décisions, mettez à jour la configuration de 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 les destinations Offer Decisioning, segmentation Edge et Personalization sont sélectionnées. Si vous suivez également les leçons Journey Optimizer, sélectionnez Adobe Journey Optimizer. 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

Bien que cette leçon porte sur les tests A/B dans Target, le résultat d’un test est considéré comme une offre et est implémenté dans l’infrastructure Adobe à l’aide de l’extension Adobe Offer Decisioning and Target tags. Cette extension gère les deux offres diffusées par Journey Optimizer et Target.

  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, recherchez des proposition, sélectionnez Événement d’expérience - Interactions de proposition et sélectionnez Ajouter des groupes de champs.

    Proposition {modal="regular"}

  6. Pour enregistrer les modifications apportées à votre schéma, sélectionnez Enregistrer.

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 est validée, ainsi que la configuration SDK dans votre application.

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

Création d’un test A/B

Il existe de nombreux types d’activités que vous pouvez créer dans Adobe Target et implémenter dans une application mobile, comme mentionné dans l’introduction. Pour cette leçon, vous allez mettre en œuvre un test A/B.

  1. Dans l’interface utilisateur de Target, sélectionnez Activités dans la barre supérieure.

  2. Sélectionnez Créer une activité et Test A/B dans le menu contextuel.

  3. Dans la boîte de dialogue Créer une activité de test A/B, sélectionnez Mobile comme Type, puis sélectionnez un espace de travail dans la liste Choisir Workspace. Sélectionnez votre propriété dans la liste Choisir une propriété si vous êtes un client Target Premium et que vous avez spécifié un jeton de propriété dans le flux de données.

  4. Sélectionnez Créer.
    Créer une activité Target {modal="regular"}

  5. Sur l’écran Activité sans titre, à l’étape Expériences :

    1. Saisissez luma-mobileapp-abtest dans Sélectionner l’emplacement sous Emplacement 1. Ce nom d’emplacement (souvent appelé mbox) est utilisé ultérieurement dans la mise en œuvre de l’application.

    2. Sélectionnez Plus en regard de Contenu et sélectionnez Créer une offre JSON dans le menu contextuel.

    3. Dans la boîte de dialogue Créer une offre JSON, collez le code JSON suivant.

      code language-json
      {
          "title": "Luma Anaolog Watch",
          "text": "Designed to stand up to your active lifestyle, this women's Luma Analog Watch features a tasteful brushed chrome finish and a stainless steel, water-resistant construction for lasting durability.",
          "image": "https://luma.enablementadobe.com/content/dam/luma/en/products/gear/watches/Luma_Analog_Watch.jpg"
      }
      

      Expérience A {modal="regular"}

      Sélectionnez Créer.

    4. Sélectionnez + en regard de Expériences pour ajouter Expérience B.

    5. Répétez les étapes b et c pour l’expérience B, mais utilisez plutôt Aim Analog Watch comme titre et collez le code JSON suivant :

      code language-json
      {
          "title": "Aim Analog Watch",
          "text": "The flexible, rubberized strap is contoured to conform to the shape of your wrist for a comfortable all-day fit. The face features three illuminated hands, a digital read-out of the current time, and stopwatch functions.",
          "image": "https://luma.enablementadobe.com/content/dam/luma/en/products/gear/watches/Aim_Watch.jpg"
      }
      
  6. À l’étape Targeting, passez en revue la configuration de votre test A/B. Par défaut, les deux offres sont attribuées de manière égale à tous les visiteurs. Sélectionnez Suivant pour continuer.

    Ciblage {modal="regular"}

  7. À l’étape Objectifs et paramètres :

    1. Renommez votre activité sans titre, par exemple en Luma Mobile SDK Tutorial - A/B Test Example.

    2. Saisissez un Objectif pour votre test A/B, par exemple A/B Test for Luma mobile app tutorial.

    3. Sélectionnez Conversion, Affichage d’une mbox dans la mosaïque Mesure de l’objectif > MON OBJECTIF de PRINCIPAL et saisissez le nom de votre emplacement (mbox), par exemple luma-mobileapp-abtest.

    4. Sélectionnez Enregistrer et fermer.

      Paramètres des objectifs {modal="regular"}

  8. De retour dans l’écran Toutes les activités :

    1. Sélectionnez Plus à votre activité.
    2. Sélectionnez Lire Activer pour activer votre test A/B.

    Activer {modal="regular"}

Implémentation de Target 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 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.

    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 > Utils > MobileSDK dans le navigateur de projet Xcode. Recherchez la fonction func updatePropositionAT(ecid: String, location: String) 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(name: location)
        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 :

    • met en place un xdmData de dictionnaire XDM contenant l’ECID pour identifier le profil pour lequel vous devez présenter le test A/B ; et
    • définit un decisionScope, un tableau d’emplacements sur lesquels présenter le test A/B.

    Ensuite, la fonction appelle deux API : Optimize.clearCachedPropositions et Optimize.updatePropositions. Ces fonctions effacent toutes les propositions mises en cache et mettent à jour les propositions pour ce profil. Dans ce contexte, une proposition est l’expérience (offre) sélectionnée à partir de l’activité Target (votre test A/B) et que vous avez définie dans Créer un test A/B.

  6. Accédez à Luma > Luma > Views > Personalization > TargetOffersView dans le navigateur de projet Xcode. Recherchez la fonction func onPropositionsUpdateAT(location: String) 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 actuel en fonction de la portée de décision (qui est l’emplacement que vous avez défini dans le test A/B),
    • 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 à Platform Edge Network informant de l’affichage de l’offre.
  7. Toujours en TargetOffersView, 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.onPropositionsUpdateAT(location: location)
    }
    
  8. Toujours en TargetOffersView, 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.updatePropositionsAT(ecid: currentEcid, location: location)
    
Android
  1. Dans Android Studio, assurez-vous que aepsdk-optimized-android fait partie des dépendances dans build.gradle.kts dans Android ChevronDown > Scripts Gradle. Voir Gradle.

  2. Accédez à 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 > kotlin+java > com.adobe.luma.tutorial.android > models > MobileSDK dans le navigateur d’Android Studio. Recherchez la fonction suspend fun updatePropositionsAT(ecid: String, location: String). 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(location)
        Optimize.clearCachedPropositions()
        Optimize.updatePropositions(listOf(decisionScope), xdmData, null, object :
            AdobeCallbackWithOptimizeError<MutableMap<DecisionScope?, OptimizeProposition?>?> {
            override fun fail(optimizeError: AEPOptimizeError?) {
                val responseError = optimizeError
                Log.i("MobileSDK", "updatePropositionsAT error: ${responseError}")
            }
            override fun call(propositionsMap: MutableMap<DecisionScope?, OptimizeProposition?>?) {
                val responseMap = propositionsMap
                Log.i("MobileSDK", "updatePropositionsOD call: ${responseMap}")
            }
        })
    }
    

    Cette fonction :

    • met en place un xdmData de dictionnaire XDM contenant l’ECID pour identifier le profil pour lequel vous devez présenter le test A/B ; et
    • définit un decisionScope, un tableau d’emplacements sur lesquels présenter le test A/B.

    Ensuite, la fonction appelle deux API : Optimize.clearCachedPropositions et Optimize.updatePropositions. Ces fonctions effacent toutes les propositions mises en cache et mettent à jour les propositions pour ce profil. Dans ce contexte, une proposition est l’expérience (offre) sélectionnée à partir de l’activité Target (votre test A/B) et que vous avez définie dans Créer un test A/B.

  6. Accédez à app > kotlin+java > com.adobe.luma.tutorial.android > views > TargetOffers.kt dans le navigateur d’Android Studio. Recherchez la fonction fun onPropositionsUpdateAT(location: String): List<OfferItem> 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 actuel en fonction de la portée de décision (qui est l’emplacement que vous avez défini dans le test A/B),
    • 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 l’offre.
  7. Toujours en TargetOffers.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(offersAT.count()) {
        updatePropositionsAT(currentEcid, MobileSDK.shared.targetLocation.value)
        offersAT = onPropositionsUpdateAT(MobileSDK.shared.targetLocation.value)
    }
    

Vous pouvez envoyer des paramètres Target supplémentaires (tels que des paramètres de mbox, de profil, de produit ou de commande) dans une requête de personnalisation au réseau Experience Edge, en les ajoutant dans un dictionnaire de données lors de l’appel de l’API Optimize.updatePropositions. Voir pour plus d’informations Paramètres cible.

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 bas pour afficher l’une des deux offres que vous avez définies dans votre test A/B affiché dans la mosaïque TARGET.

    {width="300"}

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. L’une des deux offres que vous avez définies dans votre test A/B s’affiche dans la zone inférieure de la mosaïque TARGET.

    {width="300"}

Validation de la mise en œuvre dans Assurance

Pour valider le test A/B 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 OFFER DECISIONING ET TARGET.

  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. Vous voyez vos requêtes Target.
    Validation d'AJO Decisioning {modal="regular"}

  6. Vous pouvez explorer les onglets Simuler et Liste d’événements pour accéder à des fonctionnalités supplémentaires qui vous aident à valider la configuration de vos offres Target.

Étapes suivantes

Vous devriez maintenant disposer de tous les outils nécessaires pour commencer à ajouter d’autres tests A/B ou d’autres activités Target (telles que le ciblage d’expérience, le test multivarié), le cas échéant, à votre application. Vous trouverez des informations plus détaillées dans le référentiel GitHub pour l’extension Optimize où vous trouverez également un lien vers un tutoriel dédié sur le suivi des offres d’Adobe Target.

SUCCESS
Vous avez activé l’application pour les tests A/B et affiché les résultats d’un test A/B avec l’extension Offer Decisioning and Target pour Adobe 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 : Conclusion et prochaines étapes

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