コンテキスト
コンテキストステップを使用すると、ユーザーがキャンバス内を移動するときに、ユーザーの変数を1つ以上作成、更新できます。例えば季節割引を管理するキャンバスでは、コンテキスト変数を使用して、ユーザーがキャンバスにエントリするたびに異なる割引コードを保存できます。
コンテキストステップは現在早期アクセス段階です。この初期のアクセスに参加したい場合は、Braze アカウントマネージャーに連絡してください。
CDI の仕組み
コンテキストステップを使用すると、特定のキャンバス内でのユーザーのジャーニーで、一時データを作成して使用できます。このデータは、そのCanvas ジャーニー内にのみ存在し、異なるCanvase 間やセッション外では保持されません。
このフレームワーク内で、各コンテキストステップは、複数のコンテキスト変数(ユーザーのプロファイル情報を永続的に変更することなく、遅延のパーソナライズ、ユーザーの動的セグメント化、メッセージングの拡張を可能にする一時的なデータ)を定義できます。
たとえば、フライト予約を管理している場合、各ユーザーのスケジュールされたフライト時間のコンテキスト変数を作成できます。その後、各ユーザーのフライト時間に応じて遅延を設定し、同じキャンバスから個別のリマインダーを送信できます。
コンテキスト変数は、次の2 つの方法で設定できます。
- キャンバスエントリで:ユーザがキャンバスに入ると、イベントまたはAPI トリガのデータが自動的にコンテキスト変数に入力されます。
- コンテキストステップで:コンテキストステップを追加することで、キャンバス内でコンテキスト変数を手動で定義または更新できます。
各コンテキスト変数には以下が含まれます。
- 名前 (
flight_time
やsubscription_renewal_date
など) - データ型 (数値、文字列、時刻、配列など)
- LiquidまたはAdd Personalizationツールを使用して割り当てる値。
定義したコンテキスト変数は、キャンバス全体で {{context.${example_variable_name}}}
という形式で参照できます。
例えば、
{{context.${flight_time}}}
は、ユーザーの予定飛行時間を返します。
ユーザーがキャンバスにエントリするたびに (以前にキャンバスにエントリしたことがある場合でも)、コンテキスト変数は、最新のエントリデータとキャンバス設定に基づいて再定義されます。これにより、複数のエントリを持つユーザーに対しても、ジャーニーはパーソナライズされた正確な状態になります。
コンテキストステップの作成
ステップ1:ステップを追加する
キャンバスにステップを追加し、サイドバーからコンポーネントをドラッグアンドドロップするか、 plus ボタンを選択し、Context を選択します。
ステップ2: 変数の定義
コンテキストステップごとに最大10 個のコンテキスト変数を定義できます。
コンテキスト変数を定義するには
- コンテキスト変数にname を指定します。
- データ型を選択します。
- Liquid 式を手動で記述するか、Add Personalization を使用して既存の属性からLiquid スニペットを作成します。
- コンテキスト変数の値を確認するには、プレビューを選択します。
- (オプション) 変数を追加するには、[コンテキスト変数を追加] を選択し、手順1~4を繰り返します。
- [完了] を選択します。
これで、[パーソナライズを追加する] を選択して、メッセージステップやユーザー更新ステップなど Liquid を使用する任意の場所で、コンテキスト変数を使用できます。フルウォークスルーについては、コンテキスト変数の使用を参照してください。
ステップ 3:ユーザーパスのテスト(オプション)
コンテキスト変数が有効な場合は、キャンバス全体で変数を参照できます。ただし、コンテキスト変数が正しく作成されていない場合、キャンバスの今後の手順も正しく実行されません。メッセージが適切なユーザーに送信されるように、テストとユーザーパスのプレビューを行うことをお勧めします。無効なコンテキスト変数を作成する一般的なシナリオを探します。
例えば、ユーザーに予約時刻を割り当てるコンテキストステップを作成したが、予約時刻の値を過去の日付に設定した場合、メッセージステップで作成したリマインダーメールが送信されることはありません。
コンテキスト変数のデータ型
ステップで作成または更新されるコンテキスト変数には、次のデータ型を割り当てることができます。
コンテキスト変数は、カスタムイベントと同じデータ型の期待される形式を持ちますが、コンテキスト変数はネストされたオブジェクトをサポートしていません。
データタイプ | 変数名の例 | 値の例 |
---|---|---|
ブール値 | loyalty_program | true |
数値 | credit_score | 740 |
string | product_name | green_tea |
配列 | favorite_products | ["wireless_headphones", "smart_homehub", "fitness_tracker_swatch"] |
時刻 | last_purchase_date | 2025-12-25T08:15:30:250-0800 |
オブジェクト (フラット化) | user_profile | { |
コンテキスト変数の使用
たとえば、次のフライトの前に、VIP ラウンジへのアクセスについて乗客に通知したいとします。このメッセージは、ファーストクラスのチケットを購入した乗客にのみ送信する必要があります。コンテキスト変数は、この情報を追跡する柔軟な方法です。
ユーザーは、飛行機のチケットを購入するときにキャンバスに入ります。ラウンジアクセスの適格性を判断するために、コンテキストステップでlounge_access_granted
というコンテキスト変数を作成し、その後のユーザージャーニーのステップでそのコンテキスト変数を参照します。
このコンテキストステップでは、{{custom_attribute.${purchased_flight}}}
を使用して、購入したフライトのタイプがfirst_class
かどうかを判断します。
次に、{{context.${lounge_access_granted}}}
がtrue
であるユーザーをターゲットにするメッセージステップを作成します。このメッセージは、個人化されたラウンジ情報を含むプッシュ通知となります。このコンテキスト変数に基づいて、適格な乗客は、フライト前に関連するメッセージを受け取ります。
- ファーストクラスの乗客は次のメッセージを受け取ります:「Enjoy exclusive VIP lounge access!」
- ビジネスクラスとエコノミークラスの乗客は次のメッセージを受け取ります:「Upgrade your flight for exclusive VIP lounge access.」
コンテキストステップの情報を使用して、パーソナライズされた遅延オプション を追加できます。つまり、ユーザーを遅延させる変数を選択できます。
接続されたコンテンツ文字列のJSON への変換
コンテキストステップでコネクテッドコンテンツ呼び出しを実行すると、整合性とエラー防止のために、呼び出しから返された JSON が文字列データ型として評価されます。この文字列をJSON に変換する場合は、as_json_string
を使用して変換します。以下に例を示します。
1
2
{% connected_content http://example.com :save product %}
{{ product | as_json_string }}
トラブルシューティング
無効なコンテキスト変数
以下の場合、コンテキスト変数は無効と見なされます。
- 埋め込み接続コンテンツへの呼び出しが失敗します。
- 実行時のLiquid 式は、データ型と一致しない値、または空(NULL) の値を返します。
たとえば、コンテキスト変数のデータ型がNumber であるが、Liquid 式が文字列を返す場合、これは無効です。
このような状況では次のようになります。
- ユーザーは次のステップに進みます。
- キャンバスステップ分析では、これは_未更新_としてカウントされます。
トラブルシューティングの際には、_未更新_指標を監視して、コンテキスト変数が正しく更新されることを確認します。コンテキスト変数が無効な場合、ユーザーはコンテキストステップを過ぎてもキャンバスに留まることができますが、後のステップには適さない場合があります。
各データ型の設定例については、コンテキスト変数データ型を参照してください。
よくある質問
コンテキスト変数は、Canvas エントリプロパティとはどのように異なるのですか?
コンテキストステップの初期アクセスに参加している場合は、キャンバスのエントリプロパティがキャンバスのコンテキスト変数として含まれるようになりました。つまり、Liquid スニペットでコンテキスト変数を使用する場合と同様に、Braze API を使用してキャンバスエントリのプロパティを送信し、他のステップでこれらのプロパティを参照できます。
変数は、1つのコンテキストステップ内で相互に参照できますか?
はい。コンテキストステップのすべての変数は、シーケンスで評価されます。つまり、以下のコンテキスト変数を設定できます。
コンテキスト変数 | 値 | 説明 |
---|---|---|
favorite_cuisine |
{{custom_attribute.${Favorite Cuisine}}} |
ユーザーのお気に入りの料理。 |
promo_code |
EATFRESH |
ユーザーに利用可能な割引コード。 |
personalized_message |
"Enjoy a discount of" {{promo_code}} "on delivery from your favorite" {{favorite_cuisine}} restaurants!" |
以前の変数を組み合わせたパーソナライズされたメッセージ。 |
メッセージステップでは、Liquid スニペット{{context.${personalized_message}}}
を使用してコンテキスト変数を参照し、各ユーザーにパーソナライズされたメッセージを配信できます。
これは、複数のコンテキストステップにも適用されます。例えば次のシーケンスを考えてみます。
- 最初のコンテキストステップでは、
JobInfo
という変数を作成して値job_title
を設定します。 - メッセージステップは
{{context.${JobInfo}}}
を参照し、job_title
をユーザーに表示します。 - その後、コンテキストステップによってコンテキスト変数が更新され、
JobInfo
の値がjob_description
に変更されます。 JobInfo
を参照する以降のすべてのステップで、更新された値job_description
が使用されるようになりました。
コンテキスト変数は、キャンバス全体で最新の値を使用します。更新を行うたびに、その変数を参照する後続のすべてのステップに影響します。