「AIにGA4のBigQuery用SQL作成を頼んでも、エラーばかりで使えない…。」と困った経験はありませんか?
実はその原因はAIではなく、GA4特有のデータ構造を正しく伝えきれていない「指示の仕方」にあります。
本記事では、AIが生成するSQLの精度を劇的に上げるための具体的な「6つの指示のコツ」を徹底解説します。コピペで使えるテンプレートも付いているので、実務にお役立てください!
AIが生成したGA4のSQL、エラーが出ていませんか?
ChatGPTやGeminiといった生成AIの登場により、データ分析の現場は大きく変わろうとしています。
たとえば、BigQueryにエクスポートしたGA4データをSQLで抽出する際も、AIにより生成できるようになっています。しかしながら、AIが生成したSQLがエラーで動かなかったり、意図しない結果を返してきたりすることが頻繁に起こります。
「結局、AIが書いたコードを全て確認するのに時間がかかり、自分で書いた方が早かった…」
もしそう感じているなら、それはAIの能力不足だけが原因ではありません。問題は、私たちからAIへの「指示の仕方」にもあります。
この記事を読めば、AIを優秀な分析アシスタントに変えるための具体的な「指示のコツ」がわかります。エラーとの格闘から解放され、データ分析の生産性を飛躍的に向上させましょう。
なぜAIへの指示は難しい?GA4データが持つ「1つの大きな壁」
AIへの指示を最適化する前に、まず「なぜGA4のSQL生成は難しいのか」という根本原因を理解しておく必要があります。
その最大の壁は、GA4エクスポートデータの「入れ子構造(ネスト)」です。シンプルな二次元の表形式とは異なり、BigQuery上のGA4データは、1つの行の中にさらにデータのかたまりが入っている、複雑な構造をしています。
- 1回のイベント(例:page_view)が行として記録される。
- そのイベントに付随する詳細情報(例:どのページを見たか)は、event_paramsという列の中に、複数の「キー」と「値」のペアとして格納されている。
この構造をAIに正しく認識させ、ネストされたデータを展開するUNNESTという関数を適切に使わせることが、正確なSQLを生成する上での最大のポイントになります。
SQL生成の精度を劇的に上げる「6つの指示のコツ」
AIに対して曖昧な指示を出すと、曖昧な結果しか返ってきません。以下の6つの要素をプロンプト(指示文)に盛り込むことで、AIは意図を正確に理解し、精度の高いSQLを生成できるようになります。
コツ1:ゴール(目的)
何を知りたいのか、最終的にどのようなアウトプットが欲しいのかを明確に言語化します。
- NGな指示:「サイトのアクセス状況を教えて」
- OKな指示:「日別のセッション数とアクティブユーザー数を一覧表にしたい」
コツ2:指標(メトリクス)
分析に用いる指標(メトリクス)は、具体的な計算式で定義します。指標によっては定義が異なる可能性があるため、AIが誤解しないように伝えることが重要です。
- NGな指示:「記事ごとのCVRを計算して」
- OKな指示:「記事ごとの購入コンバージョン率を算出したい。計算式は 購入イベント数 ÷ 記事の表示イベント数 とする」
コツ3:切り口(ディメンション)
どのような切り口でデータを見たいのかを、GA4のスキーマに沿って具体的に指定します。特にイベントパラメータを使用する場合は、キー名を正確に伝える必要があります。
- NGな指示:「ページごとに集計して」
- OKな指示:「event_nameがpage_viewのイベントについて、event_params.keyが'page_location'の値をページのURLとして集計してください」
コツ4:対象期間
いつからいつまでのデータを対象とするのかを明確に指示します。これにより、不要なデータ処理を防ぎ、コストとパフォーマンスを最適化できます。BigQueryのテーブル名末尾の日付(_TABLE_SUFFIX)を使って絞り込むよう指示するのが確実です。
- NGな指示:「先月のデータを集計して」
- OKな指示:「2025年6月1日から2025年6月30日までを対象期間とします。_TABLE_SUFFIXを使って日付を絞り込んでください」
コツ5:対象セグメント
特定の条件に合致するデータのみを分析したい場合は、そのセグメントの条件を具体的に伝えます。これはSQLのWHERE句に相当します。
- NGな指示:「スマホユーザーのデータが見たい」
- OKな指示:「device.categoryが'mobile'のユーザーのみを対象としてください」
コツ6:アウトプット形式
最終的にどのような形式で結果を出力してほしいのかを指定します。これにより、後続の作業(レポーティングや可視化)がスムーズになります。
- NGな指示:「結果を教えて」
- OKな指示:「date, session_count, active_usersという3つのカラムを持つテーブル形式で結果を出力してください」
実践!プロンプトで伝えるべき情報のBefore/After
それでは、上記の6つのコツを踏まえると、プロンプトがどのように変わるのかを見てみましょう。
【依頼内容】
- 先月1ヶ月間で、スマートフォンからアクセスしたユーザーについて
- ブログ記事のURL別に
- セッション数と資料請求のコンバージョン数を知りたい
Before:ありがちなプロンプト
先月、スマホユーザーが閲覧したブログ記事のセッション数と資料請求のCV数を、記事ごとに出してください。
このプロンプトでは、AIは「ブログ記事」「資料請求CV数」の定義がわからず、正確なSQLを生成することが困難です。
After:6つのコツを盛り込んだプロンプト
要件
以下の条件で、BigQueryからデータを抽出する標準SQLを作成してください。
1. ゴール
・ブログ記事URLごとのセッション数を一覧で算出する。
2. 指標
・セッション数
・資料請求数:event_nameが'request_document'であるイベントの数
3. 切り口
・ブログ記事のURL:page_viewイベントに含まれるevent_params.keyが'page_location'の値
4. 対象期間
・2025年6月1日から2025年6月30日まで
・_TABLE_SUFFIXで絞り込むこと
5. 対象セグメント
・device.categoryが'mobile'
・ブログ記事のURLに「/blog/」が含まれるもの
6. アウトプット形式
・カラム名:page_url, session_count, document_request_count
このプロンプトであれば、比較的精度の高いSQLを生成してくれると思います。
【コピペで使える】プロンプトテンプレート
上記の「After」のプロンプトを、ご自身の業務で使いやすいようにテンプレート化しました。
AIにGA4特有のスキーマを理解させるため、公式ドキュメントのURLを記載するのも1つの有効な手法かと思います。
#役割 あなたは優秀なSQLエンジニアです。 BigQueryにエクスポートされたGA4データに対して深い理解があります。 #スキーマ GA4のデータをBigQueryにエクスポートした際のスキーマ https://support.google.com/analytics/answer/7029846?hl=ja #要望 以下のデータ抽出依頼を満たすSQLを記述してください。 ## 1. 最終的なゴール(目的) * (このデータ分析で何を明らかにし、どのようなアクションに繋げたいかを具体的に記述) * 例:2025年6月に実施した「rainy_season_sale」キャンペーンが新規ユーザー獲得にどれだけ貢献したかを評価し、次回のセールでのチャネル予算配分を最適化したい。 ## 2. 必要な指標(メトリクス) * (何を数えたいか、測定したいかを箇条書きで記述) * 例: * 新規ユーザー数 * セッション数 * コンバージョン数(イベント名:`purchase`) * 売上合計(`ecommerce.purchase_revenue`) * ユーザーあたりの平均売上 ## 3. 必要な切り口(ディメンション) * (上記の指標を、どのような軸で分類したいかを箇条書きで記述) * 例: * 日付 (`event_date`) * 流入チャネル (`source` / `medium`) * デバイスカテゴリ (`device.category`) ## 4. 対象期間 * (データを集計する開始日と終了日を正確に記述) * 例:2025年6月1日 ~ 2025年6月30日 ## 5. 対象セグメント(絞り込み条件) * (どのようなユーザー、セッション、イベントに限定するかを具体的に記述) * 例: * **ユーザーの条件:** `first_visit` イベントが対象期間内に発生した新規ユーザー * **セッションの条件:** `campaign` パラメータが 'rainy_season_sale' であるセッション * 上記のユーザー条件とセッション条件を **両方** 満たすデータを対象としたい。 ## 6. アウトプットの形式 * (最終的に欲しいテーブルのカラム構成や、カラム名を指定) * 例: * 以下のカラム構成にしてほしい。 * `report_date` (日付) * `source_medium` (流入チャネル) * `device.category` (デバイス) * `new_user_count` (新規ユーザー数) * `session_count` (セッション数) * `purchase_count` (購入件数) * `total_revenue` (売上合計)
まとめ
本記事では、GA4やBigQueryのSQLをAIに正確に生成させるための6つの指示のコツと、すぐに使えるプロンプトテンプレートをご紹介しました。
重要なのは、AIに「考えさせる」のではなく、GA4データの構造を人間側が理解したうえで、AIが迷わず処理できるよう具体的かつ正確に「指示する」ことです。このコツさえ掴めば、これまでエラーと格闘していた時間を、インサイトの発見や次のアクションの検討といった、本質的な業務に使えるようになります。
テンプレートを活用し、AIとの対話を通じて、分析業務の効率化を実現してください!