L’editor di espressioni avanzate può essere utilizzato per creare condizioni che consentono di filtrare gli utenti nei percorsi. Queste condizioni ti consentono di eseguire il targeting degli utenti in base a ora, data, posizione, durata o azioni quali l’acquisto o l’abbandono dei carrelli in modo che possano essere reindirizzati nel percorso.
Gli eventi iniziano con @, origini dati con #.
L’editor di espressioni avanzate è obbligatorio per eseguire query su serie temporali come un elenco di acquisti o clic passati sui messaggi. Tali query non possono essere eseguite utilizzando il semplice editor.
Gli eventi di esperienza vengono recuperati da Adobe Experience Platform come raccolta in ordine cronologico inverso, quindi:
Ad esempio, supponiamo che desideri indirizzare l’attività ai clienti con un abbandono del carrello negli ultimi 7 giorni per inviare un messaggio quando il cliente si avvicina a un negozio, con un’offerta sugli articoli che desiderano che siano in negozio.
Devi creare le seguenti condizioni:
Innanzitutto, rivolgiti ai clienti che hanno visitato il negozio online ma non hanno finalizzato l'ordine negli ultimi 7 giorni.
Questa espressione cerca tutti gli eventi per l'utente specificato negli ultimi 7 giorni:
Quindi seleziona tutti gli eventi addtocart che non si sono trasformati in un completePurchase.
Per inserire rapidamente i campi nell’espressione, fai doppio clic sul campo nel pannello a sinistra dell’editor.
La marca temporale specificata agisce come valore dell'ora della data, la seconda come numero di giorni.
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}))
Questa espressione restituisce un valore booleano.
Ora costruiamo un'espressione che controlla che il prodotto sia in magazzino
#{Inventory.fieldgroup3.quantity} > 0
#{ArriveLumaStudio._acpevangelists1.location.location}
E specificare SKU, utilizzando la funzione first
per recuperare la più recente interazione "addToCart":
#{ExperiencePlatformDataSource
.ExperienceEventFieldGroup
.experienceevent
.first(
currentDataPackField
.productData
.productInteraction == "addToCart"
)
.SKU}
Da qui puoi aggiungere un altro percorso nel tuo percorso per quando il prodotto non è in negozio e inviare una notifica con un’offerta di coinvolgimento. Configura i messaggi di conseguenza e utilizza i dati di personalizzazione per migliorare la destinazione del messaggio.
In condizioni
Questa condizione recupera solo gli eventi recinti geografici attivati in "Arlington":
@{GeofenceEntry
.placeContext
.POIinteraction
.POIDetail
.name} == "Arlington"
Spiegazione: Si tratta di un confronto rigoroso delle stringhe (distinzione tra maiuscole e minuscole), equivalente a una query in modalità semplice che utilizza equal to
con Is sensitive
controllati.
La stessa query con Is sensitive
deselezionata genera la seguente espressione in modalità avanzata:
equalIgnoreCase(@{GeofenceEntry
.placeContext
.POIinteraction
.POIDetail
.name}, "Arlington")
In azioni
La seguente espressione ti consente di definire l’ID del sistema di gestione delle relazioni con i clienti in un campo di personalizzazione delle azioni:
substr(
@{MobileAppLaunch
._myorganization
.identification
.crmid},
1,
lastIndexOf(
@{MobileAppLaunch
._myorganization
.identification
.crmid},
'}'
)
)
Spiegazione: Questo esempio utilizza substr
e lastIndexOf
funzioni per rimuovere le parentesi graffe che racchiudono l’ID CRM passato con un evento di avvio dell’app mobile.
Per ulteriori informazioni su come utilizzare l’editor di espressioni avanzate, consulta questo video.