Skip to content

よくある質問

このページでは、Liquidに関するよくある質問への回答を紹介します。

BrazeにおけるLiquidについて

BrazeでLiquidスニペットを使用するにはどうすればよいですか?

多くの場合、CampaignやCanvasesに移動し、メール本文やSegmentsなどの領域でパーソナライゼーションモーダルにLiquidを挿入することで、Liquidスニペットを組み込むことができます。

詳しくはどこで学べますか?

Liquidの詳細については、ガイド付きのLiquidによるダイナミックパーソナライゼーション Braze Learningパスをご覧ください。また、Liquidユースケースライブラリーを参照して、Liquidを使用したパーソナライゼーションの例やインスピレーションを得ることもできます。

パーソナライゼーションにおけるLiquidとコネクテッドコンテンツの違いは何ですか?

Brazeのコネクテッドコンテンツは、Liquidタグの一例です。パーソナライゼーションにも使用されますが、このデータはBraze内に保存されたデータではなく、外部エンドポイントから取得されます。メッセージのパーソナライズ方法を拡張する方法について詳しくは、専用のコネクテッドコンテンツセクションをご覧ください。

Liquidテンプレートとは何ですか?

これはBrazeでLiquidを使用する最も一般的な方法です。Liquidテンプレートでは、ユーザープロファイルからメッセージにデータを取り込みます。このデータは、ユーザーの名からトリガーメッセージのカスタムイベントまで多岐にわたります。

サポートされているLiquidタグの完全なリストについては、サポートされているパーソナライゼーションタグを参照してください。

Liquidを使用するとデータポイントが記録されますか?

いいえ。

パーソナライゼーションタグとデータソース

Liquidを使用してパーソナライズされた挨拶を送信するにはどうすればよいですか?

ユーザーの名を使用したパーソナライズされた挨拶には、{{${first_name}}}{{${last_name}}}などの標準ユーザープロファイル属性を取り込むことができます。

また、Liquidの{% if X %}ステートメントを使用して、曜日やカスタム属性など、あらゆる条件に基づいた条件付きレンダリングを行うこともできます。条件文で使用できるサポートされているLiquid演算子の詳細については、演算子をご覧ください。

ユーザーのロケーションに基づいてメッセージをパーソナライズするにはどうすればよいですか?

ユーザーのロケーションにはデフォルト属性があります:{{${most_recent_location}}}

{{campaign.${name}}}と{{campaign.${message_name}}}の違いは何ですか?

{{campaign.${name}}}{{campaign.${message_name}}}はどちらもサポートされているLiquidパーソナライゼーションタグです。どちらのタグもCampaignの属性を参照します。{{campaign.${name}}}はCampaignの名前を示し、{{campaign.${message_name}}}はメッセージバリアントの名前です。

URLやクエリ文字列での使用(名前に%やスペースが含まれる場合など)については、URLでのCampaign名を参照してください。

ネストされたオブジェクトでLiquidを使用するにはどうすればよいですか?

Brazeには、メッセージで使用できるSegments用のLiquidコードを生成する組み込み機能があります。具体的には、オブジェクト内の複数の条件に一致するSegmentを作成できます。

詳細については、マルチ条件セグメンテーションをご覧ください。

イベント属性を使用して、イベントがトリガーするメッセージをパーソナライズするにはどうすればよいですか?

api_triggered_propertyタグを使用して、APIトリガーイベントのプロパティにアクセスできます:{{api_trigger_properties.${attribute_key}}}

BrazeはLiquidで配列の配列をサポートしていますか?

Liquidはネイティブで配列の配列をサポートしていません。値をカンマ区切りの文字列の配列として格納し、必要に応じてsplitフィルターを使用して解析してください。

変数と構文

Liquidで変数を割り当てるにはどうすればよいですか?

assignタグを使用して変数を作成し、割り当てることができます。これにより、メッセージ作成画面で変数が作成され、メッセージ全体で参照することもできます。

assigncaptureはいつ使い分けるべきですか?

assigncaptureはどちらもLiquid変数を作成しますが、用途が異なります。

  • assignは、ブール値、数値、単純な文字列など、単一の値を格納するシンプルな変数に使用します。同じ行で単一のフィルターを適用することもできます。
  • captureは、複数の変数、文字列、または複雑な式を含む可能性のあるテキストブロックを格納するために使用します。

他のLiquid変数やカスタム属性をパラメーターとして利用するURLなど、単一のassignステートメントでは複雑すぎる値の場合にcaptureを使用してください。captureは、コネクテッドコンテンツ呼び出しの本文でLiquid変数を実装する場合にも推奨されます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{% comment %}Use assign for custom attributes{% endcomment %}
{% assign name = {{custom_attribute.${first_name}}} %}
{% assign price = {{custom_attribute.${price}}} | plus: 0 %}

{% comment %}Use assign for a simple variable{% endcomment %}
{% assign discount_label = "20% off" %}
Hello {{ customer.first_name | default: "there" }}, enjoy {{ discount_label }} on your next order!

{% comment %}Use capture for complex strings{% endcomment %}
{% capture greeting %}Hello, {{custom_attribute.${first_name}}}! Your order #{{custom_attribute.${order_id}}} is ready.{% endcapture %}
{{ greeting }}

{% comment %}Use capture to create conditional content{% endcomment %}
{% capture promo_block %}
{% if customer.vip == true %}
As a VIP member, you get free shipping.
{% else %}
Join our VIP program to unlock free shipping.
{% endif %}
{% endcapture %}

Liquid変数は件名と本文の間で引き継がれますか?

いいえ。Brazeは各メッセージコンポーネント(件名、HTML本文、プリヘッダー、プッシュタイトルなど)を個別にレンダリングします。あるフィールドで行った割り当てやキャプチャは、別のフィールドでは使用できません。値が必要な各フィールドでLiquidまたはコネクテッドコンテンツの呼び出しを繰り返してください。

forループロジックとは何ですか?また、どのように使用できますか?

forループは反復タグとも呼ばれます。Liquidスニペットでforループロジックを使用すると、条件が満たされるまでLiquidブロックを繰り返し処理できます。

Brazeでは、配列カスタム属性のアイテムのチェック、またはカタログセレクションコネクテッドコンテンツ呼び出しの応答で返される値やオブジェクトのリストのチェックに使用できます。具体的には、forループロジックをメッセージングの一部として使用して、製品が在庫にあるかどうか、または製品が最低評価を満たしているかどうかを確認できます。

例えば、「Games」というカタログに「cheap_games」というセレクションがあるとします。「cheap_games」のゲームタイトルを取得するには、次のLiquidスニペットを使用できます:

1
2
3
4
{% catalog_selection_items Games cheap_games %}
{% for item in items %}
 Get this game: {{ item.title }}
{% endfor %}

設定した条件が満たされると、メッセージを続行できます。このロジックを使用すると、異なる条件に対してLiquidブロックを繰り返す代わりに時間を節約できます。

中止ロジックとは何ですか?また、どのように使用できますか?

中止ロジックを使用すると、条件が満たされた場合にメッセージの送信を停止できます。これは、不完全なメッセージがユーザーに送信されるのを防ぐのに特に役立ちます。マーケティングCampaignでの中止ロジックの例については、メッセージの中止で詳しくご覧ください。

abort_messageタグ内でLiquidを使用できますか?

いいえ。{% abort_message %}タグは引用符で囲まれた静的な文字列のみを受け付け、Liquidパーソナライゼーションは使用できません。条件付きの中止動作が必要な場合は、タグの前に他のLiquidロジックを使用してください。

Canvas、カタログ、トリガープロパティ

APIトリガーのLiquidがBrazeで失敗するのはなぜですか?

よくある原因は、余分な波括弧のペアです。例えば、{{{api_trigger_properties.${attribute_key}}}}は有効なBrazeパーソナライゼーション構文ではありません。開き波括弧2つと閉じ波括弧2つを正確に使用してください:{{api_trigger_properties.${attribute_key}}}

Canvasコンテキストプロパティにサイズ制限はありますか?

BrazeはCanvasコンテキストプロパティにハードリミットを設けていませんが、ペイロードは約1 KB(約1,000文字)以下に抑えてください。大きなオブジェクトはメモリ使用量を増加させ、大量送信時のメッセージレンダリングを遅延させる可能性があります。

ダッシュボードで特定のデータタイプをプレビューするとLiquidエラーが発生するのはなぜですか?

一部のCanvasコンテキストプロパティタイプは、比較や計算で使用する前にLiquidでの型変換が必要です。例えば、数値の動作が必要な場合:

1
{{context.${property_name} | plus: 0}}

カタログのLiquidスニペットが中止メッセージを返すのはなぜですか?

カタログのLiquidスニペットが送信時に中止される場合は、一括またはフルダイナミックセレクションを使用する代わりに、パーソナライゼーションメニューから個別のカタログアイテムを選択してスニペットを再作成してください。詳細については、カタログセレクションを参照してください。

Content Blocksとメッセージ作成画面

Content Blocksを使用するメッセージに余分なスペースが入るのはなぜですか?

Liquidを使用するContent Blocksで送信されたメッセージに余分なスペースがある場合、条件文内に不要な段落や改行が含まれている可能性があります。条件文は複数行にまたがるのではなく、1行で記述してください。

1
{% if {{custom_attribute.${has_discount}}} == true %}Discounted Item{% elsif {{custom_attribute.${is_new_arrival}}} == true %}New Arrival{% else %}Regular Item{% endif %}

ドラッグ&ドロップの検索ツールでRowにContent Blockが表示されないのはなぜですか?

一部のContent Blocksは、ドラッグ&ドロップエディターの検索でRowの下に表示されません。コンテンツタブ(Advanced)からHTMLブロックを追加し、そのHTMLブロック内にContent BlockのLiquidタグを挿入して、ブロックのコンテンツをレンダリングしてください。

ドラッグ&ドロップのContent Blockプレビューが作成ビューと異なるのはなぜですか?

Content BlockをLiquidでテンプレート化すると、ブロック内のモバイルメディアクエリが、ブロックを直接メッセージにドラッグした場合と同じようにプレビューに適用されないことがあります。ブロックをドラッグするとレイアウトは保持されますが、ソースブロックから切り離されるため、今後のブロック編集はメッセージに自動的に反映されなくなります。

メッセージ作成画面でイベントプロパティの値をプレビューするにはどうすればよいですか?

カスタムユーザーとしてプレビューを使用し、プレビューするユーザーのサンプルカスタムイベントプロパティ値を入力してください。これは、中止をトリガーしないプレビュー値が必要な中止ロジックを含むメッセージにも便利です。

メールメッセージでのLiquid

メッセージが「Invalid from email address for recipient:」で中止されるのはなぜですか?

この中止は、差出人アドレスのLiquidが無効な構文(変数の欠落、余分なスペース、許可されていない文字など)を生成した場合に発生します。テストユーザーでプレビューし、レンダリングされた差出人アドレスが設定済みの送信ドメインと一致していることを確認してください。

ダイナミックな返信先アドレスを作成するにはどうすればよいですか?

ワークスペースがダイナミックな返信先設定をサポートしている場合、返信先フィールドでLiquidを使用してください。必要に応じて差出人の表示名設定と組み合わせてください。ワークスペース固有のオプションについては、メール設定を参照してください。

Liquidエラーのトラブルシューティング

「Unexpected end token」というLiquidエラーが表示されるのはなぜですか?

このエラーは通常、波括弧の過不足を示しています。{{ }}を別のLiquidタグ式の中にネストしないでください。例えば、属性参照を追加の波括弧で囲むのではなく、{{custom_attribute.${date_of_birth} | date: '%s'}}を使用してください。

アプリ内メッセージでコネクテッドコンテンツのリトライが利用できないのはなぜですか?

リトライ付きの{% connected_content %}タグは、一部のアプリ内メッセージ形式を含むすべてのメッセージタイプでサポートされているわけではありません。リトライパラメーターを削除するか、リトライ付きコネクテッドコンテンツ呼び出しにサポートされているチャネルを使用してください。

New Stuff!