Liquidの使用
この記事では、さまざまなユーザー属性を使用して、メッセージングにパーソナル情報をダイナミックに挿入する方法を説明します。
Liquidは、Shopifyが開発し、Rubyで記述されたオープンソースのテンプレート言語です。Brazeでは、Liquidを使用してユーザープロファイルデータをメッセージに取り込み、そのデータをカスタマイズできます。たとえば、Liquidタグを使用して条件付きメッセージを作成し、ユーザーのサブスクリプション記念日に基づいて異なるオファーを送信できます。さらに、フィルターを使用してデータを操作できます。たとえば、ユーザーの登録日をタイムスタンプから「2022年1月15日」のようなより読みやすい形式にフォーマットできます。Liquidの構文と機能の詳細については、サポートされているパーソナライゼーションタグを参照してください。
仕組み
Liquidタグは、メッセージ内のプレースホルダーとして機能し、ユーザーのアカウントから同意済みの情報を取り込み、パーソナライゼーションと関連性のあるメッセージング手法を実現します。
以下のブロックでは、Liquidタグの二重使用を確認できます。ユーザーの名を呼び出すとともに、ユーザーの名が登録されていない場合のデフォルトタグも含まれています。
1
Hi {{ ${first_name} | default: 'Valued User' }}, thanks for using the App!
Janet Doeという名前のユーザーの場合、メッセージは次のいずれかで表示されます:
1
Hi Janet, thanks for using the App!
または…
1
Hi Valued User, thanks for using the App!
HTMLコメント(<!-- -->)は、Liquidが読み取られる前に削除されるため、HTMLコメント内のLiquidタグはメッセージにレンダリングされません。適切にレンダリングするには、使用したいすべてのLiquidタグがHTMLコメントの外側にあることを確認してください。
代入可能なサポート値
以下の値は、利用可能な場合にメッセージに代入できます:
- 基本的なユーザー情報(例:
first_name、last_name、email_address) - カスタム属性
- カスタムイベントプロパティ
- 最近使用したデバイス情報
- ターゲットデバイス情報
また、Brazeのコネクテッドコンテンツを通じて、Webサーバーからコンテンツを直接取得することもできます。
Brazeは現在、ShopifyのLiquid 5までをサポートしています。
Liquidの使用
Liquidタグを使用すると、パーソナルなタッチを加えてメッセージの品質を向上させることができます。
Liquidの構文
Liquidには、ダイナミックなパーソナライゼーションを作成する際に留意すべき特定の構造(構文)があります。以下に、覚えておくべき基本的なルールをいくつか紹介します:
- Brazeではストレートクォートを使用してください: カーリークォート(’ ‘)とストレートクォート(' ')には違いがあります。BrazeのLiquidではストレートクォート(' ')を使用してください。特定のテキストエディターからコピー&ペーストすると、カーリークォートが表示される場合があり、Liquidで問題が発生する可能性があります。Brazeダッシュボードに直接クォートを入力する場合は問題ありません!
- ブラケットはペアで使用します: すべてのブラケットは開きと閉じの両方が必要です { }。必ず波括弧を使用してください!
- if文はペアで使用します: すべての
ifには、if文が終了したことを示すendifが必要です。 - 変数名にはASCII文字を使用してください: Liquidの変数名(
assignまたはcaptureで作成)は、ASCIIの文字、数字、アンダースコアのみをサポートします。Brazeのパーソナライゼーション属性名(custom_attribute.${...}やevent_properties.${...}内)には、非ASCII文字を含めることができます。
演算子とフィルターの使用場所
演算子(==、!=、>、and、orなど)とフィルター(| size、| plusなど)は、それぞれ特定のLiquidコンテキストでのみ使用できます。
| コンテキスト | 演算子 | フィルター |
|---|---|---|
assign |
サポートなし | サポートあり |
if、elsif、unless |
サポートあり | サポートなし |
case、when |
サポートなし | サポートなし |
for |
サポートなし | サポートなし |
配列アクセス([ ]) |
サポートなし | サポートなし |
フィルターをサポートしないコンテキストでフィルター処理された値が必要な場合は、まず結果を変数に割り当ててください。
条件文でフィルター結果を使用する
条件文でフィルターを直接使用することはできません。以下は正しくありません:
1
2
3
{% if my_array | size > 3 %}
You have more than 3 items!
{% endif %}
代わりに、フィルター結果を変数に割り当ててください:
1
2
3
4
{% assign array_size = my_array | size %}
{% if array_size > 3 %}
You have more than 3 items!
{% endif %}
forループでフィルター結果を使用する
forループのイテラブルにフィルターを適用することはできません。以下は正しくありません:
1
2
3
{% for item in my_array | reverse %}
{{ item }}
{% endfor %}
代わりに、フィルター処理された値を変数に割り当ててください:
1
2
3
4
{% assign reversed = my_array | reverse %}
{% for item in reversed %}
{{ item }}
{% endfor %}
配列アクセスでフィルター結果を使用する
角括弧内でフィルターを使用することはできません。以下は正しくありません:
1
{{ my_array[my_var | minus: 1] }}
代わりに、まずフィルター処理された値を割り当ててください:
1
2
{% assign adjusted_index = my_var | minus: 1 %}
{{ my_array[adjusted_index] }}
比較結果を変数に格納する
assign文で演算子を使用することはできません。以下は正しくありません:
1
2
3
4
{% assign is_vip = total_spend > 100 %}
{% if is_vip %}
Welcome to the VIP lounge!
{% endif %}
代わりに、条件文を使用して変数を設定してください:
1
2
3
4
5
6
7
8
{% assign is_vip = false %}
{% if total_spend > 100 %}
{% assign is_vip = true %}
{% endif %}
{% if is_vip %}
Welcome to the VIP lounge!
{% endif %}
デフォルト属性とカスタム属性
メッセージに{{${first_name}}}というテキストを含めると、メッセージ送信時にユーザーの名(ユーザープロファイルから取得)が代入されます。他のデフォルトユーザー属性にも同じ形式を使用できます。
カスタム属性の値を使用する場合は、変数に「custom_attribute」という名前空間を追加する必要があります。たとえば、「zip code」というカスタム属性を使用するには、メッセージに{{custom_attribute.${zip code}}}を含めます。
タグの挿入
任意のメッセージで2つの開き波括弧{{を入力すると、タグを挿入できます。これにより、入力を続けるにつれて更新されるオートコンプリート機能がトリガーされます。入力中に表示されるオプションから変数を選択することもできます。
カスタムタグを使用している場合は、タグをコピーして任意のメッセージに貼り付けることができます。
二重ブラケットの例外
{{を入力すると、タグを挿入できます。これにより、入力を続けるにつれて更新されるオートコンプリート機能がトリガーされます。入力中に表示されるオプションから変数を選択することもできます。
カスタムタグを使用している場合は、タグをコピーして任意のメッセージに貼り付けることができます。
二重ブラケットの例外
{% assign %}や{% if %}などの別のLiquidタグ内でタグを使用する場合、二重ブラケットまたはブラケットなしのいずれかを使用できます。タグが単独で使用される場合のみ、二重ブラケットで囲む必要があります。簡単にするために、常に二重ブラケットを使用できます。
以下のタグはすべて正しいです:
1
2
3
4
5
{% if custom_attribute.${Number_Game_Attended} == 1 %}
{% if {{custom_attribute.${Number_Game_Attended}}} == 1 %}
{% assign value_one = {{custom_attribute.${one}}} %}
{% assign value_one = custom_attribute.${one} %}
メールメッセージでLiquidを使用する場合は、以下を確認してください:
- クラシックエディターではなく、HTMLエディターを使用して挿入してください。クラシックエディターでは、Liquidがプレーンテキストとして解析される場合があります。たとえば、Liquidはユーザーの名をテンプレート化する代わりに、
Hi {{ ${first_name} }}, thanks for using our service!として解析されます。 - Liquidコードは
<body>タグ内にのみ配置してください。このタグの外側に配置すると、配信時にレンダリングが不整合になる可能性があります。
事前フォーマット済み変数の挿入
テンプレート化されたテキストフィールドの近くにあるパーソナライゼーションを追加モーダルを使用して、デフォルト値付きの事前フォーマット済み変数を挿入できます。

モーダルは、カーソルがあった位置に、指定したデフォルト値を含むLiquidを挿入します。挿入位置はプレビューボックスでも指定され、前後のテキストが表示されます。テキストブロックがハイライトされている場合、ハイライトされたテキストが置き換えられます。
