【BigQuery活用】AI経由のCV貢献を「後日CV」まで追跡する設計とハマりポイント

AI経由のCV貢献を「後日CV」まで追跡する設計とハマりポイント

前々編で記事マスタをBigQueryに連携する仕組みを作り、前編で「AIに引用されている記事の特定とLLMO最適化」における1つの案を出した。

この記事はその第3弾になる。

GA4標準のCVR計測では、AI経由ユーザーの本当の貢献度が見えない。理由はAI経由で初めてサイトに接触し、その日は買わずに帰った人が、後日指名検索で戻ってきてCVした場合、その「後日CV」はAI経由として記録されない。

そこで今回はBigQueryで user_pseudo_id ベースの横断追跡を組んで、★様のサイトで実データを取ってみた。結果として「AI経由のCV貢献はゼロ」という、残念な結果となったが、設計から検証までの一連の流れを共有する。 

この記事で分かること

  • なぜGA4標準のCVR計測ではAI経由の貢献を過小評価してしまうのか
  • ユーザー単位でAI接触からCVまでを追跡するSQL設計
  • 後日CV時のソースまで分類する集計ロジック
  • 実行結果が「異常値」っぽいときの検証フロー
  • 実データで見えた現実と、その解釈

なぜGA4のCVR計測では足りないのか

GA4の標準レポートで「セッション ソース別CVR」を見ると、AI経由のCVRが極端に低く出ることがある。

これはAIの責任ではなく、計測仕様の制約だ。GA4は基本的にセッション単位でCVを紐づける。あるユーザーがChatGPT経由で初訪問してフォームを覗き見だけして離脱し、3週間後に「ブランド名 申込」と指名検索で戻ってきてCVした場合、そのCVは「指名検索のCV」としてカウントされ、ChatGPTには1ポイントも入らない。

しかし実態として、そのユーザーをCVに導いたのはChatGPTでの最初の接触だったかもしれない。

この「上流効果」を可視化するためには、ユーザー単位での時系列追跡が必要になる。GA4ではできないが、BigQuery × user_pseudo_id ならできる。

設計のポイント

ユーザーごとに以下の情報を持つテーブルを作る。

  1. そのユーザーが初めてAI経由で来た時のセッション情報(AIソース、ランディングページ、訪問日時)
  2. そのユーザーが最終的にCVしたかどうか
  3. CVした場合、それは「同一セッション」「同日別セッション」「後日」のどれか
  4. 後日CVの場合、CVが発生したセッションの参照ソースは何だったか

この4点が揃えば、「ChatGPT経由ユーザーの後日CVは、直接アクセスが70%、オーガニック検索が20%、再度AI経由が10%」のような分析が走るようになる。

抽出する項目の全体構造

4ブロックで整理した。

A. ユーザー識別

  • ai_source(chatgpt.com / perplexity.ai / gemini.google.com / copilot.com)
  • landing_url(初回AI訪問のランディングページ)

B. CVのタイミング分類

  • total_cv:AI経由ユーザーの総CV数
  • cv_same_session:同一セッション内CV
  • cv_same_day:同日別セッションCV
  • cv_later_visit:後日CV
  • user_cvr_pct:ユーザーベースCVR
  • avg_days_to_cv:CVまでの平均日数

C. 後日CV時のソース内訳

  • later_cv_direct:直接アクセス
  • later_cv_organic:オーガニック検索
  • later_cv_ai_again:再度AI経由
  • later_cv_paid:広告
  • later_cv_social:SNS
  • later_cv_referral:他サイト
  • later_cv_email:メール
  • later_cv_other:その他

D. 流入規模

  • ai_users:AI経由で獲得したユニークユーザー数

SQL実装

実行してハマったポイント:NULLハンドリングのバグ

最初に書いたSQLでは、CV分類のCASE文にNULLハンドリングがなかった。これが原因で「全AI経由ユーザーがCVしている、全部later_visitのotherソース」というあり得ない結果が出てしまった。

LEFT JOINで「CVしていないユーザー」も結果に含まれるが、そのとき c.conversion_time はNULLになる。ところがNULLハンドリングを書いていないと、CASEはどの条件にもマッチせずELSE節に落ちる。結果として、CVしていないユーザーが全員「later_visit」「other」に分類されてしまった。

修正は単純で、CASE文の先頭に「conversion_time IS NULL なら NULL」というガード句を入れるだけ。

LEFT JOINの後のCASE文を書くときは、必ずNULLガードを入れる。これを忘れると「100%のCVRが出る」みたいな明らかな異常値で気づけるが、もう少し微妙な集計だと見落とすリスクがある。

結果の正当性を確認する流れ

SQLの修正後、今度は逆に「全AI経由ユーザーがCV 0」という結果になった。これも本当か疑う必要がある。「全部CVあり」と「全部CV無し」、どちらも極端な値だ。

確認のために2段階のクエリを走らせた。

Step 1:CVイベントが期間内に発火しているか

★様の場合、結果は「総CVイベント約500件、ユニークCVユーザー300人超」だった。つまりCVイベント自体は正常に発火している。

Step 2:AI経由ユーザーが「いつかは」CVしているか

タイミング条件を完全に外して、AI経由ユーザーとCVユーザーの重複を直接見るクエリを走らせる。

このクエリの結果が3パターンに分かれる。

パターンai_users_who_converted意味
A0AI経由ユーザーは本当に1人もCVしていない
B数件元SQLのタイミング判定で漏れている。AI訪問前のCVを拾う必要
C一定数元SQLの結合ロジックに問題があるので再調査

★様のケースでは結果はパターンA、つまり「ai_users_who_converted = 0」だった。

実データで見えた現実

整理すると、データから以下が判明した。

  • AI経由で初回流入したユニークユーザーは約60人
  • 期間内のCVユーザーは300人超
  • この2つのユーザー集合の重複はゼロ

要するに「cookieベースで追跡できる範囲では、AI経由はCVに1件も繋がっていない」ということ。

これはBigQueryの集計バグでも、SQLの不具合でもない。GA4の標準レポートでも同じ結果が出るはずだ。違いは、BigQueryで確認したことで「これは集計の問題ではなく、真にゼロだ」と確証が持てたことにある。

この結果をどう解釈すべきか

「AI経由は無意味だ」と結論づけるのは早い。理由は3つある。

1. AI流入の絶対量がまだ小さい

60人という数は、2ヶ月強の累計でこの規模だ。月次に均すと月30人前後。CVRを語る前に、流入量自体を増やす必要がある。

2. cookie追跡では本質的にAIの貢献が捕捉できない

AIで初めて自社を知ったユーザーが、

  • スマホでChatGPT → PCで指名検索してCV
  • AIで読んだ後、cookieを消してから来訪してCV
  • AIで知って、1ヶ月後に紙のチラシを見てから申込

このパターンは全てcookie追跡では切れる。「AI経由が直接CVに繋がらない」のは想定範囲内とも言える。

3. AIは「上流効果」を持つ可能性が残る

直接CVは生まなくても、

  • ブランド認知を作る
  • 検討材料として記事を読ませる
  • 指名検索を増やす

という間接効果はあり得る。これを測るには別の指標が必要になる。

次の打ち手の候補と仮説を立てる

A. AI経由ユーザーのファネル進行状況を見る

CVには至らなくても、フォーム到達(form_start)はしているのかを確認する。検討フェーズの深度が分かれば、「AI経由は無意味」と「AI経由は検討中」の判別ができる。

B. CVユーザーの流入元分布を分析する

300人超のCVユーザーがどこから来たのかを集計し、指名検索が増えているか観察する。AI経由流入の月次増加と指名検索CVの月次推移に相関があれば、間接効果になる?

ただし、AI検索経由の流入数はすべて計測できるわけではなく、 (direct) / (none) になることが多いため正確な計測は現状不可能である。AI検索経由の流入数推移と (direct) / (none) の流入数推移の比較・検証については、継続的な検証が必要になる。

C. cookie追跡以外の測定手段を追加する

申込フォームに「どこで知りましたか?」というアンケート項目を追加し、AI経由認知を直接ヒアリングする。または、AI経由ユーザー専用URLパラメータでブランド検索LPに誘導するなど、cookie切れに強い計測設計を組む。

D. AI流入量自体を増やすフェーズに切り替える

「測定できないほど少ない」のなら、CV議論より先に流入量を増やすべき、という判断。LLMO最適化に投資を振り切る方針も合理的。

まとめ

今回の検証で見えたのは、AI経由流入の「直接CV貢献」はcookieベース測定ではゼロだったということ。これは想像していたよりシビアな結果だが、同時に「BigQueryで踏み込んで確認したからこそ確信を持って言える」結果でもある。

GA4標準レポートだけ見ていたら「サンプル数が少ないから出ない」「集計バグかも」と結論を保留しがちな部分を、BigQueryで根拠を持って「真にゼロだ」と確認できた。これがBigQuery活用の意義だ。

そしてこの結果は、「AIに投資するな」ではなく「直接CV以外の方法でAI効果を測れ」というメッセージとして読むのが正しい。多くの企業がAI流入の効果測定で同じ問題に直面しているはずだ。

補足:実行時の注意点

collected_traffic_source カラムがGA4エクスポートに含まれているか事前に確認すること。古いGA4設定だと存在しない場合がある。

キーイベント名(サンプルSQL中の sample_cv_event)は実環境のイベント名に置換する。日本語イベント名でもそのまま指定できる。

期間設定は、後日CV分析の性質上、長めの期間を取ったほうが結果が見えやすい。1ヶ月だけだとサンプル数が少なすぎて傾向が出ない。

QUALIFY 句が使えないBigQuery環境では、ROW_NUMBER をサブクエリでフィルタする形に書き換える必要がある。