条件付きメッセージング・ロジック
タグ では、メッセージングキャンペーンにプログラミングロジックを含めることができます。タグは、条件付きステートメントの実行や、変数の代入やコードブロックの反復のような高度なユースケースにも使用できます。
このページでは、null、nil、空白の属性値をどのように考慮するか、カスタム属性をどのように参照するかなど、タグをどのように使用できるか、また使用すべきかを説明する。
タグのフォーマット
タグは {% %}
で囲む必要があります。
あなたの生活を少し楽にするために、Brazeはリキッド構文を正しくフォーマットした場合、緑と紫で起動するカラーフォーマットを搭載している。緑色の書式はタグを識別するのに役立ち、紫色の書式はパーソナライズされた部分を強調する。
もし条件付きメッセージングを使うのに苦労しているなら、カスタム属性や他のリキッド要素を挿入する前に、条件構文を書き出してみてほしい。
例えば、まずメッセージ・フィールドに以下を追加する:
1
2
3
{% if X >0 %}
{% else %}
{% endif %}
緑色で強調表示されることを確認し、X
を選択した Liquid またはコネクテッドコンテンツに置き換えて、メッセージフィールドの隅にある青色の +
を使用して 0
を希望する値に置き換えます。
そして、else
の条件文の間に、必要に応じてメッセージのバリエーションを追加する:
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 %}
条件論理
条件付きステートメントなど、さまざまなタイプの インテリジェントロジックをメッセージ内 に含めることができます。次の例では、conditionals を使用してキャンペーンを国際化します。
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 %}
条件付きタグ
if
と elsif
条件付きロジックは、if
タグで始まり、最初にチェックする条件を示します。後続の条件は elsif
タグを使用し、前の条件が満たされない場にチェックされます。この例では、ユーザーのデバイスが英語に設定されていない場合、このコードは、ユーザーのデバイスがスペイン語に設定されているかどうかを確認し、それが失敗した場合は、デバイスが以下に設定されているかどうかを確認します。ユーザーのデバイスがこれらの条件のいずれかに当てはまる場合、ユーザーは該当する言語でメッセージを受け取る。
else
条件ロジックにはオプションで {% else %}
ステートメントを含めることができます。設定した条件のどれにも当てはまらない場合、{% else %}
ステートメントによって送信すべきメッセージが指定されます。この例では、ユーザーの言語が英語、スペイン語、中国語でない場合、デフォルトは英語になります。
endif
{% endif %}
タグは、条件ロジックが終了したことを知らせます。条件付きロジックを含むメッセージには {% endif %}
タグを必ず含める必要があります。条件ロジックに{% endif %}
タグを含めないと、Brazeがメッセージを解析できないのでエラーになる。
チュートリアル: 位置情報コンテンツの配信
このチュートリアルを完了すると、”if”、”elsif”、および”else”ステートメントを含むタグを使用して、ユーザーの場所に基づいてコンテンツを配信できるようになります。
- 最初に
if
タグを使用して、ユーザーの市区町村がニューヨークにある場合に送信するメッセージを指定します。ユーザーの市区町村がニューヨークの場合、この最初の条件が満たされ、ユーザーはニューヨーカーのアイデンティティを指定するメッセージを受け取ります。
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!
2.次に、elseif
タグを使用して、ユーザーの市区町村がロサンゼルスにある場合に送信するメッセージを設定します。
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!
3.別のelseif
タグを使用して、ユーザーの市区町村がシカゴにある場合に送信するメッセージを設定します。
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!
4.次に、{% else %}
タグを使用して、ユーザーの市区町村がサンフランシスコ、ニューヨーク、シカゴにない場合に送信するメッセージを指定します。
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!
5.最後に、{% endif %}
タグを使用して、条件付きロジックが実行されるように指定します。
1
{% endif %}
完全な Liquid コード
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 %}
null、nil、および空白の属性値を処理する
条件ロジックは、ユーザープロファイルに設定されていない属性値を考慮するのに便利な方法である。
NULL および NIL 属性値
NULLまたはnil値は、カスタム属性の値が設定されていない場合に発生する。例えば、まだ名を設定していないユーザーは、Braze に名が記録されません。
状況によっては、姓を設定しているユーザーと設定していないユーザーとで、まったく異なるメッセージを送りたい場合もあるだろう。
以下のタグは、「first name」属性が NULL のユーザーに対するメッセージを指定することができます。
1
2
3
{% if ${first_name} == null %}
....
{% endif %}
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 %}
NULL の属性値は、値型と厳密には関連付けられていないことに注意してください (例えば、「null」の string は「null」 の array と同じです)。そのため、上記の例では、NULL 属性値が未設定の名 (文字列) を参照しています。
空白の属性値
空白の値は、ユーザープロファイルで属性が設定されていないか、空白文字列 (
) が設定されているか、false
として設定されている場合に発生します。Liquid の処理エラーを避けるため、空白値は他の変数より先にチェックするようにします。
以下のタグは、「first name」属性が空白のユーザーに対するメッセージを指定することができます。
1
2
3
{% if ${first_name} == blank %}
....
{% endif %}
カスタム属性を参照する
カスタム属性を作成 したら、Liquid メッセージングでこれらのカスタム属性を参照することができます。
条件付きロジックを使用する場合、正しい構文を使用していることを確認するために、カスタム属性のデータ型を知っておく必要がある。ダッシュボードのカスタム属性ページから、カスタム属性に関連するデータタイプを探し、各データタイプに記載されている以下の例を参照する。
文字列と配列には一重引用符が必要ですが、ブール値と整数には必要ありません。
ブール値
ブール値 はバイナリ値なので、true
またはfalse
のいずれかに設定することができます (例: registration_complete: true
)。ブール値にはアポストロフィは付かない。
1
{% if {{custom_attribute.${registration_complete}}} == true %}
数値
数値 は数値であり、整数または浮動小数点数にできます。たとえば、ユーザーには shoe_size: 10
や levels_completed: 287
などの属性があります。数値にはアポストロフィは付かない。
1
{% if {{custom_attribute.${shoe_size}}} == 10 %}
また、整数に対しては、小なり(<)や大なり(>)といった基本的な演算子も使える:
1
{% if {{custom_attribute.${flyer_miles}}} >= 500 %}
string
文字列 は英数字で構成され、ユーザーに関する 1 つのデータを保存します。例えば、favorite_color: red
や phone_number: 3025981329
などです。文字列の値にはアポストロフィをつけなければならない。
1
{% if {{custom_attribute.${favorite_color}}} == 'blue' %}
文字列の場合、Liquidでは”==”と “contains “の両方を使うことができる。
配列
配列 は、ユーザーに関する情報のリストです。例えば、ユーザーには last_viewed_shows: stranger things, planet earth, westworld
などの属性があります。配列の値はアポストロフィで囲む必要がある。
1
{% if {{custom_attribute.${last_viewed_shows}}} contains 'homeland' %}
配列の場合、”contains “を使わなければならず、”==”は使えない。
時刻
イベントが発生した時刻を示すタイムスタンプ。時刻 値を条件ロジックで使用するには、数式フィルター がなければなりません。
1
{% assign expire = {{custom_attribute.${subscription_end_date}}} | plus: 0 %}