and,a株式会社 デジタルマーケティングエンジニア 佐藤洋太
こんにちは!昨今巷で話題沸騰中のOpenAIが提供するChatGPTを実際に触って色々と試してみたので所感などをまとめようと思います。
ChatGPTとは?

ざっくりとした説明ですが、高機能なチャット型AIで、普段私たちが使う言葉で問いかけることによって回答や画像、はたまたコードまで返してくれる高度なAIです。
実際に使ってみましたがまるで人間のような受け答えです。ちなみに日本語も使えます。
サイト:https://openai.com/blog/chatgpt/
GA4で使えるか
ネットの情報や記事を見ると様々な情報が出ており、Excelで関数を組むなどの例がありました。
しかし、GA4 QuickではGoogle Analaytics + Chat GPTの切り口からいくつかの角度でアプローチをしたいと思います!
ChatGPT vs Google Tag Manager(GTM)
早速質問してみましょう!!
質問:
GoogleTagManagerでGoogle Analyticsの計測を行うにはどうすればいいですか
回答:
Google Tag Manager (GTM)を使用すると、Google Analytics(GA)の計測を簡単に行うことができます。以下のステップに従ってください:
ChatGPT
- GTMアカウントを作成またはログインする
- 新しいタグを作成し、Google Analyticsのタグタイプを選択する
- GAアカウントからトラッキングIDをコピーし、GTMタグに貼り付ける
- GTMタグをサイトに埋め込む(GTMコードをサイトのHEADタグ内に貼り付ける)
- GTMを使用してタグを管理し、GAのトラッキング設定を行います。
- これで、GAでサイトのトラフィックやユーザー行動などを追跡することができます。

お?Googleの公式の資料のような回答ですね。。。具体性をあげてみましょう。
質問:
ユーザーが電話ボタンをクリックした際にGoogleAnalyticsのイベントの計測をGoogleTagManagerで行うにはどうすればいいですか?
回答:
Google Tag ManagerでGoogle Analyticsのイベントの計測を行うには、次の手順を行います:
ChatGPT
- Google Tag Managerを使用するアカウントを作成します。
- Google AnalyticsアカウントとGoogle Tag Managerアカウントをリンクします。
- Google Tag Managerにトラッキングタグを作成します。
- トラッキングタグにイベント計測の設定を追加します。
- 電話ボタンをクリックした際にGoogle Tag Managerのタグが実行されるようにJavaScriptコードを追加します。
- 詳細な手順については、Google Tag Managerのドキュメンテーションを参照してください。

おおおおお!!!大体あってる!!AIに手順を説明してもらえる事に感動!
具体性をあげて質問するのが鍵のようですね!
質問:
GoogleAnalayticsのG-NMGXZVVKQWのアカウントでスクロール率を計測したいです。Google Tag Managerでの実装方法を教えてください。
回答:
Google AnalyticsのトラッキングコードをGoogle Tag Managerに実装することで、スクロール率の計測が可能です。以下の手順をご参照ください。
- Google Tag Managerアカウントにログインします。
- タグを作成します。「新規タグ」を選択し、「Google Analytics」タグタイプを選択します。
- トラッキングID「G-NMGXZVVKQW」を入力します。
- トラッキングオプションの「スクロール率」を有効にします。
- 「トリガー」を作成します。「新規トリガー」を選択し、「ページビュー」イベントを選択します。
- 「保存」と「パブリッシュ」を行います。
これで、Google Analyticsアカウント「G-NMGXZVVKQW」でスクロール率が計測されるようになります。
ChatGPT

素晴らしい!!細かい設定値は抜けてますが十分にわかる説明です。
これは新人さんの教育に大活躍しそうですね!!
ChatGPT vs BigQuery SQL
先ほどはデータを取得する側の質問でしたが、今度はGAに溜まったデータを取得する方法を尋ねてみます。
質問:
FirebaseのデータをBigQueryで取得したい。過去1ヶ月間のセッションを日本時間の日付毎に数えたい。
※調べたところ本記事執筆時点でChatGPTがGA4をサポートしていないため、スキーマが同じであるFirebaseとして聞いています。
回答:
FirebaseからBigQueryにデータをエクスポートすることができます。以下の手順に従って、Firebase AnalyticsデータをBigQueryにエクスポートしてください。
ChatGPT
- Firebaseプロジェクト内で、BigQueryを有効にする。
- Firebaseアナリティクスを有効にする。
- BigQueryを使ってFirebase Analyticsデータをエクスポートするためのリンクを作成する。
- 以下のクエリを実行して、過去1ヶ月間のセッション数を日本時間の日付毎に数えます。
SELECT
DATE(TIMESTAMP_SECONDS(event_timestamp)) AS date,
COUNT(DISTINCT user_pseudo_id) AS sessions
FROM
`firebase_project.analytics_database.events_*`
WHERE
_TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d',DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH))
AND
FORMAT_DATE('%Y%m%d',CURRENT_DATE())
GROUP BY
date
ORDER BY
date
ASC
このクエリは、過去1ヶ月間のイベントデータから日付毎のセッション数を集計します。日本時間に変換するために、TIMESTAMP_SECONDS関数とDATE関数を使用しています。
ChatGPT
コードも返してくれる!!!素晴らしい!!
コードをそのまま送って解説お願いしましょう。
質問:(コードそのまま送る)
回答:
このクエリはFirebase Analyticsデータから過去1ヶ月間の日付毎のセッション数を集計するものです。
ga4-quick.analytics_302974976.events_*:Firebase Analyticsのイベントデータテーブルです。
TIMESTAMP_SECONDS(event_timestamp):イベントのタイムスタンプを秒単位の数値から日付と時間の形式に変換します。
DATE(TIMESTAMP_SECONDS(event_timestamp)):イベントの日付を抽出します。
COUNT(DISTINCT user_pseudo_id):ユーザー固有のID(user_pseudo_id)を使用して、各日付におけるセッション数をカウントします。
_TABLE_SUFFIX BETWEEN FORMAT_DATE(‘%Y%m%d’,DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH)) AND FORMAT_DATE(‘%Y%m%d’,CURRENT_DATE()):データテーブルのサフィックス(日付)を使用して、過去1ヶ月間のデータのみを選択します。
GROUP BY date:日付毎にグループ化します。
ORDER BY date ASC:日付順に並び替えます。
このクエリを実行することで、過去1ヶ月間の日付毎のセッション数が得られます。
ChatGPT

おおー!!素晴らしい。
実際にBigQueryで試したところ、下記のようなエラーが出てしまったので聞いてみます。
timestamp overflow: TIMESTAMP_SECONDS(1674431996556852)
質問:
SELECT
DATE(TIMESTAMP_SECONDS(event_timestamp)) AS date,
COUNT(DISTINCT user_pseudo_id) AS sessions
FROM
`ga4-quick.analytics_302974976.events_*`
WHERE
_TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d',DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH))
AND
FORMAT_DATE('%Y%m%d',CURRENT_DATE())
GROUP BY
date
ORDER BY
date
ASC
このコードを実行したらtimestamp overflow: TIMESTAMP_SECONDS(1674431996556852)というエラーが出ました。
回答:
このエラーは、TIMESTAMP_SECONDS関数がサポートされていないか、入力されたタイムスタンプ値が関数のサポート範囲外であることを示しています。BigQueryでは、1970年1月1日(UTC)から2038年1月19日(UTC)までの日時のみをサポートしています。
解決方法としては、タイムスタンプ値がサポート範囲内にあることを確認するか、正確なタイムスタンプ値を使用するか、タイムスタンプ値を正確な形式に変換することが考えられます。また、Firebase Analyticsのタイムスタンプを使用する場合は、サポートされているタイムスタンプ形式を確認して適切な変換を行う必要があります。
ChatGPT

実は正解はTIMESTAMP_MICROSを使います。エラーの内容と解決策まで提示できるのは素晴らしいですね。N行目のここをこう直してくださいって返事きたら凄いですね。
コード実行結果:

無事に取得できましたが、
- 厳密なセッション数ではない
- 日本時間にはなっていない
この点が残念でした。
まとめ
1)質問の粒度を上げればかなりの精度で回答がもらえますが、内容の正確性に欠ける為、ファクトチェックは必須。
2)今回の例ではいくつかの箇所が抜けていたのが残念でしたが、別の言い回しや再度質問をすれば恐らくは取得できそう。SQLを書くのが苦手な方は充分に使えると思います。
ChatGPTのこれからに期待大ですね!
AI+人間のエンジニアによる、GA4解析設定、などのご相談は、このBlogの運営元、and,a株式会社(https://and-aaa.com/)までお願いいたします。
コメント