Liquid の使用
この記事では、さまざまなユーザー属性を使用して、メッセージングにダイナミックな個人情報を挿入する方法を紹介する。
Liquid は、Shopify が開発した Ruby で書かれているオープンソースのテンプレート言語です。Brazeでこれを使えば、ユーザープロファイルのデータをメッセージングに取り込んだり、そのデータをカスタマイズしたりすることができる。例えば、ユーザーのサブスクリプションアニバーサリーの日付に基づいて異なるオファーを送信するなど、条件付きメッセージを作成するためにLiquidタグを使用することができる。さらに、フィルターは、ユーザーの登録日をタイムスタンプから “2022年1月15日 “のような読みやすいフォーマットにフォーマットするなど、データを操作することができる。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!
代用可能な値
次の項目の値が利用できる場合、メッセージ内で値に置き換えることができます。
- 基本的なユーザー情報 (
first_name
、last_name
、email_address
など)。 - カスタム属性
- カスタムイベントプロパティ
- 最近使用したデバイスの情報
- ターゲットデバイス情報
また、Brazeコネクテッドコンテンツを通じて、Webサーバーから直接コンテンツを引き出すこともできる。
Brazeは現在、ShopifyのLiquid 5までのLiquidをサポートしている。
Liquid の使用
パーソナライズされたタグを使うことで、メッセージの質を高めることができる。
Liquid 構文
Liquid は特定の構造 (構文) に従います。ダイナミックなパーソナライゼーションを作成する際には、これを念頭に置く必要があります。ここで、いくつかの基本的なルールを覚えておこう:
- Braze では直線引用符を使用する:曲線引用符 (’ ‘) と直線引用符 (’ ‘) には違いがあります。Braze の Liquid では直線引用符 (’ ‘) を使用してください。特定のテキストエディターからコピーして貼り付けると、曲線引用符が表示されることがあります。これが、Liquid で問題を引き起こす可能性があります。Brazeのダッシュボードに直接見積もりを入力するのであれば、問題ないだろう!
- 中括弧はペアで使用する:中括弧には開き括弧と閉じ括弧の両方 { } が必ず必要です。必ず中括弧を使うこと!
- ステートメントが対になっている場合:それぞれの
if
について、if
ステートメントが終了したことを示すendif
が必要です。
デフォルト属性とカスタム属性
メッセージに {{${first_name}}}
を含めると、メッセージの送信時にユーザーの名 (ユーザープロファイルから取得) に置き換えられます。他のデフォルトユーザー属性でも同じフォーマットを使うことができる。
カスタム属性の値を使いたい場合は、変数に名前空間 “custom_attribute “を追加しなければならない。例えば、「zip code」というカスタム属性を使用するには、メッセージに {{custom_attribute.${zip code}}}
を含めます。
タグの挿入
どのメッセージでも、{{
を2つ入力することでタグを挿入することができる。このタグを入力すると、自動補完機能が作動し、入力した内容が更新され続ける。入力中に表示されるオプションから変数を選択することもできる。
カスタムタグを使用している場合は、そのタグをコピーして好きなメッセージに貼り付けることができる。
メールメッセージにLiquidを使う場合は、必ずそうすること:
- クラシック・エディターではなく、HTMLエディターを使って挿入する。クラシックエディターは、Liquidをプレーンテキストとして解析するかもしれない。例えば、Liquidはユーザーの名をテンプレート化する代わりに、
Hi {{ ${first_name} }}, thanks for using our service!
として解析する。 - リキッドコードは、
<body>
タグ内にのみ配置する。このタグの外側に置くと、納品時にレンダリングに一貫性がなくなる可能性がある。
あらかじめフォーマットされた変数を挿入する
テンプレート化されたテキストフィールドの右上にあるパーソナライゼーションの追加モーダルから、あらかじめデフォルトでフォーマットされた変数を挿入することができる。
モーダルにより、カーソルがあった位置に、指定したデフォルト値をもつ Liquid が挿入されます。挿入位置はプレビュー・ボックスによっても指定され、プレビュー・ボックスには前後のテキストが表示される。テキストブロックがハイライトされている場合、ハイライトされたテキストは置き換えられる。
変数への代入
Liquidのいくつかの操作では、操作したい値を変数として格納する必要がある。これは、Liquid ステートメントに複数の属性、イベントプロパティ、またはフィルターが含まれている場合に多く見られます。
例えば、2つのカスタムデータの整数を足し合わせたいとしよう。
不正確なLiquidの例
使うことはできない:
1
{{custom_attribute.${one}}} | plus: {{custom_attribute.${two}}}
このLiquidが機能しないのは、1行で複数の属性を参照することができないからだ。数学関数が実行される前に、これらの値の少なくとも1つに変数を代入する必要がある。カスタム属性を2つ追加するには、2行のリキッドが必要になる。1つはカスタム属性を変数に代入すること、もう1つは追加を実行することだ。
正しいLiquidの例
使うことができる:
1
2
{% assign value_one = {{custom_attribute.${one}}} %}
{% assign result = value_one | plus: {{custom_attribute.${two}}} %}
チュートリアル: 変数を使用してバランスを計算する
ユーザーのギフトカード残高と報酬残高を足して、ユーザーの現在の残高を計算しましょう。
まず、assign
タグを使って、current_rewards_balance
のカスタム属性を “balance “という言葉に置き換える。つまり、操作できる balance
という名前の新しい変数が得られました。
1
{% assign balance = {{custom_attribute.${current_rewards_balance}}} %}
次に、plus
フィルターを使用して、各ユーザーのギフトカード残高と、{{balance}}
で示される報酬残高を加算します。
1
2
{% assign balance = {{custom_attribute.${current_rewards_balance}}} %}
You have ${{custom_attribute.${giftcard_balance} | plus: {{balance}}}} to spend!
すべてのメッセージに同じ変数を割り当てていることに気づいているか?assign
タグを何度も書き出す代わりに、そのタグをコンテンツブロックとして保存し、メッセージの先頭に置くことができます。
- コンテンツブロックの作成を行います。
- コンテンツブロックに名前をつける(スペースや特殊文字は使わない)。
- ページ下部のEditを選択する。
assign
タグを入力する。
コンテンツ・ブロックがメッセージの先頭にある限り、変数がオブジェクトとしてメッセージに挿入されるたびに、選択したカスタム属性を参照することになる!