Code & Book
技術

ブログの解析データをBigQueryとlooker studioでデータ基盤ぽくしてみた

みなさんデータ基盤(データ分析基盤)というものを知っていますか。

今回は個人ブログの解析データ2種: GA4・searchconsoleのデータを組み合わせて、軽くデータ基盤ぽいことをしてみたのでそちらについて書こうと思います。

データウェアハウスにbigquery, データマートにlooker studioを使った形です。

私自身以前はデータ基盤に関するpjに関わっていたこともあり、データ基盤とはなんぞやということも含めて軽く書いてみます。

データ基盤とは

データ基盤とは、社内外のさまざまな場所に散らばっているデータを一箇所に集め、「単一のデータ利用統合プラットフォームとして整えたもの。

よくある課題として、データを使って施作の分析をしたいけどデータが整えられていなくてエンジニアに依頼しないと活用できないと言ったことがあると思います。
そう言った状態を専門知識がなくても、誰でも「必要な時に」「必要なデータ」を安全・簡単に取り出し、意思決定に活用できる状態にするのがデータ基盤になります。(これをデータの民主化と言ったりします。)

データ基盤のよくある階層

役割利用者ファイル形式ユースケース
データレイク生データをそのまま保管エンジニア非構造データ含むなんでも(json, csv, ログ, 画像)データの受付口、保管する
データウェアハウス構造化して整理・蓄積アナリスト構造化データ(RDB)分析
データマート特定のユースケースに最適化、可視化現場の担当者
マーケター
構造化データ(集計済みテーブル)月次レポート
特定施策の可視化など
data-platform-1

ETL(Extract/Transform/Load)処理について

データレイクからデータウェアハウスへの処理をETL処理と言ったりします。

読んで字の如く、

  • データレイクからデータを抽出(extract)
  • 分析できる形に変換(transofrm)
  • データウェアハウスに転送(load)

するような処理です。

ここはデータ基盤を構築する上で結構重要な位置を占めるのではないかと思っています。
データ基盤を構築しようとしているということは、扱っているデータの特性が複雑であったり多くのファイルを結合しなくてはいけなかったりするようなものだと思います。
それらを

また、transform処理には次のような種類があります

  • データストラクチャリング:非構造化データを構造化データにする。PDFをRDB形式にするなど
  • データクレンジング:データの不都合な部分を修正する。重複データ、破損データ、分析しやすいようにフォーマットするなど
    • ここがデータのドメインに左右されて一番大変な印象
  • データエンリッチング:分析に必要なデータを付与する。ユーザーに紐づくセッション情報を付与するなど

GA、サーチコンソールとは

多分Webマーケティングをしている方なら必ず知っているようなツールだと思うのですが、webサイトのユーザーの行動情報をトラッキングするためのものです。

ブログの記事を書く上でたまに見たりしています。
あんま伸びていないと憂鬱になります。( ^ω^ )

(僕は本職のマーケターではないので、ユースケースはあくまでブロガーの意見です)

  • GA4(Googleアナリティクス4)データ
    • 「サイトに来た後の行動」を記録するもの。
    • ユーザーがどのページを見て、どこでボタンを押し、コンバージョンしたかを計測される。
    • google adsenceと連携できるので広告をどれくらいクリックされているかも収集できる
    • ユースケース:どのページが一番閲覧されているかをみる
  • サーチコンソール(Google Search Console)
    • 「サイトに来る前の行動」を記録するもの。
    • Google検索でどんなキーワードで表示され、何回クリックされたか(SEOの状態)を計測します。
    • ユースケース:
      • どのキーワードで検索されているかを見て、作る記事の方向性を考える
      • wordpressのキーワードタグに入れる文字の参考にする

BigQuery, looker studioとは

  • BigQuery
    • Google Cloudが提供する超高速なデータウェアハウス
    • テラバイト級の膨大なデータでも、SQLを使って数秒で集計できる強力な計算エンジンを持っています。
  • Looker Studio
    • データを可視化するBIツールです。
    • BigQueryに溜まった数字を、グラフや表などの直感的なダッシュボードに変換する。
    • 小規模利用なら無料でできるのでカジュアルに始められる

ちなみに僕はLookerStdioの前身のデータポータルを以前使ってました。
あまり使用感は変わっていなかった。

今回やったこと

下記のような構成でGA4データとsearch consoleの軽いデータ基盤的なものを作ってみました。

課題設定

  • GAのアナリティクスをポチポチして見るのが面倒
  • searcconsleのUIが見にくい。
    • 検索クエリに対応したページがわからない(多分)
  • analytics見るのがテンション上がらないので自作で作ったもので見たい

手順

  1. GA4とsearchconsoleにBigQueryへエクスポートする設定をする
  2. データクリーニングをするクエリを書いてビューで保存
  3. looker studioで対象のテーブルを選択してグラフやテーブルを作成

データレイク・データウェアハウス –BigQuery–

BigQueryに作ったテーブルはこんな感じです。

  • データレイク層
    • analytics_{GA4プロパティID}: GA4をそのままエクスポートしたもの
    • searchconsole: searchconsoleをそのままエクスポートしたもの
  • データウェアハウス層
    • translated: データレイクのテーブルをクリーニングのみしたもの
      • 不要なカラムを削除
      • unix形式の日付をdate形式に
      • GA4のネストされたレコードを分解
    • for_use: データマートでに加工するように必要な情報を抽出したもの

特にBigQuery上のGA4のデータを扱ったことがある方ならわかると思うのですが、event_paramsカラムでネストされててかなり扱いにくいと思います。
これはGA4のデータを扱う上で一回ネストされていないテーブルに分解するのは、開発体験を向上させる試みだったように感じます。

データマート –looker studio–

作ったテーブルを一つ紹介します。

上の写真はlooker studioでBigQueryのテーブルを指定して作成したものです。
見られているページとどれくらい閲覧されたかをGA4のデータから取得し、searchconsoleの検索クエリの情報と突合させています。

通常のコンソール上だとGA4とsearchconsoleのデータを組み合わせた分析はできないので、これは今回の成果物の特徴ではないでしょうか。

おわり

なんか作ったものの紹介が中身ぼかしたりしてて上手く伝わったか微妙な気がしますが、、、
ただ、結構簡単だったしコストはBigQueryの料金しかかからないので気軽に試してみてはいかがでしょうか。

ではまた( ^∀^)