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 catalog</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}}
Ricerca nei set di dati dataset-lookup
datasetLookup può essere utilizzata all'interno di frammenti di espressione per un gruppo limitato di clienti. Per potervi accedere, contatta il tuo rappresentante Adobe.L'helper datasetLookup recupera i dati dai set di dati dei record di Adobe Experience Platform durante la personalizzazione, in modo da poter utilizzare valori di campo non memorizzati nel profilo o nel payload dell'evento.
Sintassi
{{datasetLookup datasetId="datasetId" id="key" result="store" required=false}}
Riferimento ai campi recuperati con {{result.fieldId}}, dove result è il valore passato al parametro result.
Per l'abilitazione del set di dati, i dettagli dei parametri, gli esempi e i test, vedere Utilizzare i dati di Adobe Experience Platform per la personalizzazione.
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.
- La funzione dei metadati di esecuzione non è supportata da azioni personalizzate.
- La funzione Execution Metadata non è visibile quando viene visualizzato il contenuto stesso.
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"
}
}
}
}
Limitazioni
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.
I metadati non vengono acquisiti per i profili esclusi dall’azione. Quando un profilo viene escluso dalla ricezione di un messaggio, non viene creata alcuna voce di metadati per tale profilo nel set di dati.
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"
}
Crittografa url-parameter-encryption-helper
La funzione Encrypt consente di crittografare qualsiasi valore di espressione al momento del rendering, in genere un attributo di profilo, un token o persino una struttura JSON stratificata creata nell'espressione, prima che venga scritto in un parametro di query nei collegamenti di tracciamento o nelle pagine di destinazione.
I valori che appaiono come testo normale nell’URL (inclusi dati PII o altri dati sensibili) non sono leggibili quando il collegamento viene ispezionato o inoltrato. Solo i valori racchiusi con questo helper sono crittografati; il resto dell’URL rimane invariato.
Caso d’uso
Questo helper consente di proteggere i dati di profilo sensibili (PII) prima di includerli nell’output di rendering.
Prerequisito
Un amministratore deve creare almeno una chiave attiva nel registro delle chiavi a livello di sandbox. Scopri come creare e gestire le chiavi
Sintassi
{{encrypt dataPath keyName="keyName" version="version" result="variableName"}}
Utilizzo
Questo helper crittografa i dati sensibili e memorizza il risultato in una variabile di modello.
Puoi applicare l’helper a uno, più o tutti i parametri di un collegamento, a seconda della progettazione dell’URL e dei vincoli di lunghezza.
- Input:
dataPath(riferimento dati che deve essere risolto in una stringa),keyName(identificatore chiave di crittografia),version(versione chiave opzionale),result(nome variabile per output crittografato) - Output: rende disponibile il valore crittografato nella variabile
resultspecificata. - Formato risultato: la variabile risultato contiene una stringa separata da punti:
keyName.version.nonce.authTag.cipherText(tutti i segmenti trannekeyNameeversionsono codificati con URL Base64 senza spaziatura interna). - Requisiti chiave statica:
keyNameeversiondevono essere valori letterali stringa statici (i riferimenti dinamici non sono supportati). - Versione predefinita: il parametro
versionè facoltativo. Se omesso, il servizio della chiave di crittografia risolve la versione predefinita
Esempi
{{encrypt profile.person.email keyName="email-key" version="1" result="enc"}}{{enc}}email-key.1.RkFrZU5vbmNlQUJD.T3V0cHV0QXV0aFRhZ0Fh.am9obkBleGFtcGxlLmNvbQ{{encrypt profile.person.name.firstName keyName="pii-key" version="2" result="encName"}}{{encName}}pii-key.2.U29tZVJhbmRvbUlW.QXV0aGVudGljYXRpb25UYQ.Sm9obgGuardrail
-
La decrittografia viene gestita all'esterno di Journey Optimizer nelle pagine di destinazione, nelle app o nelle API. Pianifica il ciclo di vita e la rotazione delle chiavi con il team di sicurezza, in modo che i payload storici possano essere decrittografati laddove necessario.
-
Le chiavi revocate non devono essere utilizzate per la nuova crittografia. Seguire i criteri di sicurezza per la rotazione e lo smantellamento.
-
Il processo di crittografia richiede molte risorse e l'utilizzo della funzione
Encryptpuò influire sulla velocità effettiva al momento del rendering.