Skip to content

条件付きメッセージング・ロジック

タグ では、メッセージングキャンペーンにプログラミングロジックを含めることができます。タグは、条件付きステートメントの実行や、変数の代入やコードブロックの反復のような高度なユースケースにも使用できます。

このページでは、null、nil、空白の属性値をどのように考慮するか、カスタム属性をどのように参照するかなど、タグをどのように使用できるか、また使用すべきかを説明する。

タグのフォーマット

タグは {% %} で囲む必要があります。

条件論理

条件付きステートメントなど、さまざまなタイプの インテリジェントロジックをメッセージ内 に含めることができます。キャンペーンを国際化するために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”、”else “ステートメントを持つタグを使って、国際化されたコンテンツを配信している。

1
2
{% if ${language} == 'en' %}
This is a message in English from Braze!

ユーザーの言語が英語の場合、最初の条件が満たされ、ユーザーは英語のメッセージを受け取る。

1
2
3
4
{% elsif ${language} == 'es' %}
Este es un mensaje en español de Braze !
{% elsif ${language} == 'zh' %}
这是一条来自Braze的中文消息。

条件付きステートメントはいくつでも指定できます。前の条件が満たされない場合、後続の条件がチェックされます。この例では、ユーザーのデバイスが英語に設定されていない場合、このコードはユーザーのデバイスがスペイン語か中国語に設定されているかどうかをチェックする。ユーザーのデバイスがこれらの条件のいずれかに当てはまる場合、ユーザーは該当する言語でメッセージを受け取る。

1
2
{% else %}
This is a message from Braze! This is going to go to anyone who didn't match the other specified languages!

条件ロジックにはオプションで {% else %} ステートメントを含めることができます。設定した条件のどれにも当てはまらない場合、{% else %} ステートメントで送信すべきメッセージを指定する。この場合、ユーザーの言語が英語、スペイン語、中国語でない場合、デフォルトは英語になる。

1
{% endif %}

{% endif %} タグは、条件ロジックが終了したことを知らせます。条件付きロジックを含むメッセージには {% endif %} タグを必ず含める必要があります。条件ロジックに{% endif %} タグを含めないと、Brazeがメッセージを解析できないのでエラーになる。

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 メッセージングでこれらのカスタム属性を参照することができます。

条件付きロジックを使用する場合、正しい構文を使用していることを確認するために、カスタム属性のデータ型を知っておく必要がある。ダッシュボードのカスタム属性ページから、カスタム属性に関連するデータタイプを探し、各データタイプに記載されている以下の例を参照する。

カスタム属性のデータ型を選択する。この例では、Favorite_Category属性のデータ型が文字列であることを示している。

ブール値

ブール値 はバイナリ値なので、true またはfalse のいずれかに設定することができます (例: registration_complete: true)。ブール値にはアポストロフィは付かない。

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

数値

数値 は数値であり、整数または浮動小数点数にできます。たとえば、ユーザーには shoe_size: 10levels_completed: 287 などの属性があります。数値にはアポストロフィは付かない。

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

また、整数に対しては、小なり(<)や大なり(>)といった基本的な演算子も使える:

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

string

文字列 は英数字で構成され、ユーザーに関する 1 つのデータを保存します。例えば、favorite_color: redphone_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 %} 
「このページはどの程度役に立ちましたか?」
New Stuff!