The file write needs permission. Per the prompt's instruction to return the complete HTML directly, here it is — save it to `site/public/raw/260424_use-matches-in-shopifyql-to-filter-by-what-customers-did.html`: ```html 図解 : ShopifyQL の MATCHES で「顧客が何をしたか」で絞り込む
Analytics / ShopifyQL ・ Improvement

ShopifyQL の MATCHES
「顧客が誰か」だけでなく「何をしたか」でレポートを絞る

Analytics の ShopifyQL エディタに MATCHES が追加。WHERE 句で顧客の行動を条件にしてレポートを絞り込めるようになった。Customer Segmentation と同じ MATCHES の書き方がそのまま使えるので、セグメントとレポートの定義がブレない。

このページの構成
  1. そもそも何が変わるのか(30秒で理解)
  2. 構文図解 : MATCHES の書き方
  3. なぜ「定義がブレない」のか
  4. 通常の WHERE と MATCHES の違い
  5. 利用条件・制限
  6. 技術者が押さえるべき5つのポイント
  7. 業務に活かせる3つのユースケース
  8. 提案で使える1行サマリ

1そもそも何が変わるのか

これまで Analytics の ShopifyQL では、顧客を 「誰か」(属性) でしか絞れなかった。
今回 MATCHES が追加され、「何をしたか」(行動) を WHERE 句の条件にしてレポートを作れるようになった。

従来 : 「誰か」だけ

国・登録日・タグなど、顧客に紐づく属性でしか絞れなかった。「最近たくさん買った人」のような行動条件はレポートで直接書けなかった。

今回 : 「何をしたか」も

購入回数・数量・期間といった行動を WHERE 句で条件化。例「直近30日で2点以上購入した顧客」をそのまま絞り込める。

2構文図解 : MATCHES の書き方

記事に出てくる実例。「直近30日で2点以上の商品を購入した顧客」を抽出するクエリ:

FROM customers
SHOW customer_id, email
WHERE products_purchased MATCHES (quantity >= 2, date >= -30d)
GROUP BY customer_id

各行が何をしているか

役割
FROM customers顧客データを対象にする。
SHOW customer_id, email結果に表示する列を指定。
WHERE … MATCHES (…)ここが今回の主役。products_purchased(購入した商品という行動)に対して、カッコ内の条件にマッチする顧客だけに絞る。
quantity >= 2数量が2点以上。
date >= -30d実行時点から相対で過去30日以内。固定日付ではなく「直近30日」を表す。
GROUP BY customer_id顧客単位で集約。
ポイントは MATCHES (条件, 条件) という形。カッコ内の複数条件(数量・期間)が同じ購入行動に対してまとめて評価される。だから「2点以上」と「30日以内」が別々の人ではなく、同一の購買行動として成立した顧客が返る。

3なぜ「定義がブレない」のか

記事の肝は 「Customer Segmentation で使う MATCHES のロジックが、Analytics でもそのまま動く」という点。同じ書き方=同じ意味なので、セグメントとレポートの数字がズレない。

MATCHES 共通の構文・ロジック Customer Segmentation 行動でセグメントを作る (販促・配信の対象抽出) Analytics(ShopifyQL) 行動でレポートを絞る (件数・売上の集計) 同じ条件 → 同じ顧客集合 → セグメントとレポートが一致
セグメントの定義変更も、レポート側に同じ条件を書けば追従できる。「配信対象」と「集計対象」を1つの言語で管理できるのが効く。

4通常の WHERE と MATCHES の違い

項目通常の WHERE(属性フィルタ)WHERE … MATCHES(行動フィルタ)
絞る対象 誰か 国・登録日・タグなど顧客属性 何をしたか 購入数量・期間などの行動
書き方 列 演算子 値(例:country = 'JP') 行動フィールド MATCHES (条件, 条件)
複数条件 AND / OR で連結 カッコ内に並べ、同一行動に対してまとめて評価
期間指定 date >= -30d のような相対日付が使える
Segmentation との一貫性 あり 同じ構文がセグメントと共通

※ 属性フィルタと行動フィルタは併用できる(「日本の顧客」かつ「直近30日で2点以上購入」のような組み合わせ)。

5利用条件・制限

Analytics の ShopifyQL エディタ

利用場所は Analytics 内の ShopifyQL エディタ。WHERE 句で MATCHES を書いて使う。

構文・例・制限の詳細

対応フィールドの一覧や上限などの細かい制限事項は本記事に記載なし。Shopify ヘルプセンターに集約されているので、実装前にそちらで確認すること。

プランや地域の要件、MATCHES で使える行動フィールドの種類は記事に明示されていない(記載なし)。記事は「構文・例・制限はヘルプセンター参照」としているため、本番運用前にヘルプセンターの最新仕様で裏取りする前提で扱う。

6技術者が押さえるべき5つのポイント

WHERE

1. 使う場所は WHERE 句

MATCHES は WHERE 句で書く行動フィルタ。SHOW / GROUP BY などの既存 ShopifyQL 文法と組み合わせて使う。

2. 属性 + 行動を両取り

「誰か(属性)」の従来フィルタと「何をしたか(行動)」の MATCHES を同じクエリで併用できる。両軸で顧客を切れる。

3. 相対日付(-30d)

date >= -30d のように実行時点基準の相対指定ができる。固定日付の更新作業が不要で、レポートを「直近 N 日」のテンプレにできる。

4. Segmentation と同一構文

Customer Segmentation の MATCHES をそのまま Analytics に持ち込める。学習コストが共有され、セグメント定義の検証・移植が容易。

5. 詳細仕様はヘルプセンター頼み

対応する行動フィールドの一覧、ネスト可否、上限などの制限は記事に記載なし。本番クエリを組む前にヘルプセンターの構文・例・制限を確認し、想定どおりの件数が返るかをエディタで実測してから運用に載せること。

7業務に活かせる3つのユースケース

USE CASE 1

行動ベースの優良顧客リストを Analytics 内で直接抽出

課題
「直近30日で複数回買ったリピーター」を出したいのに、属性フィルタでは行動条件を書けず、CSV エクスポート後に Excel で集計していた。
打ち手
WHERE products_purchased MATCHES (quantity >= 2, date >= -30d) で行動条件を直接記述し、customer_id / email を抽出。
効果
優良顧客リストをレポートとしてその場で作成。リターゲ配信やロイヤルティ施策の対象抽出が即完結。
技術メモ
同じ条件を Customer Segmentation 側にも転記すれば、抽出と配信を同一定義で運用できる。
Segment Report
USE CASE 2

セグメントとレポートの「定義ズレ」を撲滅

課題
配信用セグメント(Customer Segmentation)と、効果検証レポート(Analytics)で条件の書き方が別物になり、対象人数や売上の数字が食い違っていた。
打ち手
セグメントで使っている MATCHES 条件を、そのまま ShopifyQL レポートの WHERE に貼って件数・売上を集計。
効果
「配信した人」と「集計した人」が同一定義になり、KPI の整合性が取れる。レビュー時の説明コストも削減。
技術メモ
条件は1か所をマスターにして両方へ展開。セグメント定義を更新したらレポートの WHERE も同期する運用ルールにする。
-30d
USE CASE 3

「期間×回数」のしきい値を変えるだけのテンプレレポート

課題
「直近7日で1点以上」「直近90日で5点以上」など、ロイヤルティ段階ごとにレポートを作り直すのが手間。
打ち手
MATCHES (quantity >= N, date >= -Xd) の N と X だけ差し替えるクエリをテンプレ化。相対日付なので日付の手修正は不要。
効果
新規〜ヘビーユーザーまでの顧客層別レポートを最小工数で量産。定例レポートの自動化下地になる。
技術メモ
使える行動フィールドや条件の上限はヘルプセンターで確認し、テンプレ化前に各しきい値で件数が想定どおり返るか検証する。

8提案で使える1行サマリ

「ShopifyQL に MATCHES が追加。顧客を『誰か』だけでなく『何をしたか』(行動)でレポート抽出できるようになり、
しかも Customer Segmentation と同じ構文なので、セグメントとレポートの定義がブレない。」