カタログアイテムを日付範囲でフィルタリング
この例では、架空のチケットマーケットプレイスがカタログセレクションとLiquidの日付式を使用して、送信時点から今後7日以内に開催されるイベントのみを消費者にメールで送信する方法を示します。ローリングタイムフィルターを使用してセレクションを作成し、一致するカタログアイテムをキャンペーンまたはキャンバスメッセージでレンダリングします。
この例について
架空のチケットマーケットプレイスであるMovieCanonは、このパターンを使用して、メールキャンペーンに時間的に関連するコンサートやショーのみをリストします。
このパターンでは、2つのBraze機能を組み合わせて使用します。
- Liquidスニペットで送信時にローリングタイムウィンドウを計算する
timeフィールドフィルターを持つカタログセレクション - メッセージ本文で一致するカタログ行をレンダリングする
{% 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個のアイテムを返すことができます。
'now'に加算する秒数を変更することで、7日間のウィンドウを調整できます(604800= 7日 ×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日後のタイムスタンプを計算します。
1
{% 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スニペットを入力します。現在の送信時刻を使用するため、すでに開始されたイベントは除外されます。
1
{{ 'now' | date: "%Y-%m-%dT%H:%M:%SZ" }}
2つのフィルターを合わせると、event_date_timeが現在の送信時刻より後かつ送信時から7日以内のカタログアイテムが返されます。セレクションを作成を選択して保存します。
ステップ4: メッセージでセレクションを参照する
キャンペーンまたはキャンバスメッセージで、セレクションからアイテムを取得するLiquidを挿入します。パーソナライゼーションを追加(カタログアイテム > セレクションを使用)を使用するか、タグを手動で貼り付けることができます。
1
2
3
4
5
6
7
8
{% 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配列は空になり、タグ付きブロックは何もレンダリングしません。送信をスキップするか、フォールバックコピーを表示するには、タグを条件文で囲みます。
1
2
3
4
5
6
7
{% 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 }}
詳細については、メッセージの中止を参照してください。