Esempi di espressione avanzati

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.

NOTA

Gli eventi iniziano con @, origini dati con #.

Creazione di condizioni sugli eventi di esperienza

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:

  • la prima funzione restituirà l’evento più recente
  • l'ultima funzione restituirà quella più vecchia.

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.

NOTA

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

  • In Inventory, questa espressione cerca il campo quantità di un prodotto e specifica che deve essere maggiore di 0.

#{Inventory.fieldgroup3.quantity} > 0

  • A destra, i valori necessari sono specificati, qui, dobbiamo recuperare la posizione dello store, che è mappata dalla posizione dell'evento "ArriveLumaStudio":

#{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.

Esempi di manipolazioni delle stringhe con l’editor di espressioni avanzate

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.

In questa pagina