フィルター
この参考記事では、Liquidにおけるフィルターの概要と、Brazeでサポートされているフィルターを取り上げている。これらのフィルターの使い方のアイデアをお探しですか?Liquid のユースケースライブラリをご覧ください。
フィルターは、Liquid の数値、文字列、変数、オブジェクトの出力を変更する方法だ。フィルターを使用して、文字列の小文字から大文字への変更など、静的テキストまたは動的テキストを再フォーマットしたり、加算や除算などの数学演算を実行したりできます。
BrazeはShopifyのすべてのリキッドフィルターをサポートしているわけではない。このページには、Braze でテスト済みの Liquid フィルターの概要を示していますが、完全なリストではない可能性があります。メッセージを送信する前に必ずお使いの Liquid をテストしてください。
ここに掲載されていないフィルターについてご質問がある場合は、カスタマー・サクセス・マネージャーまでお問い合わせください。
フィルター構文
フィルターは出力タグ {{ }}
内に配置し、パイプ文字 |
を使用して示す必要があります。
1
{{"Big Sale" | upcase}}
1
BIG SALE
この例では、Big Sale
が文字列で、upcase
が適用されるフィルターである。
複数フィルターの構文
1つの出力に複数のフィルターを使うことができる。左から右に適用される。
1
{{ "Big Sale" | upcase | remove: "BIG" }}
1
SALE
配列フィルター
アレイ・フィルターは、アレイの出力を変更するために使われる。
フィルター | 定義 | サポート |
---|---|---|
join | 配列の要素を、パラメータとして渡された文字で結合する。結果は単一の文字列である。 | はい |
first | 配列の最初の要素を返す。カスタム属性配列では、これは最も古く追加された値である。 | はい |
last | 配列の最後の要素を返す。カスタム属性配列では、これは最近追加された値である。 | はい |
compact | 配列から nil の項目を削除する。 |
はい |
concat | 配列を別の配列と結合する。 | はい |
index | 配列の指定されたインデックスの位置にある項目を返す。配列の最初の項目は[0] で参照される。 |
はい |
map | 配列要素の属性をパラメーターとして受け取り、各配列要素の値から配列を作成する。 | はい |
reverse | 配列の項目の順序を逆にする。 | はい |
size | 文字列のサイズ(文字数)または配列のサイズ(要素数)を返す。 | はい |
sort | 配列の要素を、その配列の要素の指定された属性でソートする。 | はい |
sort_natural | 大文字小文字を区別せずにアルファベット順に配列の項目をソートする。 | はい |
uniq | 配列内の要素の重複したインスタンスを削除する。 | はい |
where | 特定のプロパティ値を持つ項目のみを含むように配列をフィルタリングする。 | はい |
カラーフィルター
カラーフィルターは Braze でサポートされていません。
フォントフィルター
フォントフィルターは Braze でサポートされていません。
数学フィルター
数学フィルターでは、数学的な演算を行うことができる。1つの出力に複数のフィルターを使用した場合、左から右に適用される。
フィルター | 定義 | サポート |
---|---|---|
abs | 数値の絶対値を返す。 | はい |
at_most | 数値を最大値に制限する。 | はい |
at_least | 数値を最小値に制限する。 | はい |
ceil | 出力を最も近い整数に丸める。 | はい |
divided_by | 出力を数値で割る。出力は最も近い整数に切り捨てられる。四捨五入を防ぐために、以下のヒントをチェックしよう。 | はい |
floor | 出力を最も近い整数に丸める。 | はい |
minus | 出力から数値を引く。 | はい |
plus | 出力に数値を追加する。 | はい |
round | 出力を最も近い整数または指定した小数点以下の桁数に丸める。 | はい |
回 | 出力に数値を掛ける。 | はい |
modulo | 出力を数値で割り、余りを返す。 | はい |
Liquid で整数(整数)を整数で割るとき、答えが浮動小数点(小数を含む数値)の場合、Liquid は自動的に最も近い整数に切り捨てられる。しかし、整数を浮動小数点数で割ると、常に浮動小数点数になる。つまり、整数をfloat(1.0、2.0、3.0)に変換してfloatを返すことができる。
例えば、{{15 | divided_by: 2}}
は 7
を出力しますが、{{15 | divided_by: 2.0}}
は 7.5
を出力します。
カスタム属性を使った数学演算
2つのカスタム属性の間で数学的演算を実行することはできないことを覚えておいてほしい。
1
{{custom_attribute.${current_rewards_balance} | plus: {{custom_attribute.${giftcard_balance}}}}}
Liquid の 1 行で複数のカスタム属性を参照することはできないため、上の例は機能しません。その代わりに、数学関数が実行される前に、これらの値の少なくとも1つに変数を代入する必要がある。2 つのカスタム属性を加算するには、2 行の Liquid が必要です。
- 1 行目で 1 つのカスタム属性を変数に割り当てます、
- 2 行目で加算を実行します。
ユースケース:現在の残高を計算する
例えば、ギフトカードの残高と報酬の残高を足して、ユーザーの現在の残高を計算したいとしよう。
assign
タグを使って、current_rewards_balance
のカスタム属性を “balance “という用語に置き換える。つまり、操作できるbalance
という名前の新しい変数が得られました。
1
{% assign balance = {{custom_attribute.${current_rewards_balance}}} %}
2.plus
フィルターを使用して、各ユーザーのギフトカード残高と、{{balance}}
オブジェクトで示される報酬残高を加算します。
1
2
{% assign balance = {{custom_attribute.${current_rewards_balance}}} %}
You have ${{custom_attribute.${giftcard_balance} | plus: {{balance}}}} to spend!
1
You have $35 to spend!
マネーフィルター
購入時のユーザー、口座残高、または金銭に関するものを更新する場合は、マネーフィルターを使用する必要があります。マネーフィルターを使用すると、小数が正しく配置され、更新で数値の一部が失われることがありません (末尾の厄介な 0
など)。
フィルター | 定義 | サポート |
---|---|---|
money | すべての数値について、確実に小数が正しく配置され、末尾にあるゼロが欠落しないように数値をフォーマットする。 | はい |
money_with_currency | 数字を通貨記号で表示する。 | いいえ |
money_without_currency | 通貨記号を除いた数値をフォーマットする。 | いいえ |
money
フィルタで数値を適切にフォーマットするには、数値のカンマをすべて削除し、money
フィルタの前にplus: 0
フィルタを追加する。次の Liquid の例を見てください。
1
2
{% assign my_int = "350000.25" | plus: 0 %}
{{ my_int | money }}
ShopifyマネーフィルターとBrazeマネーフィルターの比較
Shopifymoney
フィルターの動作は、Brazeでの使い方とは異なる。期待される動作の正確な描写については、以下の例を参照のこと。
カスタム属性(account_balance
など)を入力する場合は、常にmoney
フィルターを使用して小数を適切な位置に置き、数字のエンドツーエンドのゼロの脱落を防ぐ必要がある:
1
${{custom_attribute.${account_balance} | money}}
マネーフィルター付き | マネーフィルターなし |
---|---|
![]() |
![]() |
ここで、account_balance は17.8 で入力される。 |
ここで、account_balance は17.8 で入力される。 |
Brazeのmoney
フィルターがShopifyと異なるのは、プリセット設定に従って自動的に小数点を適用しない点である。例えば、rewards_redeemed
に145
という値が含まれている場合を考えてみよう:
1
${{event_properties.${rewards_redeemed} | money }}
1
$145.00
Shopifyのマネーフィルターによると、これは$1.45
の出力となるはずだが、Brazeでは$145.00
の出力となる。回避策として、マネーフィルターを適用する前に、divided_by
フィルターを使用して数値を小数に変換することができます。
1
${{event_properties.${rewards_redeemed} | divided_by: 100.00 | money }}
1
$1.45
文字列フィルター
文字列フィルターは、文字列の出力や変数を操作するために使われる。文字列は英数字の組み合わせであり、ストレート引用符で囲む必要がある。
Liquidでは、ストレートクォートとカーリークォートは異なる。テキストエディターから Liquid をコピーして Braze に貼り付けるときには注意してください。曲線引用符があると、Liquid でエラーが発生します。Liquid を直接 Brazeに書き込む場合、自動的に直線引用符が適用されます。
フィルター | 説明 | サポート |
---|---|---|
append | 文字列に文字を追加する。 | はい |
camelcase | 文字列をキャメルケースに変換する。 | いいえ |
capitalize | 文字列の最初の単語を大文字にし、残りの文字を小文字にする。 | はい |
downcase | 文字列を小文字に変換する。 | はい |
escape | 文字列をエスケープする。 | はい |
handle / handleize | 文字列をハンドルにフォーマットする。 | いいえ |
MD5 | 文字列をMD5ハッシュに変換する。詳細については、エンコーディングフィルターを参照。 | はい |
sha1 | 文字列をSHA-1ハッシュに変換する。詳細については、エンコーディングフィルターを参照。 | はい |
hmac_sha1_hex (previously hmac_sha_1) |
ハッシュメッセージ認証コード(HMAC)を使って文字列をSHA-1ハッシュに変換する。メッセージの秘密鍵をフィルターにパラメータとして渡す。詳細については、エンコーディングフィルターを参照。 | はい |
hmac_sha256 | ハッシュメッセージ認証コード(HMAC)を使用して、文字列をSHA-256ハッシュに変換する。メッセージの秘密鍵をフィルターにパラメータとして渡す。 | はい |
hmac_sha512 | ハッシュメッセージ認証コード(HMAC)を使って文字列をSHA-512ハッシュに変換する。メッセージの秘密鍵をフィルターにパラメータとして渡す。 | はい |
newline_to_br | 文字列内の各改行の前に改行 HTML タグ <br> を挿入する。 |
はい |
pluralize | 数字の値に基づいて、英語の文字列の単数形または複数形を出力する。 | いいえ |
prepend | 文字列の先頭に文字 (複数可) を追加する。 | はい |
remove | 文字列から部分文字列をすべて削除する。 | はい |
remove_first | 文字列から、最初に出現した部分文字列のみを削除する。 | はい |
replace | 文字列のすべての出現回数を部分文字列で置き換える。 | はい |
replace_first | 文字列の最初に現れる部分を部分文字列で置き換える。 | はい |
slice | スライスフィルターは、指定されたインデックスから始まる部分文字列を返す。 | はい |
split | スプリット・フィルターは部分文字列をパラメーターとして受け取る。部分文字列は、文字列を配列に分割する際の区切り文字として使われる。 | はい |
strip | 文字列の左右からタブ、スペース、改行(すべての空白)を取り除く。 | はい |
lstrip | 文字列の左側からタブ、スペース、改行(すべての空白)を取り除く。 | いいえ |
rstrip | 文字列の右側からタブ、スペース、改行(すべての空白)を取り除く。 | いいえ |
strip_html | 文字列からすべてのHTMLタグを取り除く。 | はい |
strip_newlines | 文字列から改行/改段を削除する。 | はい |
truncate | 文字列を、最初のパラメータとして渡された文字数まで切り詰める。省略記号(…)は切り捨てられた文字列に付加され、文字数に含まれる。 | はい |
truncatewords | 文字列を、最初のパラメータとして渡された語数まで切り詰める。切り詰められた文字列の末尾に省略記号 (…) を付加する。 | はい |
upcase | 文字列を大文字に変換する。 | はい |
追加フィルター
以下の一般的なフィルターは、コンテンツの書式設定や変換など、さまざまな目的に使用できる。
フィルター | 説明 | サポート |
---|---|---|
date | タイムスタンプを別の日付フォーマットに変換する。詳細については、日付フィルターを参照。 | はい |
default | 値が割り当てられていない変数にデフォルト値を設定する。文字列、配列、ハッシュで使用できる。 | はい |
format_address | 住所のロケールに応じた順序で住所の要素をフォーマットして、住所を出力する。 | いいえ |
highlight | 送信された検索語に一致する場合、検索結果内の語を highlight クラスの HTML タグ <strong> で囲む。 |
いいえ |
time_zone |
「タイムゾーンフィルター」を参照してください。 | はい |
エンコーディングやURLフィルターなど、サポートされているフィルターについては、アドバンス・フィルターのページで確認できる。
日付フィルター
date
フィルタは、タイムスタンプを別の日付フォーマットに変換するのに使える。タイムスタンプを再フォーマットするために、date
フィルタにパラメータを渡すことができる。これらのパラメーターの例については、strfti.me を参照してください。
例えば、date_attribute
の値がタイムスタンプ 2021-06-03 17:13:41 UTC
だとします。
1
{{custom_attribute.${date_attribute} | date: '%b %d'}}
1
03 June
strftime
フォーマットオプションに加えて、Brazeは%s
日付フィルタを使ったタイムスタンプのUnix時間への変換もサポートしている。例えば、date_attribute
を Unix 時間で取得するには、次のコードを記述します。
1
{{custom_attribute.${date_attribute} | date: '%s' }}
1
1433351621
タイムゾーンフィルター
Shopifyのドキュメントに記載されているフィルターに加えて、Brazeはtime_zone
フィルターもサポートしている。
time_zone
フィルターは、時刻、タイムゾーン、日付形式を受け取り、そのタイムゾーンの時刻を指定された日付形式で返します。例えば、{{custom_attribute.$date_attribute}}}
の値が2021-08-04 9:00:00 UTC
だとしよう:
1
{{custom_attribute.${date_attribute} | time_zone: 'America/Los_Angeles' | date: '%a %b %e %T' }}
1
Wed August 4 2:00:00
予約変数 now
を使用して、操作用に現在の日付と時刻にアクセスすることもできます。
1
{{ 'now' | date: '%Y-%m-%d %H:%M:%S' }}
1
2021-08-04 18:13:13