ShopifyQL の MATCHES 「顧客が誰か」だけでなく「何をしたか」でレポートを絞る
原題: Use MATCHES in ShopifyQL to filter by what customers did
- Analytics
- ShopifyQL
- Customer Segmentation
- MATCHES
- 顧客行動分析
- レポート
- 改善
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 の書き方がそのまま使えるので、セグメントとレポートの定義がブレない。 このページの構成 そもそも何が変わるのか(30秒で理解) 構文図解 : MATCHES の書き方 なぜ「定義がブレない」のか 通常の WHERE と MATCHES の違い 利用条件・制限 技術者が押さえるべき5つのポイント 業務に活かせる3つのユースケース 提案で使える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 でもそのまま動く」 という点。同じ書き方=同じ意味なので、セグメントとレポートの数字がズレない。 セグメントの定義変更も、レポート側に同じ条件を書けば追従できる。 「配信対象」と「集計対象」を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つのポイント 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 側にも転記すれば、抽出と配信を同一定義で運用できる。 USE CASE 2 セグメントとレポートの「定義ズレ」を撲滅 課題 配信用セグメント(Customer Segmentation)と、効果検証レポート(Analytics)で条件の書き方が別物になり、対象人数や売上の数字が食い違っていた。 打ち手 セグメントで使っている MATCHES 条件を、そのまま ShopifyQL レポートの WHERE に貼って件数・売上を集計。 効果 「配信した人」と「集計した人」が同一定義になり、KPI の整合性が取れる。レビュー時の説明コストも削減。 技術メモ 条件は1か所をマスターにして両方へ展開。セグメント定義を更新したらレポートの WHERE も同期する運用ルールにする。 USE CASE 3 「期間×回数」のしきい値を変えるだけのテンプレレポート 課題 「直近7日で1点以上」「直近90日で5点以上」など、ロイヤルティ段階ごとにレポートを作り直すのが手間。 打ち手 MATCHES (quantity >= N, date >= -Xd) の N と X だけ差し替えるクエリをテンプレ化。相対日付なので日付の手修正は不要。 効果 新規〜ヘビーユーザーまでの顧客層別レポートを最小工数で量産。定例レポートの自動化下地になる。 技術メモ 使える行動フィールドや条件の上限はヘルプセンターで確認し、テンプレ化前に各しきい値で件数が想定どおり返るか検証する。 8 提案で使える1行サマリ 「ShopifyQL に MATCHES が追加。顧客を 『誰か』だけでなく『何をしたか』(行動) でレポート抽出できるようになり、 しかも Customer Segmentation と同じ構文 なので、セグメントとレポートの定義がブレない。」 source : changelog.shopify.com / use-matches-in-shopifyql-to-filter-by-what-customers-did published 2026-04-24