Helper gs-helpers
Valore di fallback predefinito default-value
L'helper Default Fallback Value viene utilizzato per restituire un valore di fallback predefinito se un attributo è vuoto o nullo. Questo meccanismo funziona per gli attributi del profilo e gli eventi di Percorso.
Sintassi
Hello {%=profile.personalEmail.name.firstName ?: "there" %}!
In questo esempio, il valore there viene visualizzato se l'attributo firstName di questo profilo è vuoto o nullo.
Condizioni if-function
L'helper if viene utilizzato per definire un blocco condizionale.
Se la valutazione dell’espressione restituisce true, il blocco viene renderizzato, altrimenti viene saltato.
Sintassi
{%#if contains(profile.personalEmail.address, ".edu")%}
<a href="https://www.adobe.com/academia">Check out this link</a>
Dopo l'helper if, è possibile immettere un'istruzione else per specificare un blocco di codice da eseguire, se la stessa condizione è false.
L'istruzione elseif specificherà una nuova condizione da verificare se la prima istruzione restituisce false.
Formato
{
{
{%#if condition1%} element_1
{%else if condition2%} element_2
{%else%} default_element
{%/if%}
}
}
Esempi
-
Eseguire il rendering di collegamenti archivio diversi in base alle espressioni condizionali
code language-sql {%#if profile.homeAddress.countryCode = "FR"%} <a href="https://www.somedomain.com/fr">Consultez notre catalogue</a> {%else%} <a href="https://www.somedomain.com/en">Checkout our catalogue</a> {%/if%} -
Determinare l'estensione dell'indirizzo di posta elettronica
code language-sql {%#if contains(profile.personalEmail.address, ".edu")%} <a href="https://www.adobe.com/academia">Checkout our page for Academia personals</a> {%else if contains(profile.personalEmail.address, ".org")%} <a href="https://www.adobe.com/orgs">Checkout our page for Non Profits</a> {%else%} <a href="https://www.adobe.com/users">Checkout our page</a> {%/if%} -
Aggiungere un collegamento condizionale
La seguente operazione aggiungerà un collegamento al sito Web "www.adobe.com/academia'" solo per i profili con indirizzi e-mail "edu", al sito Web "www.adobe.com/org'" per i profili con indirizzi e-mail "org" e all’URL predefinito "www.adobe.com/users'" per tutti gli altri profili:
code language-sql {%#if contains(profile.personalEmail.address, ".edu")%} <a href="https://www.adobe.com/academia">Checkout our page for Academia personals</a> {%else if contains(profile.personalEmail.address, ".org")%} <a href="https://www.adobe.com/orgs">Checkout our page for Non Profits</a> {%else%} <a href="https://www.adobe.com/users">Checkout our page</a> {%/if%} -
Contenuto condizionale basato sull'appartenenza al pubblico
code language-sql {%#if profile.segmentMembership.get("ups").get("5fd513d7-d6cf-4ea2-856a-585150041a8b").status = "existing"%} Hi! Esteemed gold member. <a href="https://www.somedomain.com/gold">Checkout your exclusive perks </a> {%else if profile.segmentMembership.get("ups").get("5fd513d7-d6cf-4ea2-856a-585150041a8c").status = "existing"%} Hi! Esteemed silver member. <a href="https://www.somedomain.com/silver">Checkout your exclusive perks </a> {%/if%}
A meno che unless
L'helper unless viene utilizzato per definire un blocco condizionale. In opposizione all'helper if, se la valutazione dell'espressione restituisce false, viene eseguito il rendering del blocco.
Sintassi
{%#unless unlessCondition%} element_1 {%else%} default_element {%/unless%}
Esempio
Esegui il rendering di alcuni contenuti in base all’estensione dell’indirizzo e-mail:
{%#unless endsWith(profile.personalEmail.address, ".edu")%}
Some Normal Content
{%else%}
Some edu specific content
{%/unless%}
Ogni each
L'helper each viene utilizzato per eseguire l'iterazione su un array.
La sintassi dell'helper è {{#each ArrayName}} YourContent {{/each}}
È possibile fare riferimento ai singoli elementi array utilizzando la parola chiave this all'interno del blocco. È possibile eseguire il rendering dell'indice dell'elemento dell'array utilizzando {{@index}}.
Sintassi
{{#each profile.productsInCart}}
<li>{{this.name}}</li>
{{/each}}
Esempio
{{#each profile.homeAddress.city}}
{{@index}} : {{this}}<br>
{{/each}}
Esempio
Esegui il rendering di un elenco di prodotti che questo utente ha nel carrello:
{{#each profile.products as |product|}}
<li>{{product.productName}} {{product.productRating}}</li>
{{/each}}
Con with
L'helper with viene utilizzato per modificare il token di valutazione della parte modello.
Sintassi
{{#with profile.person.name}}
{{this.firstName}} {{this.lastName}}
{{/with}}
L'helper with è utile anche per definire una variabile di collegamento.
Esempio
Da utilizzare con per l’aliasing di nomi di variabili lunghi a nomi più brevi:
{{#with profile.person.name as |name|}}
Hi {{name.firstName}} {{name.lastName}}!
Checkout our trending products for today!
{{/with}}
Let let
La funzione let consente di archiviare un'espressione come variabile da utilizzare successivamente in una query.
Sintassi
{% let variable = expression %} {{variable}}
Esempio
L'esempio seguente consente di calcolare la somma totale dei prezzi dei prodotti nel carrello con prezzi compresi tra 100 e 1000.
{% let sum = 0%}
{{#each profile.productsInCart as |p|}}
{%#if p.price>100 and p.price<1000%}
{%let sum = sum + p.price %}
{%/if%}
{{/each}}
{{sum}}
Metadati di esecuzione execution-metadata
L'helper executionMetadata consente di acquisire e archiviare in modo dinamico coppie chiave-valore personalizzate nel contesto di esecuzione del messaggio.
Sintassi
{{executionMetadata key="your_key" value="your_value"}}
In questa sintassi, key fa riferimento al nome dei metadati e value sono i metadati da mantenere.
Caso d’uso
Con questa funzione, puoi aggiungere informazioni contestuali a qualsiasi azione nativa delle campagne o dei percorsi. Questo consente di esportare i dati contestuali di consegna in tempo reale verso sistemi esterni per vari scopi come il tracciamento, l’analisi, la personalizzazione e l’elaborazione a valle.
Ad esempio, puoi utilizzare l’helper dei metadati di esecuzione per aggiungere un ID specifico a ciascuna consegna inviata a ciascun profilo. Queste informazioni vengono generate durante il runtime e i metadati di esecuzione arricchiti possono quindi essere esportati per la riconciliazione a valle con una piattaforma di reporting esterna.
Come funziona
Seleziona qualsiasi elemento dal contenuto del canale all'interno di una campagna o di un percorso e, utilizzando l'editor di personalizzazione, aggiungi l'helper executionMetadata a questo elemento.
In fase di esecuzione, il valore dei metadati viene aggiunto al set di dati Message Feedback Event esistente con la seguente aggiunta di schema:
"_experience": {
"customerJourneyManagement": {
"messageExecution": {
"metadata": {
"your_key": "your_value"
}
}
}
}
Limitazione
Esiste un limite massimo di 2 kb per le coppie chiave-valore per azione.
Se viene superato il limite di 2 KB, il messaggio viene comunque recapitato, ma è possibile troncare qualsiasi coppia di valori chiave.
Esempio
{{executionMetadata key="firstName" value=profile.person.name.firstName}}
In questo esempio, supponendo profile.person.name.firstName = "Alex", l'entità risultante è:
{
"key": "firstName",
"value": "Alex"
}