コンテキスト
コンテキストステップを使用すると、ユーザーがキャンバス内を移動するときに、ユーザーの変数を1つ以上作成、更新できます。例えば季節割引を管理するキャンバスでは、コンテキスト変数を使用して、ユーザーがキャンバスにエントリするたびに異なる割引コードを保存できます。
コンテキストステップは現在早期アクセス段階です。この初期のアクセスに参加したい場合は、Braze アカウントマネージャーに連絡してください。
キャンバスコンテキストステップへの初期アクセスを選択すると、すべてのキャンバスでタイムスタンプが処理される方法が変更されることに注意してください。詳細については、タイムゾーン整合性標準化を参照してください。
仕組み

コンテキストステップを使用すると、特定のキャンバスを経由したユーザーの移動中に一時データを作成して使用できます。このデータは、そのCanvas ジャーニー内にのみ存在し、異なるCanvase 間やセッション外では保持されません。
データ型、使用法、ベストプラクティスなどのコンテキスト変数の完全な参照については、コンテキスト変数参照を参照してください。
コンテキストステップ内では、最大10 個のコンテキスト変数を定義または更新できます。これらの変数を使用して、遅延をパーソナライズしたり、s ダイナミックなをアライアンスでSegment ユーザーしたり、キャンバス全体のメッセージングを豊かにしたりできます。たとえば、ユーザーのスケジュールされた飛行時間のコンテキスト変数を作成し、それを使用してパーソナライズされた遅延を設定し、リマインダーを送信できます。
コンテキスト変数は、次の2 つの方法で設定できます。
- キャンバスエントリで:イベントまたはAPI トリガーからのデータは、コンテキスト変数に自動的に入力できます。
- コンテキストステップで:コンテキストステップを追加して、コンテキスト変数を手動で定義または更新します。
各コンテキスト変数には、名前、データ型、および値(リキッドまたはカスタマイズの追加ツールを使用して設定)が必要です。定義すると、{{context.${flight_time}}} のように、Liquid を使用してキャンバス全体のコンテキスト変数を参照できます。
それぞれのキャンバスエントリは、最新のエントリデータとキャンバス設定に基づいてコンテキスト変数を再定義し、ユーザーが独自のコンテキストで複数のアクティブジャーニーを持つことを可能にします。たとえば、ある顧客に2 つの次のフライトがある場合、2 つの別々のジャーニーステートが同時に実行され、それぞれに、出発時刻や送信先などの独自のフライト固有のコンテキスト変数が含まれます。これにより、ニューヨーク行きの午後2時の飛行に関するパーソナライズされたのリマインダーを送る一方で、明日のロス・アンヘレス行きの午前8時の飛行に関する別々の更新を送ることができ、各々のメッセージは、具体的な予約に関連したものであり続けることができます。
考慮事項
- コンテキストステップごとに最大10 個のコンテキスト変数を定義できます。
- 各変数には一意の名前(文字、数字、アンダースコアのみ、最大100 文字) が必要です。
- ステップ内のすべての変数の総サイズは50KB を超えることはできません。
- API トリガーを使用して渡された変数は、コンテキストステップs で作成されたものと同じ名前空間を共有します。コンテキストステップで変数を再定義すると、API 値が上書きされます。
詳細および高度な使用方法については、コンテキスト変数参照を参照してください。
コンテキストステップの作成
ステップ1:ステップを追加する
キャンバスにステップを追加し、サイドバーからコンポーネントをドラッグアンドドロップするか、 plus ボタンを選択し、Context を選択します。
ステップ2: 変数の定義
コンテキストステップごとに最大10 個のコンテキスト変数を定義できます。
コンテキスト変数を定義するには
- コンテキスト変数にname を指定します。
- データ型を選択します。
- Liquid 式を手動で記述するか、Add Personalization を使用して既存の属性からLiquid スニペットを作成します。
- コンテキスト変数の値を確認するには、プレビューを選択します。
- (オプション) 変数を追加するには、コンテキスト変数を追加 を選択し、ステップs 1~4 を繰り返します。
- [完了] を選択します。
これで、[パーソナライズを追加する] を選択して、メッセージステップやユーザー更新ステップなど Liquid を使用する任意の場所で、コンテキスト変数を使用できます。フルウォークスルーについては、コンテキスト変数参照を参照してください。
コンテキスト変数フィルターs
フィルター s は、Audience Paths およびDecision Split ステップ s でコンテキスト変数を使用して作成できます。フィルター設定、比較ロジック、高度な例については、コンテキスト変数リファレンスを参照してください。
ユーザー パスのプレビュー
ユーザー パスs でテストと[ プレビューを実行して、メッセージが正しいオーディエンスに送信され、コンテキスト変数が期待される結果に評価されることを確認することをお勧めします。
エディタの** プレビュー & Test Send** セクションでキャンバスをプレビューする場合、テストメッセージプレビューのタイムスタンプ**は、文字列としてプレビューs を生成するため、UTC に標準化されません。つまり、キャンバスがtime オブジェクトを受け入れるように設定されている場合、メッセージプレビューは、キャンバスの稼働中に発生する内容をキュレートしません。ほとんどのac キュレート y をテストするには、代わりにユーザー パス s をプレビューすることをお勧めします。
無効なコンテキスト変数を作成する一般的なシナリオを必ず守ってください。ユーザー パスをプレビューするときに、コンテキスト変数、およびユーザーs と任意のコンテキスト変数を照合するオーディエンス、ディシジョン、またはアクションパス ステップの比較を使用して、パーソナライズされた遅延ステップs の結果を表示できます。
コンテキスト変数が有効な場合は、キャンバス全体で変数を参照できます。ただし、コンテキスト変数が正しく作成されていない場合、キャンバス内の将来のステップも正しく実行されません。たとえば、コンテキストステップを作成してユーザーにアプリの軟膏時間を割り当て、アプリの軟膏時間の値を過去の日付に設定した場合、メッセージステップのリマインダーメールは送信されません。
接続されたコンテンツ文字列のJSON への変換
コンテキストステップでコネクテッドコンテンツ呼び出しを実行すると、整合性とエラー防止のために、呼び出しから返された JSON が文字列データ型として評価されます。この文字列をJSON に変換する場合は、as_json_string を使用して変換します。以下に例を示します。
1
2
{% connected_content http://example.com :save product %}
{{ product | as_json_string }}
タイムゾーン整合性の標準化
タイムスタンプタイプを使用するほとんどのイベントプロパティはキャンバスですでにUTCになっていますが、いくつかの例外があります。キャンバスコンテキストを追加すると、アクション ベースのキャンバスのすべてのデフォルトタイムスタンプイベントプロパティは一貫してUTC になります。この変更は、キャンバスステップやメッセージを編集する際に、より予測可能で一貫性のあるエクスペリエンスを確保するための、より幅広い作業の一部です。この変更は、特定のキャンバスがコンテキストステップを使用しているかどうかに関係なく、すべてのアクションベースのキャンバスに影響を与えることに注意してください。
すべての状況で、目的のタイムゾーンで表されるタイムスタンプには、Liquid time_zone フィルター s を使用することを強くお勧めします。このよくある質問を例として参照できます。
トラブルシューティング
以下の場合、コンテキスト変数は無効と見なされます。
- 埋め込み接続コンテンツへの呼び出しが失敗します。
- 実行時のLiquid 式は、データ型と一致しない値、または空(NULL) の値を返します。
たとえば、コンテキスト変数のデータ型がNumber であるが、Liquid 式が文字列を返す場合、これは無効です。
このような状況では次のようになります。
- ユーザーは次のステップに進みます。
- キャンバスステップ分析では、これは_未更新_としてカウントされます。
トラブルシューティングの際には、_未更新_指標を監視して、コンテキスト変数が正しく更新されることを確認します。コンテキスト変数が無効な場合、ユーザーはコンテキストステップを過ぎてもキャンバスに留まることができますが、後のステップには適さない場合があります。
各データ型の設定例については、データ型を参照してください。
よくある質問
キャンバスコンテキストが一般的に使用可能になると、何が変わりますか?
キャンバスコンテキストが一般的に使用可能になると、次の情報がアプリされます。
- アクション ベースのキャンバスのdatetime type がトリガーイベントプロパティ のすべてのタイムスタンプは、必ずUTC になります。
- この変更は、特定のキャンバスがコンテキストステップを使用しているかどうかにかかわらず、アクションベースのすべてのキャンバスに影響します。
この変更の理由は何ですか?
この変更は、キャンバスステップやメッセージを編集するときに、より予測可能で一貫性のあるエクスペリエンスを作成するための、より幅広い作業の一部です。
この変更はいつ有効になりますか?
- キャンバスコンテキストの早期アクセスに参加している場合、この変更はすでにアプリ嘘になっています。
- キャンバスコンテキストの初期アクセスに参加していない場合は、初期アクセスに参加したとき、またはキャンバスコンテキストが一般的に使用可能になったときに、この変更がアプリされます。
API-トリガーキャンバスまたはスケジュールされたキャンバスは、この変更の影響を受けますか?
いいえ。
この変更は、キャンバスのエントリプロパティーに影響しますか?
はい。これは、canvas_entry_propertyがアクションベースのキャンバスで使用されており、プロパティの種類がtimeの場合、canvas_entry_propertiesに影響します。どのような状況でも、必要なタイムゾーンで表されるタイムスタンプには、リキッドtime_zone フィルターを使用することをお勧めします。
これを行う方法の例を次に示します。
| メッセージステップのリキッド | 出力 | これは、Liquidでタイムゾーンを正しく表現する方法ですか? |
|---|---|---|
{{canvas_entry_properties.${timestamp_property}}} |
2025-08-05T08:15:30:250-0800 |
いいえ |
{{canvas_entry_properties.${timestamp_property} | date: "%Y-%m-%d %l:%M %p"}} |
2025-08-05 4:15pm |
いいえ |
{{canvas_entry_properties.${timestamp_property} | time_zone: "America/Los_Angeles" | date: "%Y-%m-%d %l:%M %p"}} |
2025-08-05 8:15am |
はい |
新しいタイムスタンプの振る舞いが私のメッセージにどのように影響するかの実用的な例は何ですか?
たとえば、メッセージステップに次の内容を含むアクションベースのキャンバスがあるとします。
1
Your appointment is scheduled for {{canvas_entry_properties.${appointment_time} | date: "%Y-%m-%d %l:%M %p"}}, we'll see you then!
これにより、次のメッセージが表示されます。
1
Your appointment is scheduled for 2025-08-05 4:15pm, we’ll see you then!
Liquidを使用してタイムゾーンが指定されていないため、ここでのタイムスタンプはUTCです。
タイムゾーンを明確に指定するには、以下のようにリキッドtime_zone フィルターs を使用します。
1
Your appointment is scheduled for {{canvas_entry_properties.${appointment_time} | time_zone: "America/Los_Angeles" | date: "%Y-%m-%d %l:%M %p"}}, we'll see you then!
これにより、次のメッセージが表示されます。
1
Your appointment is scheduled for 2025-08-05 8:15am, we'll see you then!
America/Los アンヘレスタイムゾーンはLiquid を使用して指定されているため、ここでのタイムスタンプはPST です。
推奨されるタイムゾーンは、以下のような支払いプロパティーの読み込むで送信することもでき、リキッドロジックで使用できます。
1
2
3
4
{
"appointment_time": "2025-08-05T08:15:30:250-0800"
"user_timezone": "America/Los_Angeles"
}
コンテキスト変数は、Canvas エントリプロパティとはどのように異なるのですか?
コンテキストステップの初期アクセスに参加している場合は、キャンバスエントリのプロパティがキャンバスのコンテキスト変数として含まれるようになりました。つまり、Liquid スニペットでコンテキスト変数を使用する場合と同様に、Braze API を使用してキャンバスエントリのプロパティを送信し、他のステップでこれらのプロパティを参照できます。
変数は、1つのコンテキストステップ内で相互に参照できますか?
はい。コンテキストステップのすべての変数は、シーケンスで評価されます。つまり、以下のコンテキスト変数を設定できます。
| コンテキスト変数 | 値 | 説明 |
|---|---|---|
favorite_cuisine |
{{custom_attribute.${Favorite Cuisine}}} |
ユーザーのお気に入りの料理。 |
promo_code |
EATFRESH |
ユーザーに利用可能な割引コード。 |
personalized_message |
"Enjoy a discount of" {{context.promo_code}} "on delivery from your favorite" {{context.favorite_cuisine}} restaurants!" |
以前の変数を組み合わせたパーソナライズされたメッセージ。メッセージステップでは、Liquid スニペット{{context.${personalized_message}}} を使用してコンテキスト変数を参照し、各ユーザーにパーソナライズされたメッセージを配信できます。コンテキストステップを使用して、プロモコード値を保存し、キャンバス全体の他のステップにテンプレートすることもできます。 |
これは、複数のコンテキストステップにも適用されます。例えば次のシーケンスを考えてみます。
- 最初のコンテキストステップでは、
JobInfoという変数を作成して値job_titleを設定します。 - メッセージステップは
{{context.${JobInfo}}}を参照し、job_titleをユーザーに表示します。 - その後、コンテキストステップによってコンテキスト変数が更新され、
JobInfoの値がjob_descriptionに変更されます。 JobInfoを参照する以降のすべてのステップで、更新された値job_descriptionが使用されるようになりました。
コンテキスト変数は、キャンバス全体で最新の値を使用します。更新を行うたびに、その変数を参照する後続のすべてのステップに影響します。
GitHub でこのページを編集