Skip to content

Bedingte Messaging-Logik

Tags ermöglichen es Ihnen, Programmierlogik in Ihre Messaging-Kampagnen einzubinden. Tags können sowohl für die Ausführung bedingter Anweisungen als auch für fortgeschrittene Anwendungsfälle wie das Zuweisen von Variablen oder das Iterieren durch einen Codeblock verwendet werden.

Diese Seite behandelt, wie Tags verwendet werden können und sollten, z. B. wie Sie mit null-, nil- und leeren Attributwerten umgehen und wie Sie angepasste Attribute referenzieren.

Tags formatieren

Ein Tag muss in {% %} eingeschlossen sein.

Um Ihnen das Leben etwas leichter zu machen, bietet Braze eine Farbformatierung, die in Grün und Lila aktiviert wird, wenn Sie Ihre Liquid-Syntax korrekt formatiert haben. Die grüne Formatierung hilft beim Erkennen von Tags, während die lila Formatierung Bereiche hervorhebt, die Personalisierung enthalten.

Wenn Sie Schwierigkeiten mit bedingter Nachrichtenlogik haben, versuchen Sie, die bedingte Syntax aufzuschreiben, bevor Sie Ihre angepassten Attribute und andere Liquid-Elemente einfügen.

Fügen Sie zum Beispiel zunächst Folgendes in das Nachrichtenfeld ein:

1
2
3
{% if X >0 %}
{% else %}
{% endif %}

Stellen Sie sicher, dass es grün hervorgehoben wird, und ersetzen Sie dann X durch Ihr gewähltes Liquid oder Connected-Content über das blaue + in der Ecke des Nachrichtenfelds und die 0 durch Ihren gewünschten Wert.

Fügen Sie dann Ihre Nachrichtenvarianten nach Bedarf zwischen den else-Bedingungen hinzu:

1
2
3
4
5
{% if {{custom_attribute.${total_spend}}} >0 %}
Thanks for purchasing! Here's another 10% off!
{% else %}
Buy now! Would 5% off convince you?
{% endif %}

Bedingte Logik

Sie können viele Arten von intelligenter Logik in Nachrichten einbinden, wie z. B. bedingte Anweisungen. Das folgende Beispiel verwendet Bedingungen, um eine Campaign zu internationalisieren:

1
2
3
4
5
6
7
8
9
{% if ${language} == 'en' %}
This is a message in English from Braze!
{% elsif ${language} == 'es' %}
Este es un mensaje en español de Braze !
{% elsif ${language} == 'zh' %}
这是一条来自Braze的中文消息。
{% else %}
This is a message from Braze! This is going to go to anyone who did not match the other specified languages!
{% endif %}

Bedingte Tags

if und elsif

Bedingte Logik beginnt mit dem if-Tag, der die erste zu prüfende Bedingung festlegt. Nachfolgende Bedingungen verwenden den elsif-Tag und werden geprüft, wenn die vorherigen Bedingungen nicht erfüllt sind. In diesem Beispiel prüft der Code, wenn das Gerät einer Nutzerin oder eines Nutzers nicht auf Englisch eingestellt ist, ob das Gerät auf Spanisch eingestellt ist, und falls das fehlschlägt, ob das Gerät auf Chinesisch eingestellt ist. Wenn das Gerät der Nutzerin oder des Nutzers eine dieser Bedingungen erfüllt, erhält sie oder er eine Nachricht in der entsprechenden Sprache.

else

Sie haben die Möglichkeit, eine {% else %}-Anweisung in Ihre bedingte Logik einzufügen. Wenn keine der von Ihnen festgelegten Bedingungen erfüllt ist, gibt die {% else %}-Anweisung die Nachricht an, die gesendet werden soll. In diesem Beispiel verwenden wir standardmäßig Englisch, wenn die Sprache einer Nutzerin oder eines Nutzers nicht Englisch, Spanisch oder Chinesisch ist.

case und when

{% case %}, {% when %} und {% endcase %} funktionieren wie eine Switch-Anweisung: Sie setzen einen Ausdruck nach case, und jeder when-Zweig wird ausgeführt, wenn dieser Ausdruck dem aufgelisteten Wert entspricht (Liquid verwendet im Hintergrund Gleichheit, ähnlich wie die Verkettung von if und elsif mit ==). Sie können mehrere Werte in einem when-Tag auflisten, indem Sie sie mit einem Komma oder or trennen. Verwenden Sie {% else %} als Fallback, wenn nichts übereinstimmt, und schließen Sie dann mit {% endcase %}.

Stellen Sie sicher, dass das Format Ihrer when-Werte zum Datentyp passt. Für Text (z. B. einen Sprachcode) verwenden Sie Anführungszeichen: {% when 'es' %}. Für Zahlen lassen Sie die Anführungszeichen weg: {% when 2 %}.

1
2
3
4
5
6
7
8
9
{% assign handle = 'cake' %}
{% case handle %}
{% when 'cake' %}
This is a cake
{% when 'cookie' %}
This is a cookie
{% else %}
This is not a cake nor a cookie
{% endcase %}

Sie können dasselbe Muster mit Braze-Personalisierungs-Tags oder anderen Liquid-Ausdrücken anstelle von handle verwenden. Weitere Syntaxoptionen finden Sie in der Shopify-Dokumentation zum case-Tag.

endif

Der {% endif %}-Tag signalisiert, dass Sie einen if-Block abgeschlossen haben. Sie müssen den {% endif %}-Tag in jede Nachricht einfügen, die if, elsif, unless oder else in dieser Kette verwendet. Wenn Sie keinen {% endif %}-Tag einfügen, erhalten Sie einen Fehler, da Braze Ihre Nachricht nicht parsen kann. Wenn Sie stattdessen {% case %} verwenden, schließen Sie den Block mit {% endcase %}, nicht mit {% endif %}.

{% alert note %} In if-, elsif- und unless-Tags können Sie Operatoren verwenden, aber keine Filter. In case- und when-Tags stimmt jeder Zweig überein, wenn der case-Ausdruck einem when-Wert entspricht; Filter werden in diesen Ausdrücken ebenfalls nicht unterstützt. Um einen gefilterten Wert auszuwerten, weisen Sie das Filterergebnis zuerst einer Variablen zu und referenzieren Sie dann diese Variable in Ihrer case- oder when-Klausel. Weitere Details finden Sie unter Wo Operatoren und Filter verwendet werden. {% endalert %}

Tutorial: Standortbasierte Inhalte bereitstellen

Wenn Sie dieses Tutorial abgeschlossen haben, können Sie Tags mit „if“-, „elsif“- und „else“-Anweisungen verwenden, um Inhalte basierend auf dem Standort einer Nutzerin oder eines Nutzers bereitzustellen.

  1. Beginnen Sie mit einem if-Tag, um festzulegen, welche Nachricht gesendet werden soll, wenn sich der Ort der Nutzerin oder des Nutzers in New York befindet. Wenn der Ort New York ist, wird diese erste Bedingung erfüllt und die Nutzerin oder der Nutzer erhält eine Nachricht, die ihre oder seine New Yorker Identität bestätigt.
1
2
3
4
{% if ${city} == "New York" %}
  🎉 Hey there, New Yorker! We're excited to offer you a special deal!
  Get 20% off your next sandwich at your local Sandwich Emperor.
  Just show this message at the counter to redeem your offer!
  1. Verwenden Sie als Nächstes den elseif-Tag, um festzulegen, welche Nachricht gesendet werden soll, wenn sich der Ort der Nutzerin oder des Nutzers in Los Angeles befindet.
1
2
3
{% elsif ${city} == "Los Angeles" %}
  🌞 Hello, Los Angeles! Enjoy a sunny day with a delicious sandwich!
  Present this message at our LA restaurant for a 20% discount on your next order!
  1. Verwenden wir einen weiteren elseif-Tag, um festzulegen, welche Nachricht gesendet werden soll, wenn sich der Ort der Nutzerin oder des Nutzers in Chicago befindet.
1
2
3
4
{% elsif ${city} == "Chicago" %}
  🍕 Chicago, we have a treat for you!
  Swing by our restaurant and get 20% off your favorite sandwich.
  Just show this message to our staff!
  1. Verwenden wir nun den {% else %}-Tag, um festzulegen, welche Nachricht gesendet werden soll, wenn sich der Ort der Nutzerin oder des Nutzers nicht in San Francisco, New York oder Chicago befindet.
1
2
3
{% else %}
 🥪 Craving a sandwich? Visit us at any of our locations for a delicious meal!
  Check our website for the nearest restaurant to you!
  1. Abschließend verwenden wir den {% endif %}-Tag, um anzugeben, dass unsere bedingte Logik abgeschlossen ist.
1
{% endif %}
Vollständiger Liquid-Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{% if ${city} == "New York City" %}
  🎉 Hey there, New Yorker! We're excited to offer you a special deal!
  Get 20% off your next sandwich at our New York location.
  Just show this message at the counter to redeem your offer!
{% elsif ${city} == "Los Angeles" %}
  🌞 Hello, Los Angeles! Enjoy a sunny day with a delicious sandwich!
  Present this message at our LA restaurant for a 20% discount on your next order!
{% elsif ${city} == "Chicago" %}
  🍕 Chicago, we have a treat for you!
  Swing by our restaurant and get 20% off your favorite sandwich.
  Just show this message to our staff!
{% else %}
  🥪 Craving a sandwich? Visit us at any of our locations for a delicious meal!
  Check our website for the nearest restaurant to you!
{% endif %}

Umgang mit null-, nil- und leeren Attributwerten

Bedingte Logik ist eine nützliche Methode, um mit Attributwerten umzugehen, die in Nutzerprofilen nicht gesetzt sind.

Null- und nil-Attributwerte

Ein null- oder nil-Wert tritt auf, wenn der Wert eines angepassten Attributs nicht gesetzt wurde. Zum Beispiel hat eine Nutzerin oder ein Nutzer, die oder der noch keinen Vornamen festgelegt hat, keinen Vornamen in Braze hinterlegt.

In manchen Fällen möchten Sie möglicherweise eine völlig andere Nachricht an Nutzer:innen senden, die einen Vornamen gesetzt haben, und an solche, die keinen Vornamen gesetzt haben.

Der folgende Tag ermöglicht es Ihnen, eine Nachricht für Nutzer:innen mit einem null-Attribut „Vorname“ festzulegen:

1
2
3
{% if ${first_name} == null %}
  ....
{% endif %}

Eine Beispielnachricht im Braze-Dashboard, die ein null-Attribut „Vorname“ verwendet.

1
2
3
4
5
{% if ${first_name} == null %}
We're having a sale! Hurry up and get 10% off all items today only!
{% else %}
Hey {{${first_name} | default: 'there'}}, we're having a sale! Hurry up and get 10% off all items today only!
{% endif %}

Beachten Sie, dass ein null-Attributwert nicht streng mit einem Werttyp verknüpft ist (zum Beispiel ist ein „null“-String dasselbe wie ein „null“-Array). Im obigen Beispiel referenziert der null-Attributwert einen nicht gesetzten Vornamen, der ein String wäre.

Leere Attributwerte

Ein leerer Wert tritt auf, wenn das Attribut in einem Nutzerprofil nicht gesetzt ist, mit einem Leerzeichen-String ( ) gesetzt ist oder als false gesetzt ist. Leere Werte sollten vor anderen Variablen geprüft werden, um einen Liquid-Verarbeitungsfehler zu vermeiden.

Der folgende Tag ermöglicht es Ihnen, eine Nachricht für Nutzer:innen festzulegen, die ein leeres Attribut „Vorname“ haben.

1
2
3
{% if ${first_name} == blank %}
  ....
{% endif %}

Angepasste Attribute referenzieren

Nachdem Sie angepasste Attribute erstellt haben, können Sie diese angepassten Attribute in Ihrem Liquid-Messaging referenzieren.

Bei der Verwendung bedingter Logik müssen Sie den Datentyp des angepassten Attributs kennen, um sicherzustellen, dass Sie die richtige Syntax verwenden. Suchen Sie auf der Seite Angepasste Attribute im Dashboard nach dem Datentyp, der Ihrem angepassten Attribut zugeordnet ist, und orientieren Sie sich dann an den folgenden Beispielen für jeden Datentyp.

Auswahl eines Datentyps für ein angepasstes Attribut. Das gezeigte Beispiel zeigt ein Attribut „Favorite_Category“ mit dem Datentyp String.

Boolescher Wert

Boolesche Werte sind binäre Werte und können entweder auf true oder false gesetzt werden, wie z. B. registration_complete: true. Boolesche Werte haben keine Anführungszeichen.

1
{% if {{custom_attribute.${registration_complete}}} == true %}

Zahl

Zahlen sind numerische Werte, die Ganzzahlen oder Gleitkommazahlen sein können. Zum Beispiel könnte eine Nutzerin oder ein Nutzer shoe_size: 10 oder levels_completed: 287 haben. Zahlenwerte haben keine Anführungszeichen.

1
{% if {{custom_attribute.${shoe_size}}} == 10 %}

Sie können auch andere grundlegende Operatoren wie kleiner als (<) oder größer als (>) für Ganzzahlen verwenden:

1
{% if {{custom_attribute.${flyer_miles}}} >= 500 %}

String

Ein String besteht aus alphanumerischen Zeichen und speichert Daten über Ihre Nutzerin oder Ihren Nutzer. Zum Beispiel könnten Sie favorite_color: red oder phone_number: 3025981329 haben. String-Werte müssen Anführungszeichen haben.

1
{% if {{custom_attribute.${favorite_color}}} == 'blue' %}

Für Strings können Sie sowohl „==“ als auch „contains“ in Ihrem Liquid verwenden.

Array

Ein Array ist eine Liste von Informationen über Ihre Nutzerin oder Ihren Nutzer. Zum Beispiel könnte eine Nutzerin oder ein Nutzer last_viewed_shows: stranger things, planet earth, westworld haben. Array-Werte müssen Anführungszeichen haben.

1
{% if {{custom_attribute.${last_viewed_shows}}} contains 'homeland' %}

Für Arrays müssen Sie „contains“ verwenden und können nicht „==“ verwenden.

Zeit

Ein Zeitstempel, der angibt, wann ein Ereignis stattgefunden hat. Zeit-Werte müssen einen mathematischen Filter haben, um in bedingter Logik verwendet werden zu können.

1
{% assign expire = {{custom_attribute.${subscription_end_date}}} | plus: 0 %}
New Stuff!