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 .
Avant d’effectuer des tests A/B avec Target, vous devez vous assurer que les configurations et intégrations appropriées sont en place.
Conditions préalables
- Application créée et exécutée avec succès avec les SDK installés et configurés.
- Accès à Adobe Target avec des autorisations, rôles, espaces de travail et propriétés correctement configurés.
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
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.
-
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 Ajouter un service puis Adobe Target dans la liste Service.
-
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
"at_property": "xxxxxxxx-xxxx-xxxxx-xxxx-xxxxxxxxxxxx"
; vous ne devez entrer que la valeurxxxxxxxx-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.
-
Sélectionnez Enregistrer.
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.
-
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
-
Dans l’écran Flux de données >
-
Pour enregistrer la configuration de votre flux de données, sélectionnez Enregistrer .
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.
-
Accédez à Balises, recherchez la propriété de balise mobile et ouvrez la propriété.
-
Sélectionnez Extensions.
-
Sélectionnez Catalogue.
-
Recherchez l’extension Offer Decisioning et Target.
-
Installez l’extension . L’extension ne nécessite pas de configuration supplémentaire.
Mise à jour du 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.
-
Sélectionnez votre schéma pour l’ouvrir.
-
Dans l’éditeur de schémas, sélectionnez
-
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. -
Pour enregistrer les modifications apportées à votre schéma, sélectionnez Enregistrer.
Validation de la configuration dans Assurance
Pour valider votre configuration dans Assurance :
-
Accédez à l’interface utilisateur d’Assurance.
-
Sélectionnez Configurer dans le rail de gauche et sélectionnez
-
Sélectionnez Enregistrer.
-
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.
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.
-
Dans l’interface utilisateur de Target, sélectionnez Activités dans la barre supérieure.
-
Sélectionnez Créer une activité et Test A/B dans le menu contextuel.
-
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.
-
Sélectionnez Créer.
-
Sur l’écran Activité sans titre, à l’étape Expériences :
-
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. -
Sélectionnez
-
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" }
Sélectionnez Créer.
-
Sélectionnez + en regard de Expériences pour ajouter Expérience B.
-
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" }
-
-
À 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.
-
À l’étape Objectifs et paramètres :
-
Renommez votre activité sans titre, par exemple en
Luma Mobile SDK Tutorial - A/B Test Example
. -
Saisissez un Objectif pour votre test A/B, par exemple
A/B Test for Luma mobile app tutorial
. -
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
. -
Sélectionnez Enregistrer et fermer.
-
-
De retour dans l’écran Toutes les activités :
- Sélectionnez
- Sélectionnez
- Sélectionnez
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.
-
Dans Xcode, assurez-vous que AEP Optimize est ajouté à la liste des packages dans les dépendances de packages. Voir Gestionnaire de packages Swift.
-
Accédez à Luma > Luma > AppDelegate dans le navigateur de projet Xcode.
-
Assurez-vous que
AEPOptimize
fait partie de votre liste d’importations.import AEPOptimize
-
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 ]
-
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
etOptimize.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. - met en place un
-
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 APIOptimize.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.
-
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) }
-
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)
-
Dans Android Studio, assurez-vous que aepsdk-optimized-android fait partie des dépendances dans build.gradle.kts dans Android
-
Accédez à app > kotlin+java > com.adobe.luma.tutorial.android > MainActivity dans le navigateur d’Android Studio.
-
Assurez-vous que
Optimize
fait partie de votre liste d’importations.code language-kotlin import com.adobe.marketing.mobile.optimize.Optimize
-
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 )
-
Accédez à Android
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
etOptimize.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. - met en place un
-
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 APIOptimize.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.
-
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
-
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 bas pour afficher l’une des deux offres que vous avez définies dans votre test A/B affiché dans la mosaïque TARGET.
-
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.
-
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.
Validation de la mise en œuvre dans Assurance
Pour valider le test A/B dans Assurance :
-
Consultez la section instructions de configuration pour connecter votre simulateur ou votre appareil à Assurance.
-
Sélectionnez Configurer dans le rail de gauche et sélectionnez
-
Sélectionnez Enregistrer.
-
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.
-
Sélectionnez Demandes dans la barre supérieure. Vous voyez vos requêtes Target.
-
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.
Suivant : Conclusion et prochaines étapes