はじめに

「GA4を入れているのに、データを見るのはアクセス数くらい」

これは、あるEC事業者の方から聞いた言葉です。GA4は無料で高機能なアナリティクスツールですが、データを深掘りしようとすると途端にハードルが上がります。BigQueryにエクスポートすれば詳細な分析が可能になりますが、SQLを書けない人にとっては「宝の持ち腐れ」になりがちです。

この記事では、エンジニアではないEC経営者が、Claude Codeを使ってBigQueryのデータを自然言語で分析できるようになるまでの過程を、体験記風にまとめました。


最初の壁:「BigQueryって何?」

BigQueryとの出会い

GA4の管理画面では「直近28日間のアクティブユーザー数」や「イベント数」は見られます。しかし「先月購入した人のうち、2回目の購入をした人は何%か」といった分析は、標準レポートでは難しいのが現実です。

BigQueryはGoogleが提供するデータウェアハウスサービスです。GA4のデータをBigQueryにエクスポートすると、SQLというデータベース言語を使って自由に分析ができます。

最初に感じたハードル

  • SQLという言語を覚える必要がある
  • GA4のデータ構造(ネスト構造、event_params)が複雑
  • UNNEST という聞いたことのない構文が出てくる
  • エラーが出ても何が間違っているのかわからない

正直なところ「これは自分には無理だ」と思いました。


転機:Claude Codeとの出会い

Claude Codeは、ターミナル上で動くAIアシスタントです。自然言語で指示を出すと、コードの生成や実行を行ってくれます。

# Claude Codeのインストール
npm install -g @anthropic-ai/claude-code

# 起動
claude

起動したら、日本語でやりたいことを伝えるだけです。


体験1:初めてのSQL生成

やりたかったこと

「先月のセッション数と購入数を知りたい」

Claude Codeへの指示

GA4のBigQueryテーブル project.analytics_XXXXXX.events_* を使って、
先月のセッション数と購入数を集計するSQLを書いてください。

返ってきたSQL

SELECT
  COUNT(DISTINCT CONCAT(
    user_pseudo_id,
    CAST((SELECT value.int_value FROM UNNEST(event_params)
          WHERE key = 'ga_session_id') AS STRING)
  )) AS sessions,
  COUNTIF(event_name = 'purchase') AS purchases
FROM `project.analytics_XXXXXX.events_*`
WHERE _TABLE_SUFFIX BETWEEN
  FORMAT_DATE('%Y%m%d', DATE_TRUNC(
    DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), MONTH))
  AND FORMAT_DATE('%Y%m%d', LAST_DAY(
    DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH)));

UNNEST_TABLE_SUFFIX といった、自分では書けない構文が含まれていました。しかし、Claude Codeに「このSQLの各行の意味を教えてください」と聞くと、丁寧に解説してくれます。


体験2:質問を重ねて分析を深掘る

最初の結果を見て、次の疑問が湧きました。

「購入率が低い気がする。チャネル別に見たい」

このSQLを修正して、チャネル別のセッション数と購入率を出してください。
チャネルは collected_traffic_source の source と medium を使って。

Claude Codeはすぐに修正版のSQLを出してくれます。さらに「購入率が低いチャネルに対して、どんな改善策が考えられますか?」と聞くと、マーケティングの観点からアドバイスも返してきます。

このように対話を重ねることで、分析が自然と深まっていくのがClaude Codeの強みです。


体験3:定期的に見たい数字を「型」にする

慣れてくると、毎週見たい指標が決まってきます。

以下のKPIを毎週チェックしたいです。
一つのSQLにまとめてください:
- セッション数(全体とチャネル別Top5)
- 購入数と購入率
- 平均注文金額
- カート追加率
- 新規ユーザー率

Claude Codeが出してくれたSQLを保存しておけば、毎週BigQueryのコンソールにコピペして実行するだけで定点観測ができます。

-- 週次ダッシュボードSQL
WITH base AS (
  SELECT
    user_pseudo_id,
    event_name,
    event_date,
    (SELECT value.int_value FROM UNNEST(event_params)
     WHERE key = 'ga_session_id') AS session_id,
    CONCAT(
      IFNULL(collected_traffic_source.manual_source, '(direct)'),
      ' / ',
      IFNULL(collected_traffic_source.manual_medium, '(none)')
    ) AS channel,
    ecommerce.purchase_revenue AS revenue
  FROM `project.analytics_XXXXXX.events_*`
  WHERE _TABLE_SUFFIX BETWEEN
    FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY))
    AND FORMAT_DATE('%Y%m%d', CURRENT_DATE())
)
SELECT
  COUNT(DISTINCT CONCAT(
    user_pseudo_id, CAST(session_id AS STRING))
  ) AS total_sessions,
  COUNTIF(event_name = 'purchase') AS purchases,
  SAFE_DIVIDE(
    COUNTIF(event_name = 'purchase'),
    COUNT(DISTINCT CONCAT(
      user_pseudo_id, CAST(session_id AS STRING)))
  ) AS purchase_rate,
  ROUND(AVG(
    CASE WHEN event_name = 'purchase' AND revenue > 0
    THEN revenue END
  ), 0) AS avg_order_value,
  SAFE_DIVIDE(
    COUNTIF(event_name = 'add_to_cart'),
    COUNT(DISTINCT CONCAT(
      user_pseudo_id, CAST(session_id AS STRING)))
  ) AS cart_add_rate
FROM base;

自走できるようになるまでのステップ

振り返ると、以下のステップを踏みました。

ステップ1:まず聞いてみる(1日目)

「先月のセッション数を教えて」くらいのシンプルな質問から始めました。SQLの知識はゼロでも問題ありません。

ステップ2:結果を見て次の質問をする(1週目)

数字を見ると「なぜ?」が湧きます。その「なぜ?」をそのままClaude Codeに聞きます。

ステップ3:繰り返し使うSQLを保存する(2週目)

毎回同じ質問をするのは非効率なので、よく使うSQLをファイルに保存するようになりました。

ステップ4:SQLの意味が少しずつわかる(1ヶ月後)

Claude Codeが生成するSQLを何度も見ていると、WHEREGROUP BY の意味が自然とわかるようになります。

ステップ5:自分でSQLを微修正できるようになる(2ヶ月後)

「期間を変えたい」「カラムを追加したい」といった軽微な修正は、自分でできるようになりました。


非エンジニアがClaude Codeを使う際のコツ

1. テーブル名を必ず伝える

Claude Codeにはデフォルトでテーブル名がわかりません。最初に「project.dataset.events_* を使って」と明示してください。

2. 曖昧な表現を避ける

「売上を見たい」よりも「先月の日別売上合計を降順で出したい」の方が、期待通りのSQLが返ってきます。

3. エラーはそのまま貼り付ける

BigQueryでエラーが出たら、エラーメッセージをそのままClaude Codeに貼り付けてください。原因と修正案を教えてくれます。

4. 「なぜ?」をそのまま聞く

数字を見て感じた疑問は、そのまま自然言語で聞きましょう。分析の深掘りが自然に進みます。


注意点

データの解釈はAI任せにしない

Claude Codeはデータの集計と仮説の提示はしてくれますが、最終的なビジネス判断は人間が行う必要があります。自社の状況を一番理解しているのは経営者自身です。

BigQueryの利用料金に注意

BigQueryは従量課金制です。大きなテーブルに対して何度もクエリを実行すると、予想以上にコストがかかることがあります。

💡 補足

BigQueryの無料枠は毎月1TBのクエリ処理です。GA4のデータ量にもよりますが、中小ECサイトであれば無料枠内で収まることが多いです。


まとめ

非エンジニアでも、Claude Codeを使えばBigQueryのGA4データを自然言語で分析できるようになります。

大事なのは「完璧なSQLを書く」ことではなく、「知りたいことを言葉にする」ことです。Claude Codeはその言葉をSQLに変換し、データから答えを引き出す手助けをしてくれます。

「データを活用したいけど、何から始めればいいかわからない」という方は、まずClaude Codeに一つ質問を投げかけてみてください。