投稿日 2022.09.26

最終更新日 2022.09.26

GA4を使いこなすならぜひ知っておきたいBigQuery連携とは?

GA4とBiqQueryの連携でできること

GA4とBiqQueryの連携でできること

Googleアナリティクス4(GA4)とBigQueryを連携させることで様々なことができるようになります。以下ではGA4とBigQueryの連携で実現できる事を3つピックアップして紹介しましょう。

GA4のデータをSQLを使って分析できるようになる

GA4とBigQueryを連携させることで、GA4に蓄積された生データをSQLで分析することが可能です。これにより、GA4のページビュー(PV)数や離脱数、滞在時間、アクセス元などの情報を様々な切り口で分析することができます。GA4以前のバージョンであるユニバーサルアナリティクスでは、無料の範囲内ではグラフや表などの集計後のデータしか確認できず、蓄積されたデータについて限定的な切り口でしか分析ができませんでした。GA4はBigQueryを使って生データを連携させる手段が無料提供されていますから、自分の好きなように集計、分析を行えるようになったのです。

GA4のデータと他のデータを連動させた分析ができる

GA4のデータをBigQueryに連携させれば、BigQueryを通して他のデータと連携した分析もできるようになります。例えば、GA4の生データの中から特定のユーザーのアクセス履歴を抽出し、予めBigQueryで管理していた同一ユーザーの実店舗の購買記録を連携させれば、アクセス履歴と実店舗での購入履歴を基にその顧客の行動を分析するといったことが可能です。このように、ネットとリアルをまたいだ行動分析を行うことで、ユーザーの潜在的な需要や行動原理により深く、より詳細に迫ることができるようになるでしょう。

GA4のデータを自分の好きなように視覚化できる

GA4のデータを自分の好きなように視覚化できる
先述したように、GA4とBigQueryの連携によってGA4に蓄積された生データをBigQueryを利用して様々な切り口で分析・集計が可能になりますが、これによってGA4のデータを様々な形で視覚化することもできます。これは、BigQuery上のデータがGoogleデータポータルなどのBIツールと連携することで実現可能となるもので、GA4のデータを直感的な操作でグラフ化、図表化することが可能です。プレゼン資料の作成や、グラフィカルな分析を行う際には重宝することになるでしょう。

GA4とBigQueryの連携設定は非常にシンプル

GA4とBigQueryの連携は、簡単な操作で設定することが可能です。まずは下準備として、BigQueryのプロジェクト作成とAPIの有効化を確認しましょう。Google Cloudにログインしたら、プロジェクト選択画面で新しいプロジェクトを作成しましょう。ここで、プロジェクト名、プロジェクトID、場所を任意に設定し保存します。続いて、作成したプロジェクトを開いて、画面左のメニューバーより「APIとサービス」→「ライブラリ」の順に選択しましょう。使用可能なAPIライブラリが画面上にずらりと表示されますので、カテゴリから「ビッグデータ」を選択してください。BigQueryのAPIはこの中にあります。BigQueryのAPI画面を開き、「APIが有効です」と表示されていることを確認したら、BigQueryの有効化確認は完了です。

続いて、GA4の管理画面を開き、「BigQueryのリンク設定」を押下しましょう。設定画面内の「リンク」ボタンを押下すると、BigQueryのプロジェクトを選択する画面に移行します。ここで先程作ったBigQueryのプロジェクトを選択し、データロケーションを「東京」に設定しましょう。続いてデータ連携の頻度を選択します。1日1回連携する「毎日」か、データ更新の都度連携を行う「ストリーミング」の2種類から選択可能です。リアルタイムでのデータ連携がどうしても必要、という場合で無い限りは「毎日」を選んでおくことをおすすめします。設定した内容を確認し、「送信」ボタンを押下すれば、GA4とBigQueryの連携設定は完了です。

GA4とBigQueryを連携した場合の利用料金は?

GA4とBigQueryを連携した場合の利用料金は?
GA4とBigQueryを連携する場合、連携機能自体は無料で使用することが可能です。ただし、BigQueryを利用するための料金が発生するため注意してください。BigQueryの料金は「分析料金」と「ストレージ料金」の2種類が存在します。分析料金は各種クエリの処理を行うために必要な料金で、ストレージ料金はBigQueryにデータを保存するために必要な料金です。料金は使用するリージョンによって変わりますが、ここでは東京のリージョンを使用した場合の料金について解説します。

分析料金は、クエリでデータを処理するごとに発生するオンデマンド料金と、月額もしくは年額で決まった料金を支払う定額料金の2種類があります。オンデマンド料金は1TBの処理を行う度に6ドルですが、毎月1TBまで無料です。定額料金は仮想CPUである「スロット」を購入するという形式で行われます。月定額の場合は100スロットごとに月々2400ドル、年定額の場合は月額換算で100スロットごとに2040ドルです。追加のスロットは100スロット単位で購入することが可能です。スロット購入でありながら時間課金のFlex Slotと呼ばれる料金形態もあり、1時間あたり100スロットごとに4.8ドルがかかります。

ストレージの料金体系は、過去90日間に変更が行われたテーブルやテーブルパーティションに対して料金が発生するアクティブパーティションと、90日間変更が行われていないテーブルやテーブルパーティションに対して料金が発生する長期保存の2種類があります。アクティブパーティションは1GBあたり0.023ドルで、長期保存は1GBあたり0.016ドルです。いずれも毎月10GBまで無料で使用できます。また、データ取り込みにおいて「ストリーミング挿入」を行った場合は挿入に成功した行に対して料金が発生し、200MBごとに0.012ドルがかかる点に注意してください。同様に、BigQuery Storage Write APIのサービスを利用した場合は毎月最初の2TBまでが無料となり、それ以降は1GBあたり0.03ドルがかかります。

必要以上の課金を抑える方法として、BigQuery側で「課金される最大バイト数」を指定することが可能です。この設定を行うと、上限以上のデータがストレージに保存されることはなく、料金に上限をもたせた状態で利用することができます。無駄なく利用したい場合は、現状の利用量から課金される最大バイト数を決めて設定を行うようにしましょう。また、基本的にはストレージ料金よりも分析料金のほうが課金額に占める割合が高いため、必要最低限のクエリ処理を行うことで、利用料を大幅に節約することが可能です。

GA4のデータを分析する時によく使うSQL例

GA4のデータを分析する時によく使うSQL例
以下では、GA4のデータ分析でよく使うことになるSQLをいくつかピックアップして紹介します。いずれもアクセス解析において基本となるSQLのため、覚えておいて損はありません。

日ごとのPV数を調べるSQL

まずは、日ごとのPV数をSQLで出してみましょう。SQL文としては以下のようになります。

SELECT
DATE(timestamp_micros(event_timestamp), 'Asia/Tokyo') AS hitdate,
COUNT(1) AS pageviews
FROM
'hogehoge.events_*'
WHERE
_TABLE_SUFFIX BETWEEN '20220101'
AND '20220131'
AND event_name = 'page_view'
GROUP BY 1
ORDER BY 1

このSQLでは、2022年1月1日から2022年1月31日のPV数を日ごとに出しています。この時、タイムゾーンを任意で変更できるようにするために、event_timestampを使って日付を出していますが、タイムゾーンを気にしない場合はevent_dateを使っても構いません。

ユーザー数

user_pseudo_idにはユーザーIDが記録されています。このユーザーIDのユニーク数を日ごとに集計すれば、各日にアクセスしたユーザー数を調べることが可能です。SQL文の例を以下に紹介しましょう。

SELECT
DATE(TIMESTAMP_MICROS(event_timestamp), 'Asia/Tokyo') AS hitdate,
COUNT(DISTINCT user_pseudo_id) AS users
FROM
'hogehoge_events_*'
WHERE
_TABLE_SUFFIX BETWEEN '202200101'
AND '20220131'
AND event_name = 'session_start'
GROUP BY 1
ORDER BY 1

このSQLを実行することで、各日のユーザー数が一覧表示されます。ちなみに、GROUP_BYの条件をhitdate以外にすると、別の切り口から集計ができるようになるので覚えておきましょう。

サイト内の検索キーワードを集計する

まず、前提としてサイト内検索のキーワードをイベントパラメータを使って記録している必要があるため注意しましょう。ユーザーがサイト内検索を行うと、view_search_resultsイベントが発生して検索ワードがevent_params.key = search_term の string_value列に格納されるという形で記録が行われます。このstring_value列の検索ワードの中から同じものを抽出して集計するのが以下のSQLです。

SELECT
(SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'search_term') AS int_search_term,
COUNT(1) AS int_search
FROM
'hogehoge.events_*'
WHERE
_TABLE_SUFFIX BETWEEN '20220101' and '20220131'
AND event_name = 'view_search_results'
GROUP BY 1
ORDER BY 2 DESC

これにより、検索キーワード別にそれぞれの検索数が集計されて表示されます。event_nameのキー項目は、検索結果の出力イベントの名称に応じて変わるため、分析しているWebサイトの設定に合わせて変更するようにしましょう。event_paramsのキー項目も同様です。

GA4とBigQueryを連携させて自在にWeb解析をしてみよう

GA4とBigQueryを組み合わせれば、SQLを利用して自由自在なWeb解析を行うことが可能です。オフラインにおけるデータを組み合わせればリアルとネットの双方で行動分析ができるようになりますし、BIツールを組み合わせて様々な切り口で分析結果を視覚化することもできます。GA4とBigQueryの連携機能を活用し、自由自在なWeb解析を駆使してよりディープなWebマーケティングを展開していきましょう。

この記事の監修者

冨塚 辰

冨塚 辰

プロジェクトマネージャー