Summary
Brazeのカタログ機能は、商品・店舗・記事などのユーザー属性以外のデータをBraze内に保存し、Liquidでメールやプッシュ通知に動的に差し込める機能です。管理画面やCSVでの作成・更新、固定IDを使った差し込みであればマーケターだけでも始められます。一方、DWHからの自動同期(CDI)やAPI連携、在庫復活・値下げ通知(カタログトリガー)では、既存の実装状況に応じて技術担当者との連携が必要です。本記事では、カタログの基本、作成前に決めておきたいこと、CSVからの作成4ステップ、Liquidでの差し込み、配信前の確認ポイントまでを設定の流れに沿って解説します。
こんにちは、パワー・インタラクティブの奥村です。Braze運用の現場から実践的なノウハウをお届けするハウツーシリーズ。今回は、商品情報や店舗情報などの非ユーザーデータをBraze内で管理し、メッセージに動的に差し込める「カタログ機能」について解説します。
Brazeのカタログ機能は、管理画面での作成・編集やCSVによる一括登録、基本的なメッセージへの差し込みであれば、マーケターでも始めやすい機能です。一方、外部システムとの自動連携や在庫復活・値下げ通知など、使い方によってはデータ担当者やエンジニアの協力が必要です。
この記事では、カタログの基本概念から、作成前に決めておきたいこと、CSVを使った作成方法、Liquidでの差し込み、運用時の注意点まで、実際の設定の流れに沿って解説します。
INDEX
こんな課題はありませんか?
Brazeでキャンペーンを運用する際、現場で以下のようなお悩みに直面することはありませんか?
- 新商品やおすすめ商品を案内するたびに、商品名・価格・画像URLなどをメッセージへ手作業で転記している
- 商品情報を更新するたびにエンジニアへ依頼する必要があり、タイムリーに施策を実行しにくい
- 価格変更や在庫更新の反映漏れによる、古い情報の配信や入力ミスを防ぎたい
これらの「商品情報の管理・更新にかかる手間」や「手作業によるミス」を減らし、商品やコンテンツの情報をメッセージに活用しやすくするのが、今回ご紹介するカタログ機能です。
Brazeのカタログ機能とは?何ができる?
Brazeのカタログ機能とは、商品情報、店舗情報、イベント情報、記事・動画などのコンテンツ情報といったユーザー属性以外のデータをBraze内に保存し、Liquidを使ってキャンペーンやキャンバスのメッセージに呼び出せる機能です。
たとえば、商品名、価格、画像URL、カテゴリなどをカタログに登録しておけば、商品IDをもとに必要な情報を取得でき、メッセージ作成のたびに手入力する必要がありません。
カタログには、主に次の3つの特長があります。
- 商品・店舗・コンテンツなどの情報をBraze内で一元管理できる
- ユーザー属性やイベントプロパティのIDと組み合わせ、ユーザーごとに異なる情報を差し込める
- 管理画面やCSVでの更新に加え、DWHなどから定期的にデータを同期できるクラウドデータ取り込み(CDI)やAPI経由での自動連携にも対応できる
カタログ機能の主なユースケース
カタログに格納するデータは自社の用途に合わせて設計できます。代表的には次のような使い方があります。
- Eコマース・小売:商品名、価格、在庫、商品URL、画像URLなどを管理し、商品情報をメッセージへ差し込む
- メディア・エンターテインメント:記事、動画、音楽などのタイトル、ジャンル、公開日、サムネイルを管理する
- 旅行・ホスピタリティ:ホテル、プラン、観光地、レストランなどの情報を管理する
- 店舗ビジネス:店舗名、住所、営業時間、位置情報などを管理する
Brazeのカタログはマーケターだけで使える?
追加開発が必要かどうかは、カタログで何をしたいかによって異なります。基本的な作成・編集や固定IDを使った差し込みは管理画面を中心に設定できますが、自動連携やユーザーごとのデータ活用では、既存の実装状況に応じて技術担当者との連携が必要です。
◎:基本的に追加開発不要 △:既存のデータ連携・実装状況による ×:追加開発が必要
| 利用パターン | 追加開発なしでできる? | 補足 |
|---|---|---|
| カタログを作成・編集する(管理画面/CSV) | ◎ | 管理画面での作成・編集やCSVによる一括登録・更新が可能 |
| 固定IDのアイテムをメッセージに表示 | ◎ | カタログのidを指定してLiquidで呼び出す |
| ユーザーごとに異なるアイテムを表示する | △ | 商品IDなどがすでにBrazeへ連携されていれば利用可能。未連携の場合はデータ連携が必要 |
| DWHからカタログを自動同期する(CDI) | △ | DWHやBraze側の既存環境によっては設定中心で対応できるが、データ担当者との連携が必要 |
| 外部システムからAPI経由でカタログを更新する | × | 外部システムからAPI経由でカタログを更新するための実装が必要 |
| 在庫復活・値下げをきっかけに通知する(カタログトリガー) | △ | 必要な商品IDや購読情報が未連携の場合は追加対応が必要 |
カタログとコネクテッドコンテンツの違い
外部データをメッセージに利用する方法として、Brazeにはコネクテッドコンテンツもあります。カタログはBraze内に保持したデータを参照するのに対し、コネクテッドコンテンツはメッセージ生成時に外部APIから情報を取得します。
| 比較項目 | カタログ | コネクテッドコンテンツ |
|---|---|---|
| データの場所 | Braze内 | 外部システム |
| 取得タイミング | 事前登録・同期 | メッセージ生成時 |
| 主用途 | 商品・店舗・記事など | 外部APIの最新情報 |
| 更新 | CSV・CDI・API | 外部システム側で更新 |
| 向いているケース | 繰り返し参照 | 配信時に外部取得 |
どちらを使えば良い?
商品マスタや店舗情報など、Brazeの施策で繰り返し参照する情報にはカタログが向いています。一方、メッセージ生成時に外部システムから最新情報を取得したい場合は、コネクテッドコンテンツを検討します。
カタログを作る前に決めておきたいこと
カタログを作る前に、何を1アイテムとして管理し、どのIDでBraze内外のデータをつなぐかを整理しておくと、後からの作り直しを防ぎやすくなります。
| 決めること | 例 | なぜ必要? |
|---|---|---|
| 1アイテムの単位 | 商品・店舗・記事 | 1アイテムの粒度を決める |
| id | SKU・商品ID | 他データと紐付ける |
| 保持する項目 | 価格・画像URL・カテゴリ | 配信で使う情報を整理 |
| データ管理元 | EC・基幹・DWH | 基準となるデータを決める |
| 更新頻度 | 月次・日次・随時 | 必要なデータ鮮度を決める |
| 更新方法 | 管理画面・CSV・CDI・API経由 | 運用方法や必要な連携を整理する |
カタログ設計で重要なidの決め方
特に重要なのがidです。カタログのidと、ユーザープロファイルやイベントプロパティなどからメッセージ側で渡す商品IDが一致していないと、対象の商品情報を取得できません。
ECや基幹システムですでに使っている商品ID・SKUなど、継続して利用できる値を採用するのがおすすめです。
CSVからカタログを作る4ステップ
BrazeではCSVアップロードのほか、管理画面上でフィールドとアイテムを追加してカタログを作成することもできます。本記事では、まとまった商品・コンテンツデータを登録する際に使いやすいCSVアップロードを中心に説明します。
ステップ1:CSVファイルを準備する
ExcelやGoogleスプレッドシートなどでデータを整理し、UTF-8のCSV形式で保存します。CSV作成時に確認したい主な仕様は以下です。(2026年9月現在)
| 項目 | 主な仕様 |
|---|---|
| id列 | 1列目に必須 |
| idの値 | 各アイテムで一意 |
| ヘッダー名 | 英数字・-・_(最大250文字) |
| フィールド数 | 最大1,000フィールド |
| 文字列 | 最大5,000文字 |
| ファイルサイズ | Freeプラン:500MB / Proプラン:単一CSV最大2GB |
たとえば、アパレル商品であれば、次のような設計が考えられます。
後述する在庫復活通知や値下げ通知も検討している場合は、将来利用するフィールドまで見据えてスキーマを設計しておくと、後から作り直すリスクを減らせます。
ステップ2:Brazeでカタログを作成し、データ型を設定する
CSVの準備ができたら、Brazeの管理画面から「データ設定」>「カタログ」を開き、「新しいカタログを作成」からCSVをアップロードします。
アップロード後は、各カラムにデータ型を設定します。(図表7参照)
CSVで利用できる主なデータ型は次の通りです。
| データ型 | 例 |
|---|---|
| 文字列 | 商品名・画像URL |
| 数値 | 価格・在庫数 |
| ブール値 | セールフラグ |
| 時刻 | 公開日・終了日時 |
| 地理的位置情報 | 店舗座標 |
JSONオブジェクトと文字列配列もカタログで利用できますが、CSVでは作成・更新できず、APIまたはCDI経由で扱います。
ここで注意したいのが、設定したデータ型はカタログ作成後に変更できないことです。
たとえば価格を文字列で作成した後に、値下げ判定のため数値へ変更したくなっても、そのまま型だけを変更することはできません。価格や在庫数など、数値比較に使う可能性がある項目は最初から数値にしておきましょう。
ステップ3:カタログ名を設定して作成する
カタログ名と必要に応じて説明を設定します。カタログ名は一意で、英数字・ハイフン・アンダースコアを使用します。作成後はカタログ名を変更できないため、命名ルールを決めてから作成するのがおすすめです。
設定が終わったら「カタログを作成」を実行します。BrazeがCSVを確認し、問題がなければカタログが作成されます。エラーが表示された場合は、idの重複、ヘッダー、データ型、文字数などを確認してCSVを修正します。
ステップ4:運用に合わせて更新方法を決める
カタログ作成後は、新商品の追加、価格変更、在庫更新などに応じてデータを更新します。更新頻度によって適した方法が異なります。
| 更新方法 | 向いているケース | 更新頻度 | 技術担当との連携 |
|---|---|---|---|
| 管理画面 | 数件だけ修正 | 低 | 不要 |
| CSV | 一括登録・更新 | 低〜中 | 不要※ |
| CDI | DWHから定期同期 | 中〜高 | 初期設定時に連携 |
| API経由 | 外部DBと自動連携 | 高 | 必要 |
※CSVの作成・アップロード自体に技術担当者との連携は必要ありません。ただし、元データの抽出や加工をマーケター側で行えない場合は、技術担当者の協力が必要になることがあります。
まず検証する段階ではCSVや管理画面から始め、更新頻度が高くなった段階でCDIやAPI経由での連携を検討する進め方も現実的です。
メッセージにカタログデータを挿入する方法
カタログを作成したら、メール、プッシュ通知、アプリ内メッセージ、コンテンツカードなど、Liquidを利用できるメッセージに情報を差し込めます。
管理画面からLiquidを生成する
Liquidをすべて手入力する必要はありません。メッセージ作成画面の「パーソナライゼーション」からカタログアイテムを選ぶと、必要なLiquidを生成できます。
- メッセージエディタで「個人用設定を追加」を開く
- パーソナライゼーションタイプで「カタログアイテム」を選択する
- 対象のカタログを選択する
- 呼び出したいアイテムIDを指定する
- 表示したいフィールドを選択する
- 生成されたLiquidをメッセージ内に挿入する
たとえば、products_catalogからTSHIRT-001の商品名と価格を取得する場合は、次のように記述できます。
【Liquid例】
{% catalog_items products_catalog TSHIRT-001 %}
新着の{{ items[0].product_name }}が登場!価格は¥{{ items[0].price }}です。
カタログ内のデータが「product_name=ロゴグラフィックTシャツ」「price=2980」であれば、実際のメッセージでは次のように表示されます。
新着のロゴグラフィックTシャツが登場!価格は¥2980です。
複数の商品をまとめて呼び出す
catalog_itemsタグには複数のアイテムIDを指定できます。管理画面の「個人用設定を追加」からは、一度に最大3つのカタログアイテムを選択できます。さらに追加する場合は、再度「個人用設定を追加」から設定します。
取得したアイテムはitems[0]、items[1]のように順番に参照できるため、複数の商品名や価格を1つのメッセージ内に並べることも可能です。
【Liquid例】
{% catalog_items products_catalog TSHIRT-001 TSHIRT-002 %}
{{ items[0].product_name }} ¥{{ items[0].price }}
{{ items[1].product_name }} ¥{{ items[1].price }}
ユーザーごとに異なる商品を表示するには?
固定IDだけでなく、カスタム属性やイベントプロパティなどに保存されているIDを使って、ユーザーごとに異なる商品を呼び出すこともできます。
たとえばカスタム属性wishlistに商品IDが入っている場合は、変数を作成してカタログアイテムに渡します。
【Liquid例】
{% assign wishlist = {{custom_attribute.${wishlist}}} %}
{% catalog_items products_catalog {{ wishlist[0] }} %}
{{ items[0].product_name }}をチェックしてみませんか?
この仕組みを使う場合は、カスタム属性やイベント側のIDとカタログのidが同じ体系になっていることが前提です。
カタログアイテムとカタログセレクションの違い
ここまで紹介したカタログアイテムは、指定したidのアイテムを取得する方法です。一方、カテゴリや価格帯、位置情報などの条件からアイテムを絞り込みたい場合は、カタログセレクションを利用します。
カタログセレクションの作成方法やフィルター・並び替えの設定、Liquidでの呼び出し方については、別のハウツー記事で詳しく解説します。
配信前に確認したい3つのポイント
カタログを使ったメッセージは、Liquidの記述が正しくても、データの状態によって空欄になることがあります。本番配信前に次の3点を確認しておくと安心です。
ポイント1:存在しないIDを想定し、フォールバックまで確認する
指定したidがカタログ内に存在しない場合、Brazeは空のitems配列を返します。そのまま{{ items[0].product_name }}などを表示すると、商品名だけが空欄になる可能性があります。
そのため、動的IDを使う場合はフォールバックを用意し、存在するID・存在しないIDの両方でプレビューやテスト配信を行います。
【Liquid例】
{% catalog_items products_catalog {{custom_attribute.${favorite_product_id}}} %}
{% if items.size > 0 %}
{{ items[0].product_name }}をチェックしてみませんか?
{% else %}
今週のおすすめ商品をチェックしてみませんか?
{% endif %}
ポイント2:HTMLメールの画像URLでは不要な改行・空白に注意する
HTMLメールなどでカタログ内の画像URLを使う場合、catalog_itemsタグと画像URLを出力するLiquidの間に余分な空白や改行があると、画像URLが正しく解決されない場合があります。画像フィールドで使う場合は、タグとURL出力を連続させて記述します。
ポイント3:更新担当と更新ルールを決めておく
カタログを継続して運用する場合は、更新担当者、更新対象、更新後の確認方法、エラー時の対応などを決めておきます。価格や在庫など配信内容に直接影響する項目は、更新後の確認担当まで明確にしておくと安心です。
応用機能:在庫復活・値下げをきっかけに配信するカタログトリガー
カタログトリガーを使うと、在庫が0から在庫ありに変わった場合の再入荷通知や、価格が設定した条件を満たした場合の値下げ通知を配信できます。対象となる在庫数や価格のフィールドは数値で設計します。
ただし、カタログを作成するだけで自動的に配信できるわけではありません。ユーザーがどの商品を購読しているかをBrazeへ伝える商品IDなどが必要なため、必要なデータがまだ送信されていない場合は、エンジニアやデータ担当者との連携が必要です。
まとめ:まずは小さく始め、運用に合わせて自動化する
Brazeのカタログ機能を使うと、商品、店舗、コンテンツなどの情報をBraze内で管理し、Liquidを使ってメッセージに動的に差し込めます。
まずは管理画面やCSVでカタログを作り、固定IDを使った差し込みから試してみるのがおすすめです。運用が広がってきたら、更新頻度や施策に合わせてCDI、API経由での連携、カタログトリガーなどの活用を検討するとよいでしょう。
よくある質問
Brazeのカタログ機能とは?
商品・店舗・記事などのユーザー属性以外のデータをBraze内に保存し、Liquidを使ってメールやプッシュ通知などへ動的に差し込む機能です。
Brazeのカタログはマーケターだけで始められますか?
基本的なカタログの作成・編集、CSV更新、固定IDを使った差し込みであれば、管理画面を中心に始められます。自動同期や動的ID連携では、既存の実装状況によって技術担当者との連携が必要です。
カタログはCSVで更新できますか?
できます。まとまったデータの一括登録・更新にはCSVが利用できます。更新頻度が高くなった場合は、CDIやAPIによる連携も検討できます。
DWHからカタログへデータを同期できますか?
CDIを利用することで、DWHなどからカタログへ定期的にデータを同期できます。
外部システムからAPIでカタログを更新できますか?
できます。ただし、外部システムからAPI経由で更新するための実装が必要です。
カタログのデータ型は後から変更できますか?
できません。価格や在庫数など、数値比較に使う可能性がある項目は、作成前にデータ型を確認しておきましょう。
カタログ名は後から変更できますか?
できません。カタログ名は作成前に命名ルールを決めておくことをおすすめします。
複数の商品を1つのメッセージに表示できますか?
できます。catalog_itemsタグに複数のアイテムIDを指定し、items[0]、items[1]のように取得結果を参照します。
ユーザーごとに異なる商品を表示できますか?
できます。カスタム属性やイベントプロパティなどに商品IDを保存し、そのIDを使って対象のカタログアイテムを呼び出します。
Liquidを書いたのに商品名や価格が表示されません。何を確認すればよいですか?
まず、Liquidで指定したidがカタログ内に存在するかを確認します。動的IDを利用している場合は、カスタム属性やイベントプロパティの商品IDとカタログのidが一致しているかも確認してください。
在庫復活や値下げをきっかけに通知できますか?
カタログトリガーを利用できます。ただし、ユーザーがどの商品を購読しているかをBrazeへ伝えるデータも必要になるため、既存の実装状況によっては追加対応が必要です。
参考文献・出典
- Braze公式ドキュメント「カタログ」https://www.braze.com/docs/ja/user_guide/data/activation/catalogs
Brazeの導入・活用、カタログの設計やデータ連携の進め方についてご相談ください。商品情報の管理・更新にかかる手間や、パーソナライズ配信の実現を支援します。
Braze活用支援サービスを見る