キャンバスの作成
このリファレンス記事では、キャンバスの作成、管理、テストに必要なステップについて説明します。このガイドに従うか、Braze Learningコースのキャンバスクイック概要をご確認ください。Brazeキャンバステンプレートから始めることで、セットアップを迅速に進めることもできます。詳細については、キャンバステンプレートを参照してください。自然言語の説明からキャンバスの下書きを作成するには、オペレーターにお問い合わせください。
元のキャンバスエディターの詳細を展開
元のキャンバスエクスペリエンスを使用してキャンバスを作成または複製することはできなくなりました。Brazeでは、最新のエディターにキャンバスをクローンすることを推奨しています。
ステップ1: 新しいキャンバスを設定する
まず、メッセージング > キャンバスに移動し、キャンバスを作成を選択します。
キャンバスビルダーが、キャンバスの設定をステップごとにガイドします。名前の設定からコンバージョンイベントの設定、対象ユーザーをカスタマージャーニーに取り込むところまで、すべてカバーされています。以下の各タブを選択して、各ビルダーステップで調整できる設定を確認してください。
ここでは、キャンバスの基本を設定します。
- キャンバスに名前を付ける
- チームを追加する
- タグを追加する
- コンバージョンイベントを割り当て、イベントタイプと期限を選択する
基本ステップの詳細はこちらをご覧ください。
ここでは、ユーザーがいつ、どのようにキャンバスにエントリするかを決定します。
- スケジュール: 時間ベースのキャンバスエントリです
- アクションベース: ユーザーが定義されたアクションを実行した後にキャンバスにエントリします
- APIトリガー: APIリクエストを使用してユーザーをキャンバスにエントリさせます
エントリスケジュールステップの詳細はこちらをご覧ください。
ここでは、ターゲットオーディエンスを選択します。
- セグメントとフィルターを追加してオーディエンスを作成する
- キャンバスの再エントリとエントリ制限を微調整する
- ターゲットオーディエンスの概要を確認する
ターゲットオーディエンスステップの詳細はこちらをご覧ください。
ここでは、キャンバスを構築します。
キャンバスビルダーを使用してキャンバスを構築する方法をご覧ください。
ここでは、キャンバスの詳細のサマリーが表示されます。キャンバス承認ワークフローが有効になっている場合は、起動前にリストされたキャンバスの詳細を承認できます。
ステップ1.1: キャンバスの基本から始める
ここでは、キャンバスに名前を付け、チームを割り当て、タグを作成または追加します。キャンバスのコンバージョンイベントも割り当てることができます。


コンバージョンイベントを選択する
コンバージョンイベントのタイプを選択し、記録するコンバージョンを選択します。これらのコンバージョンイベントは、キャンバスの効率を測定するために使用されます。

キャンバスに複数のバリアントまたはコントロールグループがある場合、Brazeはこのコンバージョンイベントを使用して、このコンバージョン目標を達成するための最適なバリエーションを判断します。同じロジックを使用して、複数のコンバージョンイベントを作成できます。
ステップ1.2: キャンバスのエントリスケジュールを決定する
ユーザーがキャンバスにエントリする方法を3つの中から選択できます。
エントリスケジュールタイプ
スケジュール配信では、キャンペーンのスケジュールと同様に、ユーザーはタイムスケジュールに基づいてエントリします。キャンバスの起動直後にユーザーを登録したり、将来のある時点でジャーニーにエントリさせたり、定期的に(毎日、毎週、または毎月)エントリさせることができます。
月次の定期スケジュールを選択する場合、選択した日が存在しない月があることに注意してください。たとえば、キャンバスを毎月31日に送信するように設定したとします。このシナリオでは、4月31日は存在しないため、Brazeは4月30日のようにその月の最終日に送信します。
この例では、時間ベースのオプションに基づいて、ユーザーは2025年11月14日から2025年12月31日まで、毎週火曜日の正午(ローカルタイムゾーン)にこのキャンバスにエントリします。

ローカルタイムゾーン配信を使用する場合、Brazeはエントリの適格性を2回評価します。まずスケジュールされた日のサモア時間(UTC+13)で、次にユーザーのローカルタイムゾーンで評価します。ユーザーがキャンバスにエントリするには、両方のチェックで適格である必要があります。エントリフィルターに相対的な時間枠を使用する場合(たとえば「2日以上前」)、最初のチェック時に24時間が経過していない場合があり、ユーザーのエントリが1日遅れる可能性があります。これを回避するには、少なくとも2日以上などのより広い時間枠を使用してください。詳細については、Brazeはローカルタイムゾーン配信でユーザーをいつ評価しますか?をご覧ください。
アクションベース配信では、ユーザーはアプリを開く、購入を行う、カスタムイベントをトリガーするなどの特定のアクションを実行した際に、キャンバスにエントリしてメッセージの受信を開始します。
エントリオーディエンスウィンドウから、再適格性のルールやフリークエンシーキャップ設定など、キャンバスの動作の他の側面を制御できます。アクションベース配信は、アプリ内メッセージを含むキャンバスコンポーネントでは使用できないことに注意してください。


キャンバスステップとのインタラクションは、キャンバスのアクションベースエントリトリガーとしては使用できません。キャンペーンのトリガーとしてのみ使用できます。あるキャンバスから別のキャンバスをトリガーするには、送信先キャンバスコンポーネントを使用するか、/canvas/trigger/sendエンドポイントを呼び出すBraze間Webhookを作成してください。

アクションベースのキャンバスが予想より早くメッセージを送信する場合は、カスタムイベントのタイムスタンプがバックデートされた時間ではなく現在時刻で送信されていることを確認してください。たとえば、アクションベースのキャンバスにユーザーがカスタムイベントを実行してから3時間の遅延がある場合、Brazeはカスタムイベントと共に送信されたタイムスタンプを使用してその遅延を評価します。タイムスタンプが3時間以上バックデートされている場合、Brazeは遅延が既に経過したとみなし、メッセージを即座に送信します。
APIトリガー配信では、APIを介して/canvas/trigger/sendエンドポイントを使用してユーザーが追加された後、キャンバスにエントリしてメッセージの受信を開始します。ダッシュボードでは、これを行うcURLリクエストの例を確認でき、コンテキストオブジェクトを使用してオプションのcontextを割り当てることもできます。

APIトリガー配信には以下のエンドポイントを使用できます。
配信方法を選択した後、ユースケースに合わせて設定を調整し、ターゲットオーディエンスの設定に進んでください。
オリジナルエディターを使用したキャンバスの重複排除動作
再適格性のウィンドウがキャンバスの最大期間よりも短い場合、ユーザーは再エントリが許可され、複数のコンポーネントのメッセージを受信する可能性があります。ユーザーの再エントリが前回のエントリと同じコンポーネントに到達するエッジケースでは、Brazeはそのコンポーネントのメッセージを重複排除します。
ユーザーがキャンバスに再エントリし、前回のエントリと同じコンポーネントに到達し、各エントリでアプリ内メッセージの対象となる場合、ユーザーはセッションを2回再開する限り、メッセージを2回受信します(アプリ内メッセージの優先度に依存します)。
ステップ1.3: ターゲットエントリオーディエンスを設定する
ターゲットオーディエンスステップでは、定義した条件に一致するユーザーのみがジャーニーにエントリできます。つまり、Brazeはユーザーがキャンバスジャーニーにエントリする前に、ターゲットオーディエンスの適格性を最初に評価します。たとえば、新規ユーザーをターゲットにする場合は、1週間以内にアプリを初めて使用したユーザーのセグメントを選択できます。

複数のアプリがあるワークスペースでは、キャンバスのエントリオーディエンスの適格性(セグメントとフィルターを含む)は、ユーザーがキャンバスにエントリする時点でのみ評価され、個々のメッセージステップでは評価されません。ワークスペースに複数のアプリがあり、メッセージステップが特定のアプリのユーザーのみを対象にする必要がある場合は、各メッセージステップで以下のいずれかのアプローチを使用してください。
- メッセージステップの配信検証でメッセージ送信時にオーディエンスを検証を有効にし、アプリとWebサイトのターゲティングが特定のアプリのユーザーに設定されたセグメントを追加して、対象のアプリのみを選択します。アプリを持っているやアプリのフォアグラウンドプッシュが有効などのフィルターは、ユーザーをチェックするものでありアプリをチェックするものではないため、配信を制限しません。
- Liquidを使用して、送信時に対象のデバイスまたはアプリを確認します。
これらのセーフガードがない場合、あるアプリでジャーニーの対象となったユーザーが、ワークスペース内の他のアプリも使用している場合、別のアプリ向けのメッセージを受信する可能性があります。
エントリコントロールでは、キャンバスの実行がスケジュールされるたびにユーザー数を制限できます。APIトリガーベースおよびアクションベースのキャンバスの場合、この制限はUTCの毎時間に適用されます。
オーディエンスのテスト
ターゲットオーディエンスにセグメントとフィルターを追加した後、ユーザーを検索して、オーディエンス条件に一致するかどうかを確認することで、オーディエンスが期待通りに設定されているかテストできます。

エントリコントロールの選択
エントリコントロールは、ユーザーがキャンバスに再エントリできるかどうかを決定します。エントリスケジュールタイプに応じて、選択したケイデンスでこのキャンバスにエントリする可能性のある人数を制限することもできます。
- スケジュール: キャンバスのライフタイムまたはキャンバスがスケジュールされるたび
- アクションベース: 毎時間、毎日、またはキャンバスのライフタイム
- APIトリガー: 毎時間、毎日、またはキャンバスのライフタイム
たとえば、スケジュールされたキャンバスでエントリ数を制限を選択し、最大エントリ数フィールドを500,000ユーザーに設定し、制限のケイデンスとしてキャンバスがスケジュールされるたびを選択した場合、キャンバスはスケジュールされた送信ごとに500,000ユーザーにのみ送信されます。


IPウォームアップにはキャンバスがスケジュールされるたびを選択することはお勧めしません。送信量が増加する可能性があるためです。
終了条件の設定
終了条件を設定すると、キャンバスから退出させたいユーザーを決定します。ユーザーが例外イベントを実行するか、セグメントとフィルターに一致する場合、それ以降のメッセージは受信しません。
ターゲット層の計算
ターゲット層セクションでは、選択したセグメントや追加フィルターなどのオーディエンスの概要と、メッセージングチャネルごとの到達可能なユーザー数の内訳を確認できます。デフォルトの推定値ではなく、ターゲットオーディエンスの到達可能なユーザーの正確な数を計算するには、正確な統計を計算を選択します。
以下の点に注意してください。
- 正確な統計の計算には数分かかる場合があります。この機能は、フィルターレベルやフィルターグループレベルではなく、セグメントレベルでのみ正確な統計を計算します。
- 正確な統計の読み込み中に、概算値が表示される場合があります。正確な数値は、読み込み完了後に到達可能なユーザーセクションに表示されます。詳細な内訳を表示するには、追加統計を表示を選択できます。
- 大規模なセグメントの場合、正確な統計を計算しても多少のばらつきが見られるのは正常です。この機能の精度は99.999%以上が期待されます。
対象ユーザーの平均ライフタイム収益などの追加統計を表示するには、追加統計を表示を選択します。

ターゲットオーディエンス数と到達可能なユーザー数が異なる理由
キャンペーンまたはキャンバスに表示されるターゲット層のサイズは、セグメントの到達可能なオーディエンスサイズとは異なる場合があります。これは、そのセグメントを追加のフィルターなしでキャンペーンまたはキャンバスに直接追加している場合でも同様です。 これにはいくつかの理由が考えられます。
- グローバルコントロールグループがキャンペーンまたはキャンバスに適用されている場合、そのグローバルコントロールグループ内のユーザーは到達可能なユーザー数から除外されます。
- キャンペーンまたはキャンバスのターゲット層のサイズは、さまざまなメッセージチャネルを通じて連絡できないユーザーを除外します。この動作はチャネルごとに異なります。たとえば、キャンペーンまたはキャンバスの到達可能なオーディエンスでは、購読解除済み、スパムとしてマークされた(メールの場合)、またはハードバウンスした(メールの場合)ユーザーが除外されます。ただし、セグメント自体は、到達可能なメールユーザーの推定数を表示する際にオプトアウトのみを除外します。
- Brazeは選択した購読グループ内のユーザーにのみSMSメッセージを送信するため、キャンペーンまたはキャンバスのSMSターゲット層からは、選択した購読グループに含まれないユーザーも除外されます。
ステップ1.4: 送信設定を選択する
送信設定を選択して、購読設定の編集、レート制限の有効化、サイレント時間の有効化を行います。レート制限やフリークエンシーキャップを有効にすることで、ユーザーへのマーケティング圧力を軽減し、過剰なメッセージ送信を防ぐことができます。
メールおよびプッシュチャネルをターゲットにするキャンバスの場合、明示的にオプトインしたユーザーのみにメッセージが送信されるように制限したい場合があります(購読中または購読解除のユーザーを除く)。たとえば、オプトインステータスが異なる3人のユーザーがいるとします。
- ユーザーAはメールをサブスクライブしており、プッシュが有効です。このユーザーはメールを受信しませんが、プッシュを受信します。
- ユーザーBはメールにオプトインしていますが、プッシュが有効ではありません。このユーザーはメールを受信しますが、プッシュを受信しません。
- ユーザーCはメールにオプトインしており、プッシュが有効です。このユーザーはメールとプッシュの両方を受信します。
そのためには、購読設定を「オプトインしたユーザーのみ」に送信するように設定します。このオプションにより、オプトインしたユーザーのみがメールを受信し、Brazeはデフォルトでプッシュが有効なユーザーにのみプッシュを送信します。
これらの購読設定はステップごとに適用されるため、エントリオーディエンスには影響しません。したがって、この設定は各キャンバスステップを受信するためのユーザーの適格性を評価するために使用されます。

この構成では、ターゲットオーディエンスステップにオーディエンスを単一のチャネルに制限するフィルター(たとえば Foreground Push Enabled = True や Email Subscription = Opted-In)を含めないでください。
キャンバスのサイレント時間(メッセージが送信されない時間帯)を指定することもできます。送信設定でサイレント時間を有効にするをチェックします。次に、ユーザーのローカルタイムでのサイレント時間を選択し、メッセージを中止するか次の利用可能な時間に送信するかを選択します。
次の利用可能な時間に送信が選択されている場合、サイレント時間はメッセージを抑制し、サイレント時間外の次の利用可能な時間に送信します。たとえば、サイレント時間がユーザーのローカルタイムで午前11時30分から午後2時30分までの間にメッセージの送信を防ぐように設定されていて、ユーザーが午前11時35分にメッセージステップに入ったとします。この時間はサイレント時間内のため、メッセージはまだ送信されず、ユーザーはサイレント時間終了後の午後2時30分にメッセージステップを受信します。

ステップ2: キャンバスを作成する

Brazeキャンバステンプレートを使用して、キャンバス作成の時間を節約し、効率化しましょう!事前に作成されたテンプレートのライブラリを閲覧して、ユースケースに合ったものを見つけ、特定のニーズに合わせてカスタマイズできます。詳細については、キャンバステンプレートをご覧ください。
ステップ2.1: バリアントを追加する

バリアントを追加を選択し、キャンバスに新しいバリアントを追加します。バリアントは、ユーザーがたどるジャーニーを表し、複数のステップと分岐を含めることができます。
プラスボタンを選択すると、バリアントを追加できます。新しいバリアントを追加すると、ユーザーがバリアント間でどのように分配されるかを調整でき、異なるエンゲージメント戦略の効果を比較・分析できます。


デフォルトでは、キャンバスのバリアント割り当てはユーザーIDとキャンバスIDの決定論的ハッシュによって決定されます(ユーザーのランダムバケット番号ではありません)。つまり、バリアント分配の割合が変更されない限り、特定のユーザーは再エントリ時に常に同じバリアントに割り当てられます。起動後にバリアント分配を調整すると、再エントリ時にユーザーが別のバリアントに割り当てられる場合があります。
分配割合が変更されても割り当てを固定したい場合は、単一のキャンバスバリアントを使用し、オーディエンスパスステップでユーザーをルーティングします。ジャーニーの最初にユーザー更新ステップを使用してカスタム属性にランダムな数値を保存し、オーディエンスパスでその属性に基づいてフィルタリングします。
手順を展開
- ランダムな数値を保存するための数値カスタム属性を作成します。
lottery_numberやrandom_assignmentなど、見つけやすい名前を付けてください。ダッシュボードで、データ設定 > カスタム属性に移動します。 - 単一のキャンバスバリアントを使用します(または各バリアントに同じユーザー更新ステップを追加します)。ジャーニーの最初にユーザー更新ステップを追加します。このステップは、ユーザーがオーディエンスパスステップに到達する前にランダムな数値を生成・保存します。
- ユーザー更新ステップで、高度なJSONエディターを選択します。{% random %}タグを使用して数値を生成します。詳細については、ランダムな数値を含むメッセージを送信するをご覧ください。たとえば、
{% random 10 %}は0から9までの整数を返します。ステップ1のカスタム属性を、以下のようなJSONを使用して設定します:
{% if {{custom_attribute.${lottery_number}}} == blank %} {% capture lottery_number_str %}{% random 10 %}{% endcapture %} { "attributes": [ { "lottery_number": {{ lottery_number_str | plus: 0 }} } ] } {% endif %}
{% if %}ブロックは、属性が空白の場合にのみ数値を設定するため、ユーザーがキャンバスに再エントリしても同じ割り当てが維持されます。
- ユーザー更新ステップの後にオーディエンスパスステップを追加します。各オーディエンスグループで、バリアント分配の割合を使用する代わりに、カスタム属性に基づくフィルターを追加します。
たとえば、{% random 10 %}を使用した場合、あるグループはlottery_numberが4未満、別のグループは3より大きく7未満、3番目のグループは6より大きく10未満とすることができます。
ステップ2.2: キャンバスステップを追加する
コンポーネントサイドバーからコンポーネントをドラッグ&ドロップすることで、キャンバスワークフローにステップを追加できます。または、 プラスボタンを選択して、ポップオーバーメニューからコンポーネントを追加します。

ステップを追加していく際に、ズームレベルを切り替えて、詳細にフォーカスしたり、ユーザージャーニー全体を俯瞰したりできます。Shift + +でズームイン、Shift + -でズームアウトできます。


キャンバスには最大200のステップを追加できます。キャンバスが200ステップを超えると、読み込みの問題が発生する場合があります。
最大期間
キャンバスジャーニーのステップが増えるにつれて、最大期間はユーザーがこのキャンバスを完了するまでに要しうる最長の時間を示します。これは、最も長いパスの各バリアントについて、各ステップの遅延とトリガーウィンドウを合計して計算されます。たとえば、キャンバスに3日間の遅延を持つ遅延ステップとメッセージステップがある場合、キャンバスの最大期間は3日間になります。
ステップの編集
ユーザージャーニーのステップを編集したい場合は、キャンバスワークフローに応じた方法を確認してください!
キャンバスワークフローのどのステップも、コンポーネントを選択することで編集できます。たとえば、ワークフローの最初のステップである遅延コンポーネントを特定の日に編集したいとします。ステップを選択して設定を表示し、遅延を3月1日に調整します。これにより、3月1日にユーザーはキャンバスの次のステップに進みます。

また、アクションパスステップのアクション設定をすばやく編集・調整して、一定期間ユーザーを保持することもできます。これにより、この評価期間中のアクションに基づいて次のパスが優先されます。

キャンバスの軽量コンポーネントにより、シンプルな編集体験が実現され、キャンバスの細部の調整がより簡単になります。
キャンバス内のメッセージ
キャンバスコンポーネント内のメッセージを編集して、特定のステップが送信するメッセージを制御します。キャンバスは、メール、モバイルおよびWebプッシュメッセージ、そして他のシステムと連携するためのwebhookを送信できます。キャンペーンと同様に、特定のLiquidテンプレートを使用してメッセージをパーソナライズできます。

メッセージやリンクテンプレートにキャンバスコンポーネント名を含められることをご存知ですか?
campaign.${name} Liquidタグをキャンバスで使用すると、現在のキャンバスコンポーネント名を表示できます。
メッセージコンポーネントは、ユーザーに送信されるメッセージを管理します。メッセージングチャネルを選択し、配信設定を調整してキャンバスメッセージングを最適化できます。このコンポーネントの詳細については、メッセージをご覧ください。

キャンバスコンポーネントの設定が完了したら、完了を選択します。
contextオブジェクトは、キャンバス作成のエントリスケジュールステップで設定され、ユーザーをキャンバスにエントリさせるトリガーを示します。これらのプロパティは、APIトリガーキャンバスのエントリペイロードのプロパティにもアクセスできます。contextオブジェクトのサイズは最大50KBです。
キャンバスにエントリする際に作成されたこれらのプロパティを参照するには、次のLiquidを使用します: context.${property_name} 。イベントは、この方法で使用するにはカスタムイベントまたは購入イベントである必要があります。
たとえば、次のリクエストを考えてみましょう: "context" : {"product_name" : "shoes", "product_price" : 79.99}。このLiquid {{context.${product_name}}}を使用すると、メッセージに「shoes」という単語を追加できます。
イベントプロパティは、カスタムイベントと購入に対して設定したプロパティです。これらのevent_propertiesは、アクションベースの配信を使用するキャンペーンやキャンバスで使用できます。
キャンバスでは、カスタムイベントおよび購入イベントのプロパティは、アクションパスステップの後に続く任意のメッセージステップのLiquidで使用できます。これらのevent_propertiesを参照する際には、次のLiquidを使用します: {{event_properties.${property_name}}} 。メッセージコンポーネントでこの方法で使用するには、カスタムイベントまたは購入イベントである必要があります。
アクションパスステップの後の最初のメッセージステップでは、そのステップで参照されているイベントに関連するevent_propertiesを使用できます。このアクションパスステップとメッセージステップの間に、他のステップ(別のアクションパスやメッセージステップ以外)を配置できます。event_propertiesにアクセスできるのは、メッセージステップがアクションパスステップの「その他のユーザー」パス以外のパスにトレースバックできる場合のみです。
ステップ2.3: 接続を編集する
ステップ間の接続を移動するには、2つのコンポーネントを接続する矢印を選択し、別のコンポーネントを選択します。接続を削除するには、矢印を選択し、キャンバスコンポーザーのフッターにある接続をキャンセルを選択します。
単一のバリアントに同じオーディエンスと送信時間を持つ複数の分岐がある場合、Brazeはそれらの分岐間での均等な分割を保証しません。分配は最初に作成された分岐が優先される場合があります。均等な分割を行うには、各分岐にランダムバケット番号フィルターを使用します。詳細については、1つのバリアントを持つキャンバスで複数の分岐がある場合、オーディエンスと送信時間が同一だとどうなりますか?をご覧ください。
ステップ3: コントロールグループを追加する
プラスボタンを選択して新しいバリアントを追加することで、キャンバスにコントロールグループを追加できます。
Brazeは、コントロールグループに配置されたユーザーのコンバージョンを追跡しますが、メッセージは送信されません。正確なテストを維持するために、コンバージョンイベント選択画面に表示されるとおり、バリアントとコントロールグループのコンバージョン数をまったく同じ期間にわたって追跡します。
バリアント名ヘッダーをダブルクリックすることで、メッセージ間の配分を調整できます。
この例では、キャンバスを2つのバリアントに分割しています。バリアント1にはユーザーの70%が含まれています。2番目のバリアントは、残りの30%のユーザーを含むコントロールグループです。

BrazeAIでキャンバスバリアントを最適化する
複数のトップレベルバリアントを持つキャンバスでは、BrazeAITMで最適化をオンにすると、各バリアントに入るユーザーの割合が自動的に調整されます。BrazeAITMはバリアントのパフォーマンスを使用して、期待されるコンバージョン数を最大化します。
少なくとも2つのバリアントと1つのコンバージョンイベントを追加します。次に、バリアントの割合を選択してバリアント配分の編集を開き、BrazeAITMで最適化をオンにします。
最初のコンバージョン期限の後、BrazeAITMは12時間ごとにパフォーマンスをレビューし、最もコンバージョンを促進しているバリアントにより多くのユーザーをシフトさせます。最適化により決定的な勝者が特定されると、以降の対象ユーザーはすべてそのバリアントに入ります。
この最適化は、新しいユーザーが頻繁に入るキャンバスで最も効果的です。
ステップ4: 保存と起動
キャンバスの作成が完了したら、Launch キャンバス を選択してキャンバスを保存し起動します。キャンバスを起動すると、キャンバス Details ページでジャーニーの分析データを確認できるようになります。
下書きとしてキャンバスを保存し、後から作業を再開することもできます。

