L'editor di espressioni avanzate può essere utilizzato per creare condizioni che consentono di filtrare gli utenti durante i viaggi. Queste condizioni consentono di eseguire il targeting degli utenti in base all'ora, alla data, alla posizione, alla durata o ad azioni quali l'acquisto o l'abbandono dei carrelli in modo che possano essere riassegnati durante il viaggio.
Gli eventi iniziano con @, origini dati con #.
L'editor di espressioni avanzate è obbligatorio per eseguire query sulle serie temporali, ad esempio un elenco di acquisti o clic passati sui messaggi. Tali query non possono essere eseguite utilizzando l'editor semplice.
Gli eventi esperienza vengono recuperati dall'Adobe Experience Platform come raccolta in ordine cronologico inverso, di conseguenza:
Ad esempio, supponiamo di voler indirizzare i 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 voleva che fossero in negozio.
È necessario creare le seguenti condizioni:
Innanzitutto, eseguite il targeting dei clienti che hanno visitato lo store online ma non hanno completato 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, fate doppio clic sul campo nel pannello sinistro dell’editor.
La marca temporale specificata funge da valore data e ora, la seconda da 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 controllando che il prodotto sia in magazzino
#{Inventory.fieldgroup3.quantity} > 0
#{ArriveLumaStudio._acpevangelists1.location.location}
E specificare SKU, utilizzando la funzione first
per recuperare l'interazione "addToCart" più recente:
#{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 le notifiche con l'offerta di partecipazione. 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 geofence attivati in "Arlington":
@{GeofenceEntry
.placeContext
.POIinteraction
.POIDetail
.name} == "Arlington"
Spiegazione: Si tratta di un confronto stretto tra stringhe (con distinzione tra maiuscole e minuscole), equivalente a una query in modalità semplice che utilizza equal to
con Is sensitive
selezionato.
La stessa query con Is sensitive
non selezionato genererà la seguente espressione in modalità avanzata:
equalIgnoreCase(@{GeofenceEntry
.placeContext
.POIinteraction
.POIDetail
.name}, "Arlington")
In azioni
La seguente espressione consente di definire l'ID CRM in un campo di personalizzazione azione:
substr(@{MobileAppLaunch
._myorganization
.identification
.crmid}, 1,
lastIndexOf(@{MobileAppLaunch
._myorganization
.identification
.crmid}
}
))
Spiegazione: In questo esempio vengono utilizzate le funzioni substr
e lastIndexOf
per rimuovere le parentesi graffe che contengono l'ID CRM passato con un evento di avvio dell'app mobile.
Per ulteriori informazioni sull'utilizzo dell'editor di espressioni avanzate, guardate questo video.