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}}
each per eseguire iterazioni sulle matrici restituite dalle risposte alle azioni personalizzate. Per un esempio di iterazione su array nidificati da una risposta di azione personalizzata, vedere Utilizzo di risposte di azione personalizzate nei canali nativi.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"
}