Häufig gestellte Fragen
Auf dieser Seite finden Sie Antworten auf häufig gestellte Fragen zu Liquid.

Braze unterstützt derzeit nicht 100 % von Shopifys Liquid, sondern nur bestimmte Teile, die wir in unserer Dokumentation beschrieben haben. Testen Sie alle Nachrichten mit Liquid vor dem Versand, um das Risiko von Fehlern oder die Verwendung von nicht unterstütztem Liquid zu minimieren.
Über Liquid in Braze
Wie verwende ich Liquid-Snippets in Braze?
In vielen Fällen können Sie Liquid-Snippets einbinden, indem Sie zu Ihren Campaigns oder Canvases gehen und Liquid über das Personalisierungs-Modal in Bereichen wie dem E-Mail-Nachrichtentext oder in Ihren Segments einfügen.
Wo kann ich mehr erfahren?
Weitere Informationen zu Liquid finden Sie in unserem geführten Braze-Lernpfad Dynamische Personalisierung mit Liquid. Sie können auch die Liquid-Anwendungsbeispiele als Inspiration und für eine Reihe von Personalisierungsbeispielen mit Liquid nutzen.
Was ist der Unterschied zwischen der Verwendung von Liquid und Connected Content für die Personalisierung?
Braze Connected Content ist ein Beispiel für einen Liquid-Tag. Es wird ebenfalls für die Personalisierung verwendet, aber die Daten stammen von einem externen Endpunkt und nicht aus gespeicherten Daten innerhalb von Braze. Besuchen Sie unseren speziellen Bereich zu Connected Content, um mehr darüber zu erfahren, wie Sie die Personalisierung Ihrer Nachrichten erweitern können.
Was ist Liquid-Templating?
Dies ist die gebräuchlichste Art, Liquid in Braze zu verwenden. Beim Liquid-Templating werden Daten aus dem Profil einer Nutzerin oder eines Nutzers in eine Nachricht eingefügt. Diese Daten können vom Vornamen bis hin zu angepassten Events aus einer Event-getriggerten Nachricht reichen.
Eine vollständige Liste der unterstützten Liquid-Tags finden Sie unter Unterstützte Personalisierungs-Tags.
Werden durch die Verwendung von Liquid Datenpunkte protokolliert?
Nein.
Personalisierungs-Tags und Datenquellen
Wie kann ich Liquid verwenden, um eine personalisierte Begrüßung zu senden?
Für eine personalisierte Begrüßung mit dem Vornamen einer Nutzerin oder eines Nutzers können Sie Standard-Nutzerprofilattribute wie {{${first_name}}} und {{${last_name}}} verwenden.
Sie können auch eine Liquid-{% if X %}-Anweisung verwenden, um bedingtes Rendering basierend auf beliebigen Kriterien durchzuführen, wie zum Beispiel dem Wochentag oder angepassten Attributen. Weitere Informationen zu den unterstützten Liquid-Operatoren, die in bedingten Anweisungen verwendet werden können, finden Sie unter Operatoren.
Wie kann ich eine Nachricht basierend auf dem Standort einer Nutzerin oder eines Nutzers personalisieren?
Es gibt ein Standardattribut für den Standort von Nutzer:innen: {{${most_recent_location}}}.
Was ist der Unterschied zwischen {{campaign.${name}}} und {{campaign.${message_name}}}?
Sowohl {{campaign.${name}}} als auch {{campaign.${message_name}}} sind unterstützte Liquid-Personalisierungs-Tags. Beide Tags referenzieren Campaign-Attribute. {{campaign.${name}}} bezeichnet den Namen Ihrer Campaign, und {{campaign.${message_name}}} ist der Name Ihrer Nachrichtenvariante.
Informationen zur Verwendung in URLs und Query-Strings (zum Beispiel wenn ein Name % oder Leerzeichen enthält) finden Sie unter Campaign-Namen in URLs.
Wie verwende ich Liquid mit verschachtelten Objekten?
Braze verfügt über ein integriertes Feature, das Liquid-Code für Segmente generiert, der in einer Nachricht verwendet werden kann. Konkret können Sie ein Segment erstellen, das mehrere Kriterien in einem Objekt abgleicht.
Weitere Informationen finden Sie unter Segmentierung mit mehreren Kriterien.
Wie verwende ich Event-Attribute, um eine Nachricht zu personalisieren, die von einem Event getriggert wird?
Sie können auf Eigenschaften von API-getriggerten Events mit dem api_triggered_property-Tag zugreifen: {{api_trigger_properties.${attribute_key}}}.
Unterstützt Braze ein Array von Arrays in Liquid?
Liquid unterstützt nativ keine Arrays von Arrays. Speichern Sie Werte als Array von kommaseparierten Strings und verwenden Sie den split-Filter, um sie bei Bedarf zu parsen.
Variablen und Syntax
Wie weise ich Variablen mit Liquid zu?
Sie können Variablen erstellen und zuweisen, indem Sie den assign-Tag verwenden. Dadurch wird eine Variable im Nachrichten-Editor erstellt, die auch in Ihrer gesamten Nachricht referenziert werden kann.
Wann sollte ich assign und wann capture verwenden?
Sowohl assign als auch capture erstellen Liquid-Variablen, dienen aber unterschiedlichen Zwecken:
assigneignet sich für einfache Variablen, die einen einzelnen Wert speichern, wie einen Boolean, eine Zahl oder einen einfachen String. Sie können auch einen einzelnen Filter in derselben Zeile anwenden.captureeignet sich zum Speichern eines Textblocks, der mehrere Variablen, Strings oder komplexe Ausdrücke enthalten kann.
Verwenden Sie capture, wenn der Wert zu komplex für eine einzelne assign-Anweisung ist, beispielsweise bei URLs, die andere Liquid-Variablen oder angepasste Attribute als Parameter verwenden. capture wird auch bevorzugt, wenn Liquid-Variablen im Body von Connected-Content-Aufrufen implementiert werden.
Beispiele
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{% comment %}Use assign for custom attributes{% endcomment %}
{% assign name = {{custom_attribute.${first_name}}} %}
{% assign price = {{custom_attribute.${price}}} | plus: 0 %}
{% comment %}Use assign for a simple variable{% endcomment %}
{% assign discount_label = "20% off" %}
Hello {{ customer.first_name | default: "there" }}, enjoy {{ discount_label }} on your next order!
{% comment %}Use capture for complex strings{% endcomment %}
{% capture greeting %}Hello, {{custom_attribute.${first_name}}}! Your order #{{custom_attribute.${order_id}}} is ready.{% endcapture %}
{{ greeting }}
{% comment %}Use capture to create conditional content{% endcomment %}
{% capture promo_block %}
{% if customer.vip == true %}
As a VIP member, you get free shipping.
{% else %}
Join our VIP program to unlock free shipping.
{% endif %}
{% endcapture %}
Werden Liquid-Variablen zwischen Betreffzeile und Nachrichtentext übernommen?
Nein. Braze rendert jede Nachrichtenkomponente separat (z. B. Betreffzeile, HTML-Body, Preheader und Push-Titel). Zuweisungen oder Captures, die Sie in einem Feld vornehmen, sind in einem anderen nicht verfügbar. Wiederholen Sie den Liquid- oder Connected-Content-Aufruf in jedem Feld, das den Wert benötigt.
Was ist For-Loop-Logik und wie kann ich sie verwenden?
For-Loops werden auch als Iterations-Tags bezeichnet. Die Verwendung von For-Loop-Logik in Ihren Liquid-Snippets ermöglicht es Ihnen, Liquid-Blöcke zu durchlaufen, bis eine Bedingung erfüllt ist.
In Braze kann dies verwendet werden, um Elemente in einem Array-Attribut oder eine Liste von Werten und Objekten zu prüfen, die von einem Katalog, einer Selektion oder einem Connected-Content-Aufruf zurückgegeben werden. Konkret können Sie For-Loop-Logik als Teil Ihres Messagings verwenden, um zu prüfen, ob ein Produkt auf Lager ist oder ob ein Produkt eine Mindestbewertung hat.
Angenommen, Sie haben einen Katalog namens „Games“ mit einer Selektion namens „cheap_games“. Um die Titel der Spiele in „cheap_games“ abzurufen, können Sie dieses Liquid-Snippet verwenden:
1
2
3
4
{% catalog_selection_items Games cheap_games %}
{% for item in items %}
Get this game: {{ item.title }}
{% endfor %}
Sobald die festgelegten Bedingungen erfüllt sind, kann Ihre Nachricht fortfahren. Die Verwendung dieser Logik ist eine hilfreiche Möglichkeit, Zeit zu sparen, anstatt Liquid-Blöcke für verschiedene Bedingungen zu wiederholen.
Was ist Abbruch-Logik und wie kann ich sie verwenden?
Abbruch-Logik ermöglicht es Ihnen, den Versand einer Nachricht zu stoppen, wenn die Bedingungen erfüllt sind. Dies ist besonders hilfreich, um zu verhindern, dass unvollständige Nachrichten an Ihre Nutzer:innen gesendet werden. Weitere Beispiele für Abbruch-Logik in Ihren Marketing-Campaigns finden Sie unter Nachrichten abbrechen.
Kann ich Liquid innerhalb des abort_message-Tags verwenden?
Nein. Der {% abort_message %}-Tag akzeptiert einen statischen String in Anführungszeichen, keine Liquid-Personalisierung. Verwenden Sie andere Liquid-Logik vor dem Tag, wenn Sie ein bedingtes Abbruchverhalten benötigen.
Wie maskiere ich Telefonnummern mit Liquid?
Sie können Telefonnummern mit dem slice-Filter maskieren, um bestimmte Ziffern zu extrahieren, und mit dem append-Filter, um sie mit Maskierungszeichen zu kombinieren.
Alle Ziffern außer den letzten vier maskieren
Um eine 10-stellige Telefonnummer als ******7890 anzuzeigen:
1
2
3
4
5
6
7
8
9
{% assign phone = {{${phone_number}}} | split: '' %}
{% assign masked_phone = '' %}
{% for i in (0..5) %}
{% assign masked_phone = masked_phone | append: '*' %}
{% endfor %}
{% for i in (6..9) %}
{% assign masked_phone = masked_phone | append: phone[i] %}
{% endfor %}
{{ masked_phone }}
Die ersten drei und letzten vier Ziffern anzeigen
Um eine 10-stellige Telefonnummer als 123***7890 anzuzeigen:
1
2
3
4
{% assign first_part = {{${phone_number}}} | slice: 0, 3 %}
{% assign last_part = {{${phone_number}}} | slice: -4, 4 %}
{% assign masked_phone_number = first_part | append: "***" | append: last_part %}
{{ masked_phone_number }}
Canvas, Kataloge und Trigger-Eigenschaften
Warum schlägt mein API-getriggertes Liquid in Braze fehl?
Ein häufiger Grund ist ein zusätzliches Paar geschweifter Klammern. Zum Beispiel ist {{{api_trigger_properties.${attribute_key}}}} keine gültige Braze-Personalisierungssyntax. Verwenden Sie genau zwei öffnende und zwei schließende Klammern: {{api_trigger_properties.${attribute_key}}}.
Gibt es Größenbeschränkungen für Canvas-Kontexteigenschaften?
Braze erzwingt kein festes Limit für Canvas-Kontexteigenschaften, aber halten Sie Payloads unter ungefähr 1 KB (~1.000 Zeichen). Größere Objekte können den Speicherverbrauch erhöhen und das Rendern von Nachrichten bei Versendungen mit hohem Volumen verzögern.
Warum erhalte ich einen Liquid-Fehler, wenn ich bestimmte Datentypen im Dashboard in der Vorschau anzeige?
Einige Typen von Canvas-Kontexteigenschaften erfordern eine Typumwandlung in Liquid, bevor Sie sie in Vergleichen oder Berechnungen verwenden können. Wenn Sie beispielsweise numerisches Verhalten benötigen:
1
{{context.${property_name} | plus: 0}}
Warum gibt mein Katalog-Liquid-Snippet eine Abbruchmeldung zurück?
Wenn ein Katalog-Liquid-Snippet beim Senden abbricht, erstellen Sie das Snippet über das Personalisierungsmenü neu, indem Sie einzelne Katalogartikel auswählen, anstatt eine Massen- oder vollständig dynamische Auswahl zu verwenden. Siehe Kataloge und Selections.
Content Blocks und der Nachrichten-Editor
Warum gibt es zusätzliche Abstände in Nachrichten, die Content Blocks verwenden?
Wenn Sie zusätzliche Abstände in gesendeten Nachrichten bemerken, die Content Blocks mit Liquid verwenden, haben Sie möglicherweise unnötige Absatz- oder Zeilenumbrüche innerhalb Ihrer bedingten Anweisungen. Schreiben Sie Ihre bedingten Anweisungen in einer einzigen Zeile statt über mehrere Zeilen verteilt.
Beispiel
1
{% if {{custom_attribute.${has_discount}}} == true %}Discounted Item{% elsif {{custom_attribute.${is_new_arrival}}} == true %}New Arrival{% else %}Regular Item{% endif %}
Warum erzeugt mehrzeiliger Liquid-Code unerwartete Leerzeichen in den Drag-and-drop-Editoren?
Wenn Liquid-Code im Drag-and-drop-Editor für In-App-Nachrichten oder im Drag-and-drop-Editor für E-Mails über mehrere Zeilen verteilt ist, wird jeder {% %}-Block als nicht sichtbarer Text gerendert. Die Zeilenumbrüche werden als leere Zeilen vor der sichtbaren Ausgabe beibehalten, was zu unerwarteten Leerzeichen führt.
Lösung 1: Whitespace-Control-Tags verwenden (empfohlen)
Fügen Sie Bindestriche innerhalb der Tag-Begrenzer hinzu, um umgebende Leerzeichen zu entfernen und den Code gleichzeitig lesbar zu halten:
1
2
3
4
5
{%- assign event_date = {{custom_attribute.${PreferredPickupDate}}} | date: "%s" -%}
{%- assign today = 'now' | date: "%s" -%}
{%- assign difference = event_date | minus: today -%}
{%- assign difference_days = difference | divided_by: 86400 -%}
Only {{ difference_days }} days until your move!
Lösung 2: Liquid in einer einzigen Zeile zusammenfassen
Entfernen Sie alle Zeilenumbrüche, sodass der Liquid-Code in einer durchgehenden Zeile steht:
1
{% assign event_date = {{custom_attribute.${PreferredPickupDate}}} | date: "%s" %}{% assign today = 'now' | date: "%s" %}{% assign difference = event_date | minus: today %}{% assign difference_days = difference | divided_by: 86400 %}Only {{ difference_days }} days until your move!
Beide Ansätze verhindern unerwünschte leere Zeilen in Ihrer gerenderten Nachricht. Dies gilt für den Drag-and-drop-Editor für In-App-Nachrichten, den Drag-and-drop-Editor für E-Mails und Content Blocks mit Liquid. Weitere Informationen finden Sie unter Whitespace control.
Warum fehlt mein Content Block unter Row im Drag-and-drop-Suchtool?
Einige Content Blocks werden unter Row in der Drag-and-drop-Editor-Suche nicht angezeigt. Fügen Sie einen HTML-Block über den Tab Content (Advanced) hinzu und setzen Sie dann den Content-Block-Liquid-Tag in diesen HTML-Block ein, um den Block-Inhalt zu rendern.
Warum unterscheidet sich die Vorschau meines Drag-and-drop-Content-Blocks von der Erstellungsansicht?
Wenn Sie einen Content Block mit Liquid als Template verwenden, werden mobile Media-Queries im Block in der Vorschau möglicherweise nicht auf die gleiche Weise angewendet wie beim direkten Ziehen des Blocks in eine Nachricht. Das Ziehen des Blocks behält das Layout bei, entkoppelt ihn jedoch vom Quellblock, sodass zukünftige Änderungen am Block die Nachricht nicht mehr automatisch aktualisieren.
Wie kann ich Event-Property-Werte im Nachrichten-Editor in der Vorschau anzeigen?
Verwenden Sie Vorschau als angepasste:r Nutzer:in und geben Sie Beispielwerte für angepasste Event-Properties für die:den Nutzer:in ein, die:den Sie in der Vorschau anzeigen. Dies ist auch nützlich für Nachrichten mit Abbruchlogik, wenn Sie Vorschauwerte benötigen, die keinen Abbruch auslösen.
Liquid in E-Mail-Nachrichten
Warum wird meine Nachricht mit „Invalid from email address for recipient:“ abgebrochen?
Dieser Abbruch tritt auf, wenn Liquid in der Absender-Adresse ungültige Syntax erzeugt, z. B. eine fehlende Variable, zusätzliche Leerzeichen oder unzulässige Zeichen. Zeigen Sie eine Vorschau mit einer Testnutzer:in an und überprüfen Sie, ob die gerenderte Absender-Adresse mit Ihrer konfigurierten Versanddomain übereinstimmt.
Wie erstelle ich eine dynamische Antwortadresse?
Verwenden Sie Liquid im Feld Antwortadresse, wenn Ihr Workspace die dynamische Antwortadress-Konfiguration unterstützt. Kombinieren Sie dies bei Bedarf mit Ihren Einstellungen für den Absender-Anzeigenamen. Weitere Informationen zu Workspace-spezifischen Optionen finden Sie unter E-Mail-Einstellungen.
Fehlerbehebung bei Liquid-Fehlern
Warum funktioniert mein Liquid-Code nicht, obwohl er korrekt aussieht?
Wenn Ihr Liquid-Code syntaktisch korrekt erscheint, aber nicht funktioniert, prüfen Sie, ob typografische Anführungszeichen (geschwungene Anführungszeichen wie ' ' oder " ") und typografische Gedankenstriche (Geviertstriche wie —) anstelle von geraden Anführungszeichen (' ' oder " ") und Bindestrichen (-) verwendet werden. Liquid erkennt nur gerade ASCII-Zeichen, daher verursachen typografische Anführungszeichen und Gedankenstriche Parsing-Fehler.
Dies passiert häufig, wenn die macOS-Tastatureinstellung Typografische Anführungszeichen und Gedankenstriche verwenden aktiviert ist, die Zeichen beim Tippen im Braze-Dashboard automatisch umwandelt.
So deaktivieren Sie diese Einstellung unter macOS:
- Gehen Sie zu Systemeinstellungen > Tastatur > Texteingabe > Bearbeiten.
- Deaktivieren Sie Typografische Anführungszeichen und Gedankenstriche verwenden.
| Beispiel | Typografische Anführungszeichen (funktioniert nicht) | Gerade Anführungszeichen (funktioniert) |
|---|---|---|
| Standardwert | {{${first_name} | default: 'Torchie'}} |
{{${first_name} | default: 'Torchie'}} |
| Bedingung | {% if ${country} contains 'US' %} |
{% if ${country} contains 'US' %} |
Dies gilt für Standardwerte, Bedingungen und jeden anderen Liquid-Code, der Anführungszeichen verwendet. Typografische und gerade Anführungszeichen können auf dem Bildschirm gleich aussehen. Vergleichen Sie Ihren Code daher sorgfältig oder fügen Sie ihn in einen Nur-Text-Editor ein.
Weitere Informationen zur Verwendung von Anführungszeichen in Liquid finden Sie unter Liquid-Syntax.
Warum wird der Liquid-Fehler „Unexpected end token“ angezeigt?
Dieser Fehler weist in der Regel auf zusätzliche oder fehlende geschweifte Klammern hin. Verschachteln Sie {{ }} nicht innerhalb eines anderen Liquid-Tag-Ausdrucks. Verwenden Sie beispielsweise {{custom_attribute.${date_of_birth} | date: '%s'}}, anstatt die Attributreferenz in ein zusätzliches Klammerpaar einzuschließen.
Warum ist der Connected-Content-Retry für meine In-App-Nachricht nicht verfügbar?
Der {% connected_content %}-Tag mit Retry wird nicht für alle Nachrichtentypen unterstützt, einschließlich einiger In-App-Nachrichtenformate. Entfernen Sie Retry-Parameter oder verwenden Sie einen unterstützten Kanal für Connected-Content-Aufrufe mit Retry.