Itération sur des données contextuelles personalization-contexts
Découvrez comment utiliser la syntaxe d’itération Handlebars pour afficher dans vos messages des listes dynamiques de données provenant de diverses sources, y compris des événements, des réponses à des actions personnalisées et d’autres données contextuelles.
Vue d’ensemble overview
Journey Optimizer permet d’accéder aux données contextuelles provenant de plusieurs sources lors de la personnalisation des messages. Vous pouvez effectuer une itération sur des tableaux à partir de ces sources à l’aide de la syntaxe Handlebars dans les canaux natifs (e-mail, notification push, SMS) pour afficher du contenu dynamique tel que des listes de produits, des recommandations ou d’autres éléments répétés.
Sources de contexte disponibles :
- Événements : données issues d'événements de parcours (événements métier, événements unitaires)
- Réponses à des actions personnalisées : données renvoyées par des appels API externes via des actions personnalisées
- Recherche de jeu de données : données enrichies récupérées dans le jeux de données Adobe Experience Platform
- Propriétés techniques : métadonnées de parcours telles que l’ID du parcours et d’identifiants supplémentaires
- Contexte du parcours : autres données relatives au parcours accessibles lors de l’exécution
Ce guide vous explique comment effectuer une itération sur des tableaux à partir de chacune de ces sources dans vos messages et comment utiliser des tableaux lors de la configuration des activités de parcours. Commencez par Syntaxe d’itération Handlebars pour comprendre les principes de base de la personnalisation des messages, ou passez directement à Utilisation de tableaux dans les expressions de parcours pour savoir comment transmettre des données de tableau à des actions personnalisées et à des recherches de jeux de données.
Syntaxe Handlebars pour l’itération syntax
Handlebars fournit l’assistant {{#each}} pour effectuer une itération sur des tableaux. La syntaxe de base est la suivante :
Points clés :
- Remplacez
arrayPathpar le chemin d’accès aux données de votre tableau. - Remplacez
itempar le nom de la variable de votre choix (par exempleproduct,response,element). - Accédez aux propriétés de chaque élément à l’aide de
{{item.propertyName}}. - Vous pouvez imbriquer plusieurs blocs
{{#each}}pour des tableaux à plusieurs niveaux.
Itération sur des données d’événement event-data
Les données d’événement sont disponibles lorsque votre parcours est déclenché par un événement. Cela s’avère utile pour afficher les données capturées au démarrage du parcours, telles que le contenu du panier, les éléments de commande ou les envois de formulaire.
Chemin d’accès au contexte pour les événements
<event_ID>: ID unique de votre événement tel que configuré dans le parcours<fieldPath>: chemin d’accès au champ ou au tableau dans votre schéma d’événement
Exemple : articles dans le panier à partir d’un événement
Si votre schéma d’événement comprend un tableau productListItems (format XDM standard), vous pouvez afficher le contenu du panier comme dans l’exemple ci-dessous.
| code language-handlebars |
|---|
|
Exemple : tableaux imbriqués dans des événements
Pour les structures imbriquées, utilisez des blocs {{#each}} imbriqués.
| code language-handlebars |
|---|
|
Pour en savoir plus sur l’imbrication, voir les bonnes pratiques.
Itération sur les réponses à des actions personnalisées custom-action-responses
Les réponses à une action personnalisée contiennent des données renvoyées par des appels API externes. Cela s’avère utile pour afficher des informations en temps réel sur vos systèmes, telles que les points de fidélité, les recommandations de produits, le statut des stocks ou les offres personnalisées.
Chemin d’accès au contexte pour les actions personnalisées
<actionName>: nom réel de votre action personnalisée, tel qu’il est configuré dans le parcours<fieldPath>: chemin d’accès au champ ou au tableau dans la payload de réponse
Exemple : recommandations de produit à partir d’une API
Pour effectuer une itération sur un tableau de recommandations de produits renvoyées par une action personnalisée et les afficher en tant que cartes individuelles dans votre message, consultez l’exemple ci-dessous.
Réponse de l’API :
| code language-json |
|---|
|
Personnalisation du message :
| code language-handlebars |
|---|
|
Exemple : tableaux imbriqués à partir d’actions personnalisées
Pour effectuer une itération sur une réponse à une action personnalisée contenant des tableaux imbriqués (un tableau d’objets, où chaque objet contient un autre tableau), consultez l’exemple ci-dessous. Cela illustre l’utilisation de boucles {{#each}} imbriquées pour accéder à plusieurs niveaux de données.
Réponse de l’API :
| code language-json |
|---|
|
Personnalisation du message :
| code language-handlebars |
|---|
|
Pour des modèles d’imbrication plus complexes, voir les bonnes pratiques.
Exemple : avantages du niveau de fidélité
Pour afficher les avantages dynamiques en fonction du statut de fidélité, reportez-vous à l’exemple ci-dessous.
Réponse de l’API :
| code language-json |
|---|
|
Personnalisation du message :
| code language-handlebars |
|---|
|
Itération sur les résultats de la recherche de jeu de données dataset-lookup
L’activité Recherche de jeu de données permet de récupérer des données à partir de jeux de données Adobe Experience Platform pendant l’exécution du parcours. Les données enrichies sont stockées sous la forme d’un tableau et peuvent être itérées dans vos messages.
Pour en savoir plus sur la configuration de l’activité Recherche de jeu de données, voir cette section. La recherche de jeu de données est particulièrement performante si elle est combinée avec des données d’événement. Voir Exemple : données d’événement enrichies par la recherche de jeu de données pour un cas d’utilisation pratique.
Chemin d’accès au contexte pour les recherches de jeux de données
<activityID>: ID unique de votre activité Recherche de jeu de donnéesentities: tableau de données enrichies récupérées dans le jeu de données
Exemple : informations sur le produit dans un jeu de données
Si vous utilisez une activité Recherche de jeu de données pour récupérer des informations de produit en fonction des SKU, consultez l’exemple ci-dessous.
Configuration de la recherche de jeu de données :
- Clés de recherche :
list(@event{purchase_event.products.sku}) - Champs à renvoyer :
["SKU", "category", "price", "name"]
Personnalisation du message :
| code language-handlebars |
|---|
|
Exemple : itération filtrée avec des données du jeu de données
Pour filtrer les résultats de la recherche de jeu de données lors de l’itération et afficher uniquement les éléments correspondant à des critères spécifiques (par exemple, les produits d’une catégorie particulière), utilisez des instructions conditionnelles {{#if}} dans votre boucle {{#each}}. Voir l’exemple ci-dessous.
| code language-handlebars |
|---|
|
Pour en savoir plus sur le filtrage conditionnel, voir les bonnes pratiques.
Exemple : calcul de totaux à partir de la recherche de jeu de données
Pour calculer et afficher des totaux lors de l’itération sur les résultats de la recherche de jeu de données, consultez l’exemple ci-dessous.
| code language-handlebars |
|---|
|
Utiliser des propriétés techniques du parcours technical-properties
Les propriétés techniques du parcours permettent d’accéder aux métadonnées sur l’exécution du parcours, telles que l’ID du parcours et des identifiants supplémentaires. Elles peuvent s’avérer utiles lorsqu’elles sont combinées à des modèles d’itération, en particulier pour filtrer des tableaux en fonction d’instances de parcours spécifiques.
Propriétés techniques disponibles
Exemple : filtrage d’éléments de tableau à l’aide d’un identifiant supplémentaire
Lorsque vous utilisez des identifiants supplémentaires dans des parcours déclenchés par un événement avec des tableaux, vous pouvez filtrer afin d’afficher uniquement l’élément approprié pour l’instance de parcours active. Pour en savoir plus sur les identifiants supplémentaires, voir ce guide.
Scénario : un parcours est déclenché avec plusieurs réservations, mais vous souhaitez afficher uniquement les informations sur la réservation (identifiée par un ID supplémentaire) qui a déclenché cette instance de parcours.
| code language-handlebars |
|---|
|
Exemple : inclure l’ID de parcours pour le suivi
Pour inclure l’ID de parcours dans votre message à des fins de suivi, consultez l’exemple ci-dessous.
| code language-handlebars |
|---|
|
Combiner plusieurs sources de contexte combine-sources
Vous pouvez combiner des données provenant de différentes sources dans le même message pour créer des expériences riches et personnalisées. Cette section présente des exemples pratiques d’utilisation de plusieurs sources de contexte.
Combinaisons possibles de sources de contexte :
Exemple : articles dans le panier avec stocks en temps réel
Pour combiner les données d’événement (contenu du panier) avec les données d’une action personnalisée (statut des stocks), consultez l’exemple ci-dessous.
| code language-handlebars |
|---|
|
Exemple : données d’événement enrichies avec la recherche de jeu de données
Pour combiner les SKU d’événement avec des informations détaillées sur les produits issues d’une recherche de jeu de données, consultez l’exemple ci-dessous.
| code language-handlebars |
|---|
|
Exemple : combinaison de plusieurs sources avec des propriétés techniques
Pour combiner plusieurs sources de contexte (données de profil, données d’événement, actions personnalisées et propriétés techniques) en un seul message, consultez l’exemple ci-dessous.
| code language-handlebars |
|---|
|
Autres types de contextes other-contexts
Bien que ce guide se concentre sur l’itération sur les tableaux, d’autres types de contexte sont disponibles à des fins de personnalisation qui ne nécessitent généralement pas d’itération. Ils sont accessibles directement, sans boucle :
- Attributs de profil (
profile.*) : champs de profil individuels d’Adobe Experience Platform - Audiences (
inAudience()) : vérifications de l’appartenance à une audience - Décisions d’offre : offres de gestion des décisions
- Attributs de la cible (campagnes orchestrées uniquement) : attributs calculés dans la zone de travail de la campagne
- Jeton (
context.token) : jetons de session ou d’authentification
Pour obtenir une syntaxe de personnalisation complète et des exemples d’utilisation de ces sources, reportez-vous à :
Utiliser des tableaux dans les expressions de parcours arrays-in-journeys
Bien que les sections précédentes se concentrent sur l’itération sur des tableaux dans le cadre de la personnalisation des messages à l’aide de la syntaxe Handlebars, vous travaillez également avec des tableaux lors de la configuration des activités du parcours. Cette section explique comment utiliser les données de tableau issues des événements dans les expressions de parcours, en particulier lors de la transmission de données à des actions personnalisées ou de l’utilisation de tableaux avec des recherches de jeux de données.
first, all et serializeList. Dans le contenu des messages, vous utilisez la syntaxe Handlebars avec des boucles {{#each}}.Transmission de valeurs de tableau aux paramètres d’actions personnalisées arrays-to-custom-actions
Lors de la configuration d’actions personnalisées, vous devez souvent extraire des valeurs de tableaux d’événements et les transmettre en tant que paramètres. Cette section aborde les modèles courants.
Pour en savoir plus sur la transmission de collections, voir Transmission de collections dans des paramètres d’actions personnalisées.
Extraire une seule valeur d’un tableau
Cas d’utilisation : obtenir un champ spécifique d’un tableau d’événements à transmettre en tant que paramètre de requête dans une requête GET.
Exemple de scénario : extraire le premier SKU dont le prix est supérieur à 0 dans une liste de produits.
Exemple de schéma d’événement :
| code language-json |
|---|
|
Configuration de l’action personnalisée :
- Dans votre action personnalisée, configurez un paramètre de requête (par exemple,
sku) avec le typestring. - Marquez-le comme
Variablepour autoriser les valeurs dynamiques.
Expression de parcours dans le paramètre d’action :
| code language-javascript |
|---|
|
Explication :
@event{YourEventName}: fait référence à votre événement de parcours..first(currentEventField.condition): renvoie le premier élément du tableau qui correspond à la condition.currentEventField: représente chaque élément du tableau d’événements pendant que vous le parcourez en boucle..SKU: extrait le champ SKU de l’élément correspondant.- Résultat :
"SKU-1"(chaîne appropriée pour le paramètre d’action)
Pour en savoir plus sur la fonction first, voir Fonctions de gestion des collections.
Créer une liste de valeurs à partir d’un tableau
Cas d’utilisation : créer une liste d’ID séparés par des virgules à transmettre en tant que paramètre de requête (par exemple, /products?ids=sku1,sku2,sku3).
Configuration de l’action personnalisée :
- Configurez un paramètre de requête (par exemple,
ids) avec le typestring. - Marquez-le comme
Variable.
Expression de parcours :
| code language-javascript |
|---|
|
Explication :
-
.all(currentEventField.condition): renvoie tous les éléments du tableau correspondant à la condition (renvoie une liste). -
currentEventField: représente chaque élément du tableau d’événements pendant que vous le parcourez en boucle. -
.SKU: projette la liste pour inclure uniquement les valeurs de SKU. -
serializeList(list, delimiter, addQuotes): joint la liste en chaîne.",": utilise une virgule comme délimiteur.true: ajoute des guillemets autour de chaque élément de chaîne.
-
Résultat :
"SKU-1,SKU-3"(adapté à un paramètre de requête)
En savoir plus sur :
La gestion des collections pour les actions personnalisées est abordée dans la section Transmission de collections dans des paramètres d’action personnalisée.
Transmettre un tableau d’objets à une action personnalisée
Cas d’utilisation : envoyer un tableau complet d’objets dans un corps de requête (pour les requêtes POST ou GET avec corps).
Exemple de corps de requête :
| code language-json |
|---|
|
Configuration de l’action personnalisée :
- Dans le corps de la requête, définissez
productscomme typelistObject. - Marquez-le comme
Variable. - Définissez les champs d’objet :
id,name,price,color(chacun devient mappable).
Configuration de la zone de travail du parcours :
-
En mode avancé, définissez l’expression de collection :
code language-javascript @event{YourEventName.commerce.productListItems.all(currentEventField.priceTotal > 0)} -
Dans l’interface utilisateur du mappage de collections :
- Mapper
id→productListItems.SKU - Mapper
name→productListItems.name - Mapper
price→productListItems.priceTotal - Mapper
color→productListItems.color
- Mapper
Journey Optimizer construit le tableau d’objets correspondant à la structure de votre payload d’action.
| note note |
|---|
| NOTE |
Lorsque vous utilisez des tableaux d’événements, utilisez currentEventField pour référencer chaque élément. Pour les collections de sources de données (Adobe Experience Platform), utilisez currentDataPackField. Pour les collections de réponses aux actions personnalisées, utilisez currentActionField. |
Pour en savoir plus, voir Transmettre des collections dans des paramètres d’action personnalisée.
Utiliser des tableaux avec les recherches de jeux de données arrays-with-dataset-lookup
Lors de l’utilisation de l’activité Recherche de jeu de données, vous pouvez transmettre un tableau de valeurs en tant que clés de recherche pour récupérer des données enrichies.
Exemple : rechercher les informations sur le produit pour tous les SKU d’un tableau d’événements.
Configuration de recherche de jeu de données :
Dans le champ Clés de recherche, utilisez list() pour convertir un chemin d’accès au tableau en liste :
| code language-javascript |
|---|
|
Cela crée une liste de toutes les valeurs de SKU à rechercher dans le jeu de données. Les résultats sont disponibles sous la forme d’un tableau à context.journey.datasetLookup.<activityID>.entities que vous pouvez itérer dans votre message (voir Itérer sur les résultats de la recherche de jeu de données).
Limites et modèles array-limitations
Gardez à l’esprit ces limites lorsque vous utilisez des tableaux dans des parcours :
Pas de boucle dynamique sur les tableaux dans le flux du parcours
Les parcours ne peuvent pas créer de boucles dynamiques dans lesquelles un nœud d’action est exécuté plusieurs fois pour chaque élément d’un tableau. Cela est intentionnel afin d’éviter des problèmes de performances incontrôlés.
Ce que vous ne pouvez pas faire :
- Exécuter dynamiquement une action personnalisée une fois par élément de tableau
- Créer plusieurs branches de parcours en fonction de la longueur du tableau
Modèles recommandés à la place :
-
Envoyer tous les éléments en une seule fois : transmettez l’ensemble du tableau ou une liste sérialisée à une action personnalisée unique qui traite tous les éléments. Voir Créer une liste de valeurs à partir d’un tableau.
-
Utiliser l’agrégation externe : demandez à votre API externe d’accepter plusieurs identifiants et de renvoyer les résultats combinés en un seul appel.
-
Précalculer dans AEP : utilisez les attributs calculés pour précalculer les valeurs des tableaux au niveau du profil.
-
Extraction de valeur unique : si vous n’avez besoin que d’une seule valeur, extrayez-la à l’aide de
firstouhead. Voir Extraire une seule valeur d’un tableau.
En savoir plus dans la section Mécanismes de sécurisation et limitations.
Considérations relatives à la taille des tableaux
Les tableaux volumineux peuvent avoir un impact sur les performances du parcours :
- Tableaux d’événements : conservez les payloads d’événements sous un total de 50 Ko.
- Réponses d’action personnalisées : les payloads de réponse doivent être sous 100 Ko.
- Résultats de la recherche de jeux de données : limitez le nombre de clés de recherche et d’entités renvoyées.
Exemple complet : tableau d’événements vers une action personnalisée complete-example
Voici un workflow complet montrant comment utiliser un tableau d’événements avec une action personnalisée.
Scénario : lorsqu’une personne abandonne son panier, envoyez les données du panier à une API de recommandation externe pour obtenir des suggestions personnalisées, puis affichez-les dans un e-mail.
Étape 1 : configurer l’action personnalisée
Créez une action personnalisée « GetCartRecommendations » :
- Méthode : POST
- URL :
https://api.example.com/recommendations - Corps de la requête :
| code language-json |
|---|
|
- Marquer
cartItemscomme typelistObjectetVariable - Définir les champs :
sku(chaîne),price(nombre),quantity(entier)
En savoir plus dans Configurer une action personnalisée.
Étape 2 : configurer la payload de réponse
Dans l’action personnalisée, configurez la réponse :
| code language-json |
|---|
|
En savoir plus dans Utiliser les réponses d’appel API.
Étape 3 : relier l’action dans le parcours
-
Après votre événement d’abandon de panier, ajoutez l’action personnalisée.
-
En mode avancé pour la collection
cartItems:code language-javascript @event{cartAbandonment.commerce.productListItems.all(currentEventField.quantity > 0)} -
Mappez les champs de collection :
sku→productListItems.SKUprice→productListItems.priceTotalquantity→productListItems.quantity
Étape 4 : utiliser la réponse dans votre e-mail
Dans le contenu de votre e-mail, effectuez une itération sur les recommandations :
| code language-handlebars |
|---|
|
Étape 5 : tester votre configuration
Avant d’exécuter un parcours actif, testez l’action personnalisée à l’aide de la fonctionnalité « Envoyer la demande de test » de la configuration de l’action afin de vérifier la demande et les valeurs créées.
- Utilisez le mode test de parcours.
- Déclenchez avec des exemples de données d’événement, y compris un tableau
productListItems. - Vérifiez que l’action personnalisée reçoit la structure de tableau appropriée.
- Examinez les journaux de test de l’action.
- Prévisualisez l’e-mail pour vérifier que les deux tableaux s’affichent correctement.
Pour en savoir plus, voir Résolution des problèmes liés aux actions personnalisées.
Bonnes pratiques best-practices
Suivez ces bonnes pratiques lors de l’itération sur les données contextuelles pour créer une personnalisation performante et facile à gérer.
Utiliser des noms de variables descriptifs
Choisissez des noms de variables qui indiquent clairement l’objet de l’itération. Cela rend votre code plus lisible et plus facile à gérer. Pour en savoir plus sur la syntaxe de personnalisation :
| code language-handlebars |
|---|
|
Fragments d’expression dans les boucles
Lorsque vous utilisez des fragments d’expression dans des boucles {{#each}}, sachez que vous ne pouvez pas transmettre de variables définies dans la boucle en tant que paramètres de fragment. Cependant, les fragments peuvent accéder aux variables globales définies dans le contenu de votre message en dehors du fragment.
Modèle pris en charge - Utilisez des variables globales :
| code language-handlebars |
|---|
|
Le fragment peut référencer globalDiscount, car il est défini globalement dans le message.
Non pris en charge - Transmettez des variables de boucle :
| code language-handlebars |
|---|
|
Solution : incluez la logique de personnalisation directement dans votre boucle au lieu d’utiliser un fragment, ou appelez le fragment en dehors de la boucle.
En savoir plus sur l’utilisation de fragments d’expression dans les boucles, y compris des exemples détaillés et des solutions supplémentaires.
Gérer des tableaux vides
Utilisez la clause {{else}} pour fournir un contenu de secours lorsqu’un tableau est vide. Pour en savoir plus sur les fonctions de l’assistant :
| code language-handlebars |
|---|
|
Combinaison avec des assistants conditionnels
Utilisez {{#if}} dans des boucles pour le contenu conditionnel. Pour en savoir plus sur les règles conditionnelles et obtenir des exemples, voir les sections Réponses aux actions personnalisées et Recherche de jeu de données.
| code language-handlebars |
|---|
|
Limitation de l’itération pour les performances
Pour les tableaux volumineux, pensez à limiter le nombre d’itérations :
| code language-handlebars |
|---|
|
Accéder aux métadonnées des tableaux
Handlebars fournit des variables spéciales dans les boucles qui facilitent l’utilisation de modèles d’itération avancés :
@index: index d’itération actuel (basé sur 0)@first: vrai pour la première itération@last: vrai pour la dernière itération
| code language-handlebars |
|---|
|
@index, @first, @last) ne sont disponibles que dans les boucles {{#each}} dans le cadre de la personnalisation des messages. Pour utiliser des tableaux dans des expressions de parcours (par exemple, pour extraire le premier élément d’un tableau avant la transmission à une action personnalisée), utilisez des fonctions de tableau telles que head, first ou all. Pour plus d’informations, voir Utiliser des tableaux dans des expressions de parcours.Résolution des problèmes troubleshooting
Vous rencontrez des problèmes liés à l’itération ? Cette section aborde les problèmes les plus courants et leurs solutions.
Le tableau ne s’affiche pas.
Problème : l’itération du tableau n’affiche aucun contenu.
Causes possibles et solutions :
-
Chemin d’accès incorrect : vérifiez le chemin d’accès exact de votre tableau en fonction de la source de contexte :
- Pour les événements :
context.journey.events.<event_ID>.<fieldPath> - Pour les actions personnalisées :
context.journey.actions.<actionName>.<fieldPath> - Pour les recherches de jeux de données :
context.journey.datasetLookup.<activityID>.entities
- Pour les événements :
-
Le tableau est vide : ajoutez une clause
{{else}}pour vérifier si le tableau ne contient aucune donnée. Pour obtenir des exemples, voir les bonnes pratiques. -
Données pas encore disponibles : assurez-vous que l’action personnalisée, l’événement ou l’activité Recherche de jeu de données a été exécuté avant l’activité de message dans le flux du parcours.
Erreurs de syntaxe
Problème : la validation de l’expression échoue ou le message ne s’affiche pas.
Erreurs les plus courantes :
- Balises de fermeture manquantes : chaque
{{#each}}doit avoir une balise{{/each}}. Pour connaître la structure appropriée, voir Syntaxe Handlebars pour l’itération. - Nom de variable incorrect : vérifiez que le même nom de variable est utilisé dans l’ensemble du bloc. Pour connaître les conventions de nommage, voir les bonnes pratiques.
- Séparateurs de chemin incorrects : utilisez des points (
.) et non des barres obliques ou d’autres caractères.
Les fragments d’expression ne fonctionnent pas dans les boucles.
Problème : un fragment d’expression n’affiche pas le contenu attendu lorsqu’il est utilisé dans une boucle {{#each}} ou affiche une sortie vide/inattendue.
Causes possibles et solutions :
-
Tentative de transmission de variables de boucle en tant que paramètres : les fragments d’expression ne peuvent pas recevoir de variables définies dans des boucles (comme l’élément d’itération actuel) en tant que paramètres. Il s’agit d’une limite connue.
Solution : utilisez l’une des solutions de contournement suivantes :
- Définissez dans votre message des variables globales auxquelles le fragment peut accéder.
- Incluez la logique de personnalisation directement dans votre boucle au lieu d’utiliser un fragment.
- Appelez le fragment en dehors de la boucle s’il n’a pas besoin de données spécifiques à la boucle.
-
Le fragment attend un paramètre qui n’est pas disponible : si votre fragment a été conçu pour recevoir des paramètres d’entrée spécifiques, il ne fonctionnera pas correctement si ces paramètres ne peuvent pas être transmis depuis une boucle.
Solution : restructurez votre approche pour utiliser les variables globales auxquelles le fragment peut accéder. Pour obtenir des exemples, voir Bonnes pratiques - Fragments d’expression dans les boucles.
-
Portée de la variable incorrecte : le fragment essaye peut-être de référencer une variable qui n’existe que dans la portée de la boucle.
Solution : définissez toutes les variables dont le fragment a besoin au niveau du message (en dehors de la boucle) afin qu’elles soient globalement accessibles.
Obtenez des informations supplémentaires sur l’utilisation de fragments d’expression dans les boucles, notamment des explications détaillées, des exemples et des recommandations de modèles.
Test de vos itérations
Utilisez le mode test de parcours pour vérifier vos itérations. Cela est particulièrement important lors de l’utilisation d’actions personnalisées ou de recherches de jeux de données :
- Démarrez votre parcours en mode test.
- Déclenchez l’événement ou l’action personnalisée avec des données d’exemple.
- Affichez l’aperçu du message pour vérifier que l’itération s’affiche correctement.
- Consultez les journaux du mode test pour voir s’ils contiennent des erreurs (voir Journaux du mode test d’action personnalisée).
Rubriques connexes related-topics
Principes de base de la personnalisation : Commencer avec la personnalisation | Ajouter une personnalisation | Syntaxe de personnalisation | Fonctions de l’assistant | Créer des règles conditionnelles
Configuration du parcours : À propos des événements | Configurer des actions personnalisées | Transmettre des collections dans des paramètres d’action personnalisée | Utiliser des réponses d’appel API dans les actions personnalisées | Résoudre les problèmes liés aux actions personnalisées | Utiliser des données Adobe Experience Platform dans les parcours | Utiliser des identifiants supplémentaires dans les parcours | Mécanismes de sécurisation et limitations | Tester votre parcours
Fonctions d’expression de parcours : Éditeur d’expression avancé | Fonctions de gestion des collections (first, all, last) | Fonctions de liste (serializeList, filter, sort) | Fonctions de tableau (head, tail)
Cas d’utilisation de la personnalisation : E-mail d’abandon de panier | Notification de statut de la commande
Conception de message : Commencer avec la conception d’e-mails | Créer des notifications push | Créer des SMS | Prévisualiser et tester votre contenu