とりゅふの森

GCPデータエンジニアとして生きる

【Google Analytics4】イベントデータをBigQueryに連携する

f:id:true-fly:20210731121929p:plain

こんにちは、今回は当ブログで利用している、Google Analytics4のデータを、Google BigQueryに連携してみたので、その手順についてまとめました。
ほんの5分程度、画面上で設定をするだけで、Google Analytics4のデータをBigQueryのSQLを使って集計、分析ができるようになります。
Google Analyticsの画面では見たいデータが見れない、他のBIツールだけじゃ物足りないといった方は、ぜひBigQueryにデータ連携し、SQLで自在にデータを集計できるようにしてみましょう!

※Google Analytics4、及びGoogle Cloud Platform、BigQueryが利用できる状態が前提になります。

手順

Google Analyticsにログイン、左下の[管理]をクリックします。

連携したいプロパティの、[BigQueryのリンク設定]をクリックします。

f:id:true-fly:20210731114818p:plain

[リンク]をクリックします。

f:id:true-fly:20210731114712p:plain

[BigQueryプロジェクトを選択]をクリックし、自分のGCPのプロジェクトを選択します。

f:id:true-fly:20210731115020p:plain

データロケーションを選択できます。ロケーションによって料金体系が異なったりしますが、特に懸念がなければ東京を選択しましょう。

f:id:true-fly:20210731115153p:plain

連携頻度を、1日1回(バッチ)か、リアルタイム(ストリーミング)かを選択できます。
BigQueryは、バッチ処理であれば無料でロードができますが、ストリーミング処理は課金が発生しますのでご注意ください。

BigQuery へのデータのストリーミング  |  Google Cloud

f:id:true-fly:20210731115509p:plain

以後画面に従い進め、「リンク作成済み」と出ていれば成功です!

BigQueryを確認する

1日1回(バッチ)を選択したので、翌日、BigQueryを確認すると、analytics_プロパティIDというデータセットが作成されており、event_日付のテーブルが作成されているのが確認できました。eventテーブルは日付サフィックスのテーブルで毎日積み上げで作成されます。

f:id:true-fly:20210801171813p:plain:w400

数日後に確認すると、日付ごとにテーブルが作られていることが確認できます。

f:id:true-fly:20210808225710p:plain

テーブルプレビューで見た結果がこちらです。

f:id:true-fly:20210801164609p:plain

試しにSQLで集計してみます。
PV数の多い順にページタイトルを表示するSQLになります。event_paramSTRUCT型で配列なので、UNNESTしないと扱えず、なかなか扱いづらいです。

SELECT
    event_param.value.string_value
FROM 
    `analytics_[YOUR ID].events_2021*`,
    UNNEST(event_params) event_param
WHERE
    event_param.key = 'page_title'
    AND event_name = 'page_view'  -- イベント名
    AND traffic_source.name != '(direct)' -- ダイレクトトラフィック除外
GROUP BY
     1
ORDER BY
    COUNT(*) DESC

結果

f:id:true-fly:20210808232929p:plain

まとめ

以上、今回はGoogle Analytics4のデータをBigQueryに連携する手順についてまとめました。
BigQueryで自在にSQLを書いてデータ集計ができるようになれば、よりGAのデータに価値が生まれると思います。
ただ、テーブルがネストされていたり、SQLを書かないと結果が取れないので、ある程度のデータ量があって,SQLじゃないとできないようなことをやらないとあまり活用にはつながらないかなと思います。 はじめのうちはGoogleデータポータルのようなBIツールを使って集計をしていくのが手っ取り早くおすすめです。 当ブログでもまだ連携が始まったばかりなので、ある程度データが溜まったら、集計方法や分析方法についてご紹介していきたいと思います!