Helper gs-helpers
Standardwert für Fallback default-value
Der Helper Default Fallback Value wird verwendet, um einen standardmäßigen Fallback-Wert zurückzugeben, wenn ein Attribut leer oder null ist. Dieser Mechanismus funktioniert für Profilattribute und Journey-Ereignisse.
Syntax
Hello {%=profile.personalEmail.name.firstName ?: "there" %}!
In diesem Beispiel wird der Wert there angezeigt, wenn das Attribut firstName dieses Profils leer oder null ist.
Bedingungen if-function
Der Helper if wird zum Definieren eines bedingten Blocks verwendet.
Wenn die Auswertung des Ausdrucks „true“ zurückgibt, wird der Block dargestellt, andernfalls wird er übersprungen.
Syntax
{%#if contains(profile.personalEmail.address, ".edu")%}
<a href="https://www.adobe.com/academia">Check out this link</a>
Nach dem Helper if können Sie eine else-Anweisung einfügen, um einen Code-Block auszuführen, wenn die Auswertung „false“ zurückgibt.
Die elseif-Anweisung gibt eine weitere Bedingung an, die geprüft wird, wenn die erste Anweisung „false“ zurückgibt.
Format
{
{
{%#if condition1%} element_1
{%else if condition2%} element_2
{%else%} default_element
{%/if%}
}
}
Beispiele
-
Rendern verschiedener Produkt-Links basierend auf bedingten Ausdrücken
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%} -
Bestimmen einer E-Mail-Adressenerweiterung
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%} -
Bedingten Link hinzufügen
Der folgende Vorgang fügt einen Link zur Website „www.adobe.com/academia“ für Profile mit „.edu“-E-Mail-Adressen hinzu, zur Website „www.adobe.com/org“ für Profile mit „.org“-E-Mail-Adressen und zur Standard-URL „www.adobe.com/users“ für alle anderen Profile:
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%} -
Bedingte Inhalte basierend auf Zielgruppenzugehörigkeit
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%}
Außer unless
Der Helper unless wird zum Definieren eines bedingten Blocks verwendet. Im Gegensatz zur Hilfsfunktion if wird der Block gerendert, wenn die Auswertung des Ausdrucks „falsch“ zurückgibt.
Syntax
{%#unless unlessCondition%} element_1 {%else%} default_element {%/unless%}
Beispiel
Darstellung von Inhalt je nach E-Mail-Adressenerweiterung:
{%#unless endsWith(profile.personalEmail.address, ".edu")%}
Some Normal Content
{%else%}
Some edu specific content
{%/unless%}
Jeweils each
Der Helper each wird verwendet, um die Elemente eines Arrays zu verarbeiten.
Die Syntax des Helpers lautet {{#each ArrayName}} IhrInhalt {{/each}}.
Die einzelnen Array-Elemente werden durch die Verwendung des Keywords this innerhalb des Blocks referenziert. Der Index des Array-Elements kann mithilfe von {{@index}} gerendert werden.
Syntax
{{#each profile.productsInCart}}
<li>{{this.name}}</li>
{{/each}}
Beispiel
{{#each profile.homeAddress.city}}
{{@index}} : {{this}}<br>
{{/each}}
Beispiel
So wird eine Liste von Produkten dargestellt, die dieser Benutzer in den Warenkorb gelegt hat:
{{#each profile.products as |product|}}
<li>{{product.productName}} {{product.productRating}}</li>
{{/each}}
each-Helper verwenden, um die von benutzerdefinierten Aktionsantworten zurückgegebenen Arrays zu durchlaufen. Ein Beispiel für die Iteration über verschachtelte Arrays aus einer benutzerdefinierten Aktionsantwort finden Sie unter Verwenden von benutzerdefinierten Aktionsantworten in nativen Kanälen.Mit with
Der Helper with wird verwendet, um das Auswertungs-Token des Vorlagenteils zu ändern.
Syntax
{{#with profile.person.name}}
{{this.firstName}} {{this.lastName}}
{{/with}}
Der Helper with ist auch nützlich, um die Kurzform einer Variable zu definieren.
Beispiel
Verwenden Sie „with“ zur Definition eines kurzen Aliasnamens für einen langen Variablennamen:
{{#with profile.person.name as |name|}}
Hi {{name.firstName}} {{name.lastName}}!
Checkout our trending products for today!
{{/with}}
Zulassen let
Die let-Funktion ermöglicht das Speichern eines Ausdrucks als Variable, die später in einer Abfrage verwendet werden kann.
Syntax
{% let variable = expression %} {{variable}}
Beispiel
Im folgenden Beispiel können Sie die Gesamtsumme der Preise für Produkte im Warenkorb mit Preisen zwischen 100 und 1000 berechnen.
{% let sum = 0%}
{{#each profile.productsInCart as |p|}}
{%#if p.price>100 and p.price<1000%}
{%let sum = sum + p.price %}
{%/if%}
{{/each}}
{{sum}}
abort abort
Der abort-Helper stoppt den Nachrichtenversand, wenn er während des Renderings erreicht wird.
Verwenden Sie einen bedingten Block wie {%#if%}, um zu steuern, wann der Helper ausgeführt wird. Bei Ausführung von abort wird der Versand abgebrochen.
Syntax
Parameter
codedescriptionBeispiel
In diesem Beispiel wird das Rendering fortgesetzt, wenn email vorhanden ist. Wenn die Bedingung erfüllt ist, wird der Versand mit der angegebenen code und description abgebrochen.
JSON analysieren parse-json
Der parseJson analysiert eine JSON-Zeichenfolge und speichert das analysierte Objekt in einer Vorlagenvariablen, damit Sie direkt auf Felder in Personalisierungsausdrücken zugreifen können.
Syntax
Parameter
jsonStrresultBeispiel
Wert unter dem Pfad value-at-path
Der valueAtPath-Helper weist einer Vorlagenvariablen einen Wert aus einem Datenpfad zu. Sie können optional einen Index verwenden, um ein bestimmtes Element aus Arrays oder Sammlungen zu extrahieren.
Syntax
Parameter
pathidxresultBeispiel
URL url
Der url-Helper wird verwendet, um Links nachzuverfolgen, URLs zu kürzen und Deeplinks in den Inhalt Ihrer SMS-Nachricht einzufügen.
Syntax
{{url originalUrl='<your_url>' type='<DEEPLINK>' action='CLICK'}}
Parameter
originalUrltypeDEEPLINK, um einen bestimmten Bildschirm in einer App zu öffnen.actionCLICK, um Klicks auf den Link nachzuverfolgen.Beispiel
{{url originalUrl='https://www.mybusiness.com/offers/summer-sale' type='DEEPLINK' action='CLICK'}}
Datensatzsuche dataset-lookup
datasetLookup-Helper für eine begrenzte Anzahl von Kundinnen und Kunden in Ausdrucksfragmenten verwendet werden. Um Zugriff zu erhalten, wenden Sie sich an den Adobe-Support.Der datasetLookup-Helper ruft während der Personalisierung Daten aus Adobe Experience Platform-Eintragsdatensätzen ab, damit Sie Feldwerte verwenden können, die nicht im Profil oder in der Ereignis-Payload gespeichert sind.
Syntax
{{datasetLookup datasetId="datasetId" id="key" result="store" required=false}}
Referenzieren Sie die abgerufenen Felder mit {{result.fieldId}}, wobei result der Wert ist, den Sie an den result-Parameter übergeben.
Informationen zur Aktivierung von Datensätzen, Parameterdetails, Beispiele und Tests finden Sie unter Verwenden von Adobe Experience Platform-Daten für die Personalisierung.
Ausführungsmetadaten execution-metadata
Die Hilfsfunktion executionMetadata ermöglicht die dynamische Erfassung und Speicherung benutzerdefinierter Schlüssel-Wert-Paare im Ausführungskontext der Nachricht.
- Die Ausführungsmetadaten-Funktion wird von benutzerdefinierten Aktionen und in eingehenden Kanälen (Web, Code-basiertes Erlebnis, In-App-Nachricht, Inhaltskarten) nicht unterstützt.
- Die Funktion „Ausführungsmetadaten“ ist nicht sichtbar, wenn der Inhalt selbst angezeigt wird.
Syntax
{{executionMetadata key="your_key" value="your_value"}}
In dieser Syntax bezieht sich key auf den Metadatennamen und value sind die beizubehaltenden Metadaten.
Anwendungsfall
Mit dieser Funktion können Sie kontextuelle Informationen an beliebige native Aktionen Ihrer Kampagnen oder Journeys anhängen. Dadurch können Sie kontextuelle Versanddaten in Echtzeit für verschiedene Zwecke wie Tracking, Analyse, Personalisierung und nachgelagerte Verarbeitung in externe Systeme exportieren.
Sie können beispielsweise die Hilfsfunktion „Ausführungsmetadaten“ verwenden, um eine bestimmte ID an jeden Versand anzuhängen, der an jedes Profil gesendet wird. Diese Informationen werden zur Laufzeit generiert und die angereicherten Ausführungsmetadaten können dann zur nachgelagerten Abstimmung mit einer externen Reporting-Plattform exportiert werden.
Funktionsweise
Wählen Sie in einer Kampagne oder Journey ein beliebiges Element aus Ihrem Kanalinhalt aus und fügen Sie mithilfe des Personalisierungseditors diesem Element die Hilfsfunktion executionMetadata hinzu.
Zur Laufzeit wird der Metadatenwert dem vorhandenen Nachrichten-Feedback-Ereignisdatensatz hinzugefügt, wobei das folgende Schema hinzugefügt wird:
"_experience": {
"customerJourneyManagement": {
"messageExecution": {
"metadata": {
"your_key": "your_value"
}
}
}
}
Einschränkungen
- Pro Aktion können maximal 50 Schlüssel-Wert-Paare übergeben werden.
- Die gesamte Metadaten-Payload ist auf 2 KB pro Aktion beschränkt. Wenn das Limit von 2 KB überschritten wird, wird die Nachricht weiterhin zugestellt, aber jedes Schlüssel-Wert-Paar kann abgeschnitten werden.
- Metadaten werden nicht für Profile erfasst, die von der Aktion ausgeschlossen sind. Wenn ein Profil vom Erhalt einer Nachricht ausgeschlossen wird, wird für dieses Profil kein Metadateneintrag im Datensatz erstellt.
Beispiel
{{executionMetadata key="firstName" value=profile.person.name.firstName}}
In diesem Beispiel ist unter der Annahme profile.person.name.firstName = „Alex“ die resultierende Entität:
{
"key": "firstName",
"value": "Alex"
}
Verschlüsseln url-parameter-encryption-helper
Mit der Funktion Encrypt können Sie jeden Ausdruckswert zum Zeitpunkt des Renderns verschlüsseln – normalerweise ein Profilattribut, ein Token oder eine in eine Zeichenfolge umgewandelte JSON-Struktur, die Sie im Ausdruck erstellen –, bevor er in einen Abfrageparameter auf Tracking-Links oder Landingpages geschrieben wird.
Werte, die in der URL als einfacher Text angezeigt würden (einschließlich PII oder anderen vertraulichen Daten), sind nicht lesbar, wenn der Link geprüft oder weitergeleitet wird. Nur die mit diesem Helper umschlossenen Werte werden verschlüsselt. Der Rest der URL bleibt unverändert.
Anwendungsfall
Mit diesem Helper können Sie vertrauliche Profildaten (PII) schützen, bevor Sie sie in die gerenderte Ausgabe aufnehmen.
Voraussetzung
Admins müssen mindestens einen aktiven Schlüssel in der Schlüsselregistrierung auf Sandbox-Ebene erstellen. Weitere Informationen zum Erstellen und Verwalten von Listen
Syntax
{{encrypt dataPath keyName="keyName" version="version" result="variableName"}}
Verwendung
Dieser Helper verschlüsselt vertrauliche Daten und speichert das Ergebnis in einer Vorlagenvariablen.
Sie können den Helper je nach URL-Design und Längenbeschränkungen auf einen, mehrere oder alle Parameter in einem Link anwenden.
- Eingabe:
dataPath(Datenverweis, der in eine Zeichenfolge aufgelöst werden muss),keyName(Verschlüsselungsschlüsselkennung),version(optionale Schlüsselversion),result(Variablenname für verschlüsselte Ausgabe) - Ausgabe: Stellt den verschlüsselten Wert in der angegebenen
result-Variablen zur Verfügung. - Ergebnisformat: Die Ergebnisvariable enthält eine durch Punkte getrennte Zeichenfolge:
keyName.version.nonce.authTag.cipherText(alle Segmente außerkeyNameundversionsind URL-sicher, Base64-codiert, ohne Abstand). - Statische Schlüsselanforderungen:
keyNameundversionmüssen statische Zeichenfolgenliterale sein (dynamische Verweise werden nicht unterstützt). - Standardversion: Der Parameter
versionist optional. Wird er weggelassen, löst der Verschlüsselungsschlüssel-Dienst die Standardversion auf.
Beispiele
{{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.Sm9obgSchutzmechanismen
-
Die Entschlüsselung erfolgt außerhalb von Journey Optimizer auf den Landingpages, in Apps oder APIs. Planen Sie den Lebenszyklus und die Rotation der Schlüssel mit Ihrem Sicherheits-Team, damit historische Payloads bei Bedarf weiterhin entschlüsselt werden können.
-
Die widerrufenen Schlüssel dürfen nicht für eine neue Verschlüsselung verwendet werden. Befolgen Sie Ihre Sicherheitsrichtlinien für Rotation und Stilllegung.
-
Da der Verschlüsselungsprozess ressourcenintensiv ist, kann die Verwendung der Funktion
Encryptden Durchsatz zum Zeitpunkt des Renderns beeinträchtigen.