3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

GA4 + Lookerで自社サイトのデータ分析をやってみる

Last updated at Posted at 2022-10-08

Webマーケティングの最新のプラットフォームとして注目されているGA4ですが、Google Cloud PlatformのDWH、BigQueryとデータの自動連携を行うことが可能です。
この機能を利用して、同じくGoogleのBIツール、Lookerに自社サイトデータを分析したB2Bマーケのダッシュボードを作成します。

ワークフロー 内容
1.BigQueryの準備 BigQueryの初期設定を行います
2.GA4 <> BigQueryの連携 自動連携の設定を行います
3.GA4データの前処理 Lookerで分析できるように、ARRAY型のデータのUNNESTなどデータの前処理を行います
4.BigQuery <> Looker連携 BigQueryのテーブルとLookerを連携します
5.LookML作成 Lookerのデータモデリング言語、LookMLをコーディングし、データモデルを作成します
6.Lookerダッシュボード作成 GA4データをLookerで可視化し、分析を行います
7.振り返り 感想と課題

初めに

今回対象として自社サイトのGA4データを使用します。
自社サイトのコンテンツが実際にどれくらい閲覧されているか、コンバージョンに繋がっているか、といったデータを可視化/分析して、マーケティングの効果向上に活用していく狙いです。

1.BigQueryの準備

Google Cloud Platformで新規プロジェクトを作成します。
image.png
APIとサービス > ライブラリよりBigQueryAPIの有効化を行います。
image.png

2.GA4 <> BigQueryの連携

GA4の管理画面からBigQueryのリンク設定を選択します。
image.png
プロジェクト/データロケーションを選択します。
image.png
データ連携の頻度を選択します。

毎日:1日1回のデータ連携。日次でデータが蓄積されていきます。
ストリーミング:ほぼリアルタイムでデータが連携されます。ただしデータは1日で破棄されるので、当日限定です。

基本的には毎日を選択、リアルタイム分析も行いたい場合は毎日・ストリーミングの両方選択するのがベターです。
image.png
連携設定後、1~2日ほどで指定したBigQueryにGA4のデータセットが作成されます。
データは連携設定後からの期間のデータとなるため、自動連携の設定は早期に行うことを推奨します。

3.GA4データの前処理

連携したデータは1行で完結する形ではなく、ARRAY型の構造となっており、SELECT文でのアクセスやBIツール上での可視化ができない状態のため、
BigQueryのUNNEST句を用いて、データの前処理を行います。
image.png
UNNEST句とは下図のように、ネストを解除して1行のフラットなデータ構造に変換する処理です。ただしこれだとネストしていないフィールドが重複する、データが縦に伸びる形になってしまうため、注意が必要です。
image.png
今回はこのようなSQLで、SELECT句の中にサブクエリを用いて、取得したいevent_paramsのkey/valueを指定、event_paramsをフラット化した結果、データが横に伸びる形で、非ネストフィールドが重複しないように抽出します。

SELECT event_date,event_name,device.mobile_brand_name,traffic_source.medium,traffic_source.source,
(SELECT value.string_value FROM UNNEST(event_params) as params WHERE params.key = 'page_title') as page_title,
(SELECT value.string_value FROM UNNEST(event_params) as params WHERE params.key = 'page_location') as page_location,
(SELECT value.string_value FROM UNNEST(event_params) as params WHERE params.key = 'page_referrer') as page_referrer,
(SELECT value.int_value FROM UNNEST(event_params) as params WHERE params.key = 'engaged_session_event') as engaged_session_event
FROM `{{GCP_PROJECT_ID}}.analytics_251826987.events_*`

クエリの結果、page_viewなどのイベントごとにevent_paramsの内容をフラット化して抽出できました。今回はこのSQLをview化してLookerに接続します。
image.png

4.BigQuery <> Looker連携

Looker上でデータベースの接続を行います。
image.png
新規LookMLプロジェクトを作成します。
image.png
テーブルからビューを作成する、より先程接続したBigQueryのviewを指定。
LookMLのビューを生成します。
image.png

5.LookML作成

LookMLのビューに下図のような各イベントの回数をカウントする指標を追加します。
image.png
続いてLookMLのモデルを作成します。
image.png
Gitの構成より、プロジェクトのGitリポジトリの構成を作成します。
image.png
Lookerからgithubに移動(githubのアカウント作成が必要です)
githubでリポジトリを作成し、LookerのGitの構成画面で作成したリポジトリを指定します。
image.png
Looker上でGitリポジトリのデプロイキーが発行されるので、githubのAdd deploy keyよりデプロイキーを入力します。これでGitの構成は完了です。
image.png
早速、LookMLをコミットしてデプロイします。
image.png

6.Lookerダッシュボード作成

先程デプロイしたLookMLを基にディメンションとメトリクスを組み合わせて、ダッシュボードに表示するタイル作りを行います。
下図では流入元別のKPIを表示するタイルを作成しています。
image.png
作成したタイルをダッシュボード上に配置、日付のフィルターを設定したり、内容をブラッシュアップしていきます。
image.png
▷日付/メディア/ソースのページフィルターの追加。
image.png
▷ビューにdrill_fieldsを設定して、Lookerのグラフをクリックした時にドリルダウン表示ができるようにする。
image.png
新規ユーザー数のバーをクリックすると、新規ユーザーのメディア/ソースをドリルダウン表示。
image.png
さらにいくつかタイルを作成して、
自社サイトの集客状況のOverviewを把握するダッシュボードができました。
集客力の高いコンテンツ、問い合わせ効率の高い流入元など、B2Bマーケでとりあえず知りたい情報を1ページにまとめています。
image.png

7.振り返り

いくつか感想・・・
・Googleサービスのみで構築しているためかとにかくスムーズ。比較的簡単に見やすいダッシュボードを構築する段までいける
・Lookerはやっぱり表示のレスポンスの速さ、見た目の良さ、できることの多さ(カスタマイズ性)に優れている
・これだけサイトの集客状況を明らかにできるのであれば、マーケティングの取り組みがいがありそう。。

これからより作り込みたい点・・・
・LookerのLiquid変数を使って、可変的に数値を期間比較できるような項目の実装
・ページフィルターのクロスフィルタリング
・セッションIDを使って、問い合わせに至っている経路の可視化。また問い合わせに至りやすい経由ページの可視化

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?