カタログアイテムを日付範囲でフィルタリング
この例では、架空のチケットマーケットプレイスがカタログセレクションとLiquidの日付式を使用して、送信時点から今後7日以内に開催されるイベントのみを消費者にメールで送信する方法を示します。ローリングタイムフィルターを使用してセレクションを作成し、一致するカタログアイテムをキャンペーンまたはキャンバスメッセージでレンダリングします。
この例について
架空のチケットマーケットプレイスであるMovieCanonは、このパターンを使用して、メールキャンペーンに時間的に関連するコンサートやショーのみをリストすることを保証しています。
このパターンでは、2つのBraze機能を組み合わせて使用します。
timeフィールドフィルターを持つカタログセレクション。フィルターの値は、送信時にローリングタイムウィンドウを計算するLiquidスニペットです- メッセージ本文で一致するカタログ行をレンダリングする
{% catalog_selection_items %}Liquidタグ
考慮事項
- フィルターに使用する日時カラムには、文字列フィールドではなくカタログの
timeフィールドを作成してください。値は2026-06-20T19:30:00ZのようなISO 8601形式で保存します。サポートされている型については、サポートされているデータ型を参照してください。 beforeおよびafterオペレーターは厳密な比較を行います。境界のタイムスタンプと正確に一致するイベントは除外される場合があります。ウィンドウを送信時刻から開始する必要がある場合は、完全なタイムスタンプを使用してください。日付のみのYYYY-MM-DD値は、その日のUTC午前0時に変換されます。- セレクションフィルター内のLiquidは送信時に評価されます。
'now'変数はメッセージがレンダリングされるタイミング(通常はUTC)を反映します。結果のウィンドウがタイムゾーンをまたいで意図どおりに機能することを確認してください。 - カタログセレクションフィルターの値では、Connected Content、Content Blocks、カタログタグ、および
abort_messageはサポートされていません。許可されていないタグがフィルターに含まれている場合、セレクションはエラーを発生させずに結果を返しません。 - セレクションごとに最大10個のフィルターを追加でき、最大50個のアイテムを返すことができます。7日間のウィンドウを調整するには、
'now'に加算する秒数を変更します(604800= 7日 × 1日あたり86400秒)。 - カタログセレクションの結果配列はゼロインデックスです(
items[0]が最初のアイテムです)。 - フィルターのLiquid、メッセージのLiquid、および中止ロジックは、本番オーディエンスに送信する前に本番ワークスペース以外でテストしてください。
設定
この例では、live_events という名前のカタログに以下のフィールドがあることを前提としています。
| フィールド | タイプ | 値の例 |
|---|---|---|
id |
String | show-1042 |
event_name |
String | Summer Jazz Night |
event_date_time |
Time | 2026-06-20T19:30:00Z |
ticket_price |
Number | 45 |
city |
String | Austin |
venue |
String | Riverside Amphitheater |
同様のカタログがまだない場合は、カタログを作成し、イベントデータをアップロードまたは同期してください。
ステップ1:カタログセレクションを作成する
- データ設定 > カタログに移動し、
live_eventsカタログを選択します。 - セレクションタブを開き、セレクションを作成を選択します。
- セレクションに
seven_day_windowと名前を付け、「今後7日間に開催されるイベント」などのオプションの説明を追加します。 - 返すイベントの最大数として結果の上限を設定します(最大50件)。
- まだ保存しないでください。次のステップで日付フィルターを追加します。
ステップ2:上限フィルターを追加する
event_date_time フィールドにフィルターを追加します。
| 設定 | 値 |
|---|---|
| フィルターフィールド | event_date_time |
| 演算子 | before |
| 値 | Liquidスニペット |
フィルター値フィールドに、以下のLiquidスニペットを入力します。これは送信時刻から7日後のタイムスタンプを計算します。
{% assign seven_days = 'now' | date: '%s' | plus: 604800 %}{{ seven_days | date: "%Y-%m-%dT%H:%M:%SZ" }}
これにより、ウィンドウの上限が設定され、そのタイムスタンプより前のイベントのみが含まれます。
ステップ3:下限フィルターを追加する
同じフィールドに2つ目のフィルターを追加します。
| 設定 | 値 |
|---|---|
| フィルターフィールド | event_date_time |
| 演算子 | after |
| 値 | Liquidスニペット |
下限用の以下のLiquidスニペットを入力します。現在の送信時刻を使用するため、すでに開始されたイベントは除外されます。
{{ 'now' | date: "%Y-%m-%dT%H:%M:%SZ" }}
2つのフィルターを組み合わせることで、event_date_time が現在の送信時刻より後かつ送信時刻から7日以内のカタログアイテムが返されます。セレクションを作成を選択して保存します。
ステップ4:メッセージでセレクションを参照する
キャンペーンまたはキャンバスのメッセージで、セレクションからアイテムを取得するLiquidを挿入します。パーソナライゼーションを追加(カタログアイテム > セレクションを使用)を使用するか、タグを手動で貼り付けることができます。
{% catalog_selection_items live_events seven_day_window %}
Here are some upcoming events:
{{ items[0].event_name }} — ${{ items[0].ticket_price }}
{{ items[0].city }} · {{ items[0].venue }}
{{ items[1].event_name }} — ${{ items[1].ticket_price }}
{{ items[1].city }} · {{ items[1].venue }}
可変数の結果をレンダリングする必要がある場合は、ハードコードされた配列インデックスをループに置き換えてください。
ステップ5:空の結果を処理する
セレクションに一致するカタログアイテムがない場合、items 配列は空になり、タグ付きブロックは何もレンダリングしません。送信をスキップしたり、フォールバックコピーを表示したりするには、タグを条件文で囲みます。
{% catalog_selection_items live_events seven_day_window %}
{% if items.size == 0 %}
{% abort_message('Catalog selection returned 0 items') %}
{% endif %}
Here are some upcoming events:
{{ items[0].event_name }}
詳細については、メッセージの中止を参照してください。