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
Analytics の ShopifyQL エディタに MATCHES が追加。WHERE 句で顧客の行動を条件にしてレポートを絞り込めるようになった。Customer Segmentation と同じ MATCHES の書き方がそのまま使えるので、セグメントとレポートの定義がブレない。
国・登録日・タグなど、顧客に紐づく属性でしか絞れなかった。「最近たくさん買った人」のような行動条件はレポートで直接書けなかった。
購入回数・数量・期間といった行動を WHERE 句で条件化。例「直近30日で2点以上購入した顧客」をそのまま絞り込める。
記事に出てくる実例。「直近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 | 顧客単位で集約。 |
記事の肝は 「Customer Segmentation で使う MATCHES のロジックが、Analytics でもそのまま動く」という点。同じ書き方=同じ意味なので、セグメントとレポートの数字がズレない。
| 項目 | 通常の WHERE(属性フィルタ) | WHERE … MATCHES(行動フィルタ) |
|---|---|---|
| 絞る対象 | 誰か 国・登録日・タグなど顧客属性 | 何をしたか 購入数量・期間などの行動 |
| 書き方 | 列 演算子 値(例:country = 'JP') | 行動フィールド MATCHES (条件, 条件) |
| 複数条件 | AND / OR で連結 | カッコ内に並べ、同一行動に対してまとめて評価 |
| 期間指定 | — | date >= -30d のような相対日付が使える |
| Segmentation との一貫性 | — | あり 同じ構文がセグメントと共通 |
※ 属性フィルタと行動フィルタは併用できる(「日本の顧客」かつ「直近30日で2点以上購入」のような組み合わせ)。
利用場所は Analytics 内の ShopifyQL エディタ。WHERE 句で MATCHES を書いて使う。
対応フィールドの一覧や上限などの細かい制限事項は本記事に記載なし。Shopify ヘルプセンターに集約されているので、実装前にそちらで確認すること。
MATCHES は WHERE 句で書く行動フィルタ。SHOW / GROUP BY などの既存 ShopifyQL 文法と組み合わせて使う。
「誰か(属性)」の従来フィルタと「何をしたか(行動)」の MATCHES を同じクエリで併用できる。両軸で顧客を切れる。
date >= -30d のように実行時点基準の相対指定ができる。固定日付の更新作業が不要で、レポートを「直近 N 日」のテンプレにできる。
Customer Segmentation の MATCHES をそのまま Analytics に持ち込める。学習コストが共有され、セグメント定義の検証・移植が容易。
対応する行動フィールドの一覧、ネスト可否、上限などの制限は記事に記載なし。本番クエリを組む前にヘルプセンターの構文・例・制限を確認し、想定どおりの件数が返るかをエディタで実測してから運用に載せること。