CUSTOMER SEGMENTS

セグメントクエリ言語の関数構文が2026-10で刷新

MATCHES演算子の導入とnamed dates廃止で、顧客セグメントがより柔軟に

Before (〜2026-07)shopify_email.opened()= trueproducts_purchased(quantity: 5) = trueAfter (2026-10〜)shopify_email.openedMATCHES ()products_purchasedMATCHES (quantity = 5)

GraphQL Admin API 2026-10 より、セグメントクエリ言語の関数呼び出し構文が変更されます。これまで = true / = false で表現していた条件が MATCHES / NOT MATCHES に置き換わり、パラメータ内でも比較演算子が使えるようになります。また 12_months_ago などの named dates が非推奨化されるため、既存クエリを持つ開発者・運用担当者は対応が必要です。

1Before / After 構文の全体像

関数構文 Before → After■ Before引数なし関数shopify_email.opened() = true引数なし・否定shopify_email.opened() = false引数あり関数products_purchased(quantity: 5) = truenamed dates12_months_ago90_days_ago / 30_days_ago / 7_days_ago■ After (2026-10〜)引数なし関数shopify_email.opened MATCHES ()引数なし・否定shopify_email.opened NOT MATCHES ()引数あり関数products_purchased MATCHES (quantity = 5)date offsets(代替)-12m-90d / -30d / -7d

2新構文で広がった表現力

新しい構文では、パラメータ内に =、!=、>、< などの演算子を直接記述できます。旧来の構文では「exact matchのみ」でしたが、以下のようなクエリが初めて可能になりました。

新たに記述できるようになったクエリ例数量が5以外products_purchasedMATCHES (quantity != 5)数量が5より大きいproducts_purchasedMATCHES (quantity > 5)任意の組み合わせproducts_purchasedMATCHES (quantity >= 3)※ 旧構文では上記3種はすべて記述不可だったパラメータ内演算子: = / != / > / < / >= / <= が利用可能に(元記事に明示された範囲)

3業務ユースケース

課題
メールを開封した顧客だけに絞ってリターゲティングキャンペーンを設定したいが、既存セグメントクエリが旧構文のまま保存されており、新APIバージョンへ移行すると動作しなくなる恐れがある。
打ち手
shopify_email.opened() = true を shopify_email.opened MATCHES () に一括置換し、API呼び出し時のバージョン指定を 2026-10 に更新する。
効果
移行後もセグメントが正常に機能し、メール開封済み顧客へのリターゲティング精度を維持できる。
技術メモ
否定条件(非開封)は NOT MATCHES () に置換。旧 = false との対応関係を事前に一覧化すると安全。
課題
「直近3か月で特定商品を5個以上購入した顧客」をセグメント化したいが、旧構文では数量の「以上」条件が表現できず、exact matchのみに限定されていた。
打ち手
新構文の products_purchased MATCHES (quantity >= 5) を使い、ハイバリュー顧客セグメントを新規作成する。
効果
VIP顧客の定義を「ちょうど5個」ではなく「5個以上」で正確に捉えられ、ロイヤルティプログラムのターゲット精度が向上する。
技術メモ
> や != など複数の演算子が利用可能になった点が新構文の最大の変化。元記事には利用可能な演算子の完全なリストは記載なし。詳細は公式ヘルプセンターを参照。
課題
セグメントクエリに 12_months_ago や 30_days_ago などの named dates を使っており、2026-10 移行後に非推奨警告が発生したり将来的にクエリが無効化されるリスクがある。
打ち手
named dates をすべて date offset 表記(例: 12_months_ago → -12m、30_days_ago → -30d)へ書き換える。
効果
将来の廃止タイミングを気にせず安定してセグメントを運用でき、定期的なセグメント見直しコストを削減できる。
技術メモ
元記事では 12_months_ago = -12m の対応が明示されている。90_days_ago / 30_days_ago / 7_days_ago についても同様に日数・月数のoffset値へ変換する。

4技術者向けチェックポイント

観点 詳細 対応優先度
対象APIバージョン GraphQL Admin API 2026-10 以降で新構文が適用される 確認必須
旧構文の扱い 元記事に旧構文の明示的な廃止時期の記載なし。ただし named dates は「deprecated」と明記されている 要確認
MATCHES 演算子 = true → MATCHES ()、= false → NOT MATCHES () に対応。引数なし関数では空括弧 () を維持する点に注意 移行必要
パラメータ内演算子 旧 (quantity: 5) 形式から (quantity = 5) 形式へ変更。コロン区切りから等号区切りに変わる 移行必要
named dates 廃止 12_months_ago / 90_days_ago / 30_days_ago / 7_days_ago が非推奨。既存の date offset(例: -12m)を使用する 要対応
Liquid / アプリ影響 元記事に Liquid テンプレートへの直接的な影響は記載なし。セグメントAPIを直接呼び出すカスタムアプリや自動化ワークフローの見直しが必要 確認推奨
移行チェックリスト(開発者向け)
  1. 使用中のセグメントクエリをすべて洗い出し、= true / = false を含むものを特定する
  2. 関数呼び出しを MATCHES () / NOT MATCHES () 形式に変換する
  3. パラメータのコロン区切り(quantity: 5)を等号区切り(quantity = 5)に変換する
  4. named dates(12_months_ago 等)を date offset(-12m 等)に変換する
  5. ステージング環境で API バージョン 2026-10 を指定してクエリの動作を検証する

GraphQL Admin API 2026-10 へのアップグレード前に、セグメントクエリの関数構文を MATCHES 形式・パラメータ等号記法・date offset へ一括移行することで、より柔軟な顧客セグメント定義と将来の廃止リスク回避を同時に実現できます。

Source: https://shopify.dev/changelog/updated-function-syntax-on-the-segment-query-language | 公開日: 2026年10月1日