Exemples d’expressions avancées advanced-expression-examples
L’éditeur d’expression avancé sert à créer des conditions pour filtrer les utilisateurs dans vos parcours. Ces conditions permettent de cibler les utilisateurs en fonction de l’heure, de la date, de l’emplacement, de la durée ou des actions, notamment l’achat ou l’abandon de panier pour pouvoir les recibler dans le parcours.
Création de conditions pour les événements d’expérience
L’éditeur d’expression avancé est obligatoire pour effectuer des requêtes sur des séries temporelles, comme une liste d’achats ou des clics antérieurs sur des messages. L’éditeur simple ne permet pas d’effectuer ces requêtes.
Les événements d’expérience sont récupérés depuis Adobe Experience Platform sous la forme d’une collection dans l’ordre chronologique inverse. Par conséquent :
- La fonction first renvoie l’événement le plus récent.
- La fonction last renvoie l’événement le plus ancien.
Par exemple, supposons que vous vouliez cibler des clients ayant abandonné leur panier au cours des 7 derniers jours et envoyer un message lorsqu’un client se trouve à proximité d’un magasin, avec une offre sur les articles qu’il souhaitait et qui se trouvent en magasin.
Vous devez créer les conditions suivantes :
Tout d’abord, il s’agit de cibler les clients qui ont accédé à la boutique en ligne, mais n’ont pas finalisé la commande au cours des 7 derniers jours.
Cette expression recherche tous les événements relatifs à cet utilisateur spécifiés au cours des 7 derniers jours :
Ensuite, il faut sélectionner tous les événements addtocart qui n’ont pas été transformés en completePurchase.
L’horodatage spécifié tient lieu de valeur de date et d’heure, la deuxième valeur correspond au nombre de jours.
in( "addToCart", #{ExperiencePlatformDataSource
.ExperienceEventFieldGroup
.experienceevent
.all(
inLastDays(currentDataPackField.timestamp, 7 ))
.productData
.productInteraction})
and
not(in( "completePurchase", #{ExperiencePlatformDataSource
.ExperienceEventFieldGroup
.experienceevent
.all(
inLastDays(currentDataPackField.timestamp, 7 ))
.productData
.productInteraction}))
Cette expression renvoie une valeur booléenne.
Maintenant, créons une expression qui vérifie que le produit est en stock
- Dans Inventory, cette expression recherche le champ de quantité d’un produit et indique qu’il doit être supérieur à 0.
#{Inventory.fieldgroup3.quantity} > 0
- Les valeurs nécessaires sont spécifiées à droite. Ici, nous devons récupérer l’emplacement du magasin, qui est mappé à partir de l’emplacement de l’événement « ArriveLumaStudio » :
#{ArriveLumaStudio._acpevangelists1.location.location}
-
Spécifiez la référence du produit (SKU) à l’aide de la fonction
first
pour récupérer la dernière interaction "addToCart" :code language-json #{ExperiencePlatformDataSource .ExperienceEventFieldGroup .experienceevent .first( currentDataPackField .productData .productInteraction == "addToCart" ) .SKU}
De là, vous pouvez ajouter un autre chemin dans votre parcours pour les cas où le produit ne se trouve pas en magasin et envoyer une notification avec une offre d’engagement. Configurez les messages en conséquence et utilisez les données de personnalisation pour améliorer le ciblage de ces messages.
Exemples de manipulations de chaînes avec l’éditeur d’expression avancé
Dans des conditions
Cette condition récupère uniquement les événements de géorepérage déclenchés dans "Arlington" :
@event{GeofenceEntry
.placeContext
.POIinteraction
.POIDetail
.name} == "Arlington"
Explication : il s’agit d’une comparaison de chaînes stricte (sensible à la casse), équivalente à une requête en mode simple qui utilise l’opérateur equal to
avec Is sensitive
coché.
La même requête avec Is sensitive
non coché génère l’expression suivante en mode avancé :
equalIgnoreCase(@event{GeofenceEntry
.placeContext
.POIinteraction
.POIDetail
.name}, "Arlington")
Dans des actions
L’expression suivante permet de définir l’identifiant CRM dans un champ de personnalisation d’action :
substr(
@event{MobileAppLaunch
._myorganization
.identification
.crmid},
1,
lastIndexOf(
@event{MobileAppLaunch
._myorganization
.identification
.crmid},
'}'
)
)
Explication : cet exemple utilise les fonctions substr
et lastIndexOf
pour supprimer les accolades qui encadrent l’identifiant CRM transmis avec un événement de lancement d’application mobile.
Pour en savoir plus sur l’utilisation de l’éditeur d’expression avancé, regardez cette vidéo.