BigQueryの導入手順や使い方を解説【GA4で無料化】

BiqQueryを使いたい人「GA4ではBiqQueryが無料で使えるようになったので、BiqQueryを利用してみたい。でも使い方がさっぱりわかりません。初心者向けに教えてください」
こういった疑問に答えます。
本記事の内容
- BigQueryの導入手順と使い方
記事の信頼性
今回は、BigQueryの導入手順と使い方をわかりやすく解説します。
GA4では、BiqQueryが無料で使えるようになりました。
BigQueryを使うと、GA4で取得した生のデータを利用できるので、より柔軟な分析が可能になります。
そこで本記事では、BiqQueryの導入手順や使い方をわかりやすく解説しました。
サイトの改善のためにBiqQueryを使い方はぜひご覧ください。
» Googleアナリティクス4(GA4)習得への完全マップ
目次
- BiqQueryとはクラウド上のデータベース
- BigQueryの導入手順
- BigQueryとGA4を連携する
- BigQuery GA4のデモデータ
- BigQueryにエクスポートされたGA4のデータ構造
- BigQueryにおけるクエリの記述方法と操作手順
- 参考:BigQueryのGA4データをLooker Studio(旧:Googleデータポータル)で可視化する
- まとめ:BigQueryを使うと分析の幅が広がる
BiqQueryとはクラウド上のデータベース

BiqQueryとは、Googleが提供するクラウド上のデータベースです。
» Googleヘルプ
ユニバーサルアナリティクスでは、BigQueryの利用は有料版のみでしたが、
GA4では、無料版でもBiqQueryにデータをエクスポートできるようになりました。
BiqQueryを使うと、GA4画面に表示される前の「無加工のアクセスログデータ」を取得できるので、
- オフラインデータなど、他のデータと統合して分析ができる
- BiqQuery MLなどの機械学習を利用できる
といったメリットがあります。
無料版の上限
GA4では、無料版でもBiqQueryにデータをエクスポートできるようになったと説明しましたが、上限を超えると料金が発生します。
・データ保存:毎月10GBまで無料(以降$0.020/GB)
・データ取得:毎月1TBまで無料(以降$5/TB)
最新の料金は、ヘルプをご覧ください。
» ヘルプ
よほどの大規模サイトでなければ、無料で大丈夫かと。
BigQueryの導入手順

続いては、BigQueryの導入手順を解説します。
GA4のデータをBigQueryに送るためには、
・BigQuery側の設定
・GA4側の設定
の双方が必要です。
この項では、BigQuery側の設定について解説します。
手順は以下の3ステップ。
- Google Cloudのアカウントを作成
- BigQueryのプロジェクトを作成
- APIが有効になっているか確認
Google Cloudのアカウントを作成
Google Cloudのサイトにアクセスします。
» Google Cloudのサイト
[無料で開始]をクリックします。
アカウント情報を入力し、[続行]をクリックします。
電話番号を入力し、[コードを送信]をクリックします。
メッセージが届くので、コードを入力して[確認]をクリックします。
お支払い情報などを入力して、[無料トライアルを開始]をクリックします。
簡単なアンケートに回答して、[完了]をクリックします。
サービスを提案されるので、[今回はスキップ]をクリックします。
Google Cloud Platformにログインできれば、アカウント作成は完了です。
BigQueryのプロジェクトを作成する
続いては、BigQueryのプロジェクトを作成します。
左側のメニューから
[BigQuery] > [SQLワークスペース]をクリックします。
上部にある[My First Project]をクリックします。
[新しいプロジェクト]をクリックします。
プロジェクト名を入力し[作成]をクリックします。※プロジェクト名は後ほどGA4と連携する時に必要
これでプロジェクトが作成されます。
ためしに、上部にある[My First Project]をクリックしてみて、
先ほど作成したプロジェクトが作成されていればOK!
APIが有効になっているか確認
左上の[Google Cloud Platform]をクリックします。
[APIとサービス]をクリックします。
[BigQuery API]をクリックします。
ステータスが[有効]になっていればOKです。
以上で、BigQuery側の設定は完了です。
BigQueryとGA4を連携する

BigQuery側のセットアップが終わったら、次にBigQueryとGA4を連携します。
GA4の管理画面を開きます(GA4を未導入の方は、こちらの記事をご覧ください)。
GA4の管理画面で、連携をしたいプロパティを選び、[BiqQueryのリンク]をクリックします。
右端の[リンク]をクリックします。
[BiqQueryプロジェクトを選択]をクリックします。
先ほど作成したプロジェクトを選び、右上の[確認]をクリックします。
データのロケーションとして、「東京」か「大阪」を選び、[次へ]をクリックします。
頻度は、[毎日]を選び、[次へ]をクリックします。
※ストリーミングは随時更新されますが、一部追加料金が発生するかもしれません。当日の分析をリアルタイムで行う必要がある状況ではない限り、[毎日]を選べばOK
[送信]をクリックします。
[リンク作成済み]と表示されます。
GA4とBiqQueryとがリンクされました。
以上で、GA4とBiqQueryの連携設定は完了です。
あとは、データが貯まるのを待ちます。
BiqQuery GA4のデモデータ

BigQueryには、GA4のデータが格納されたデモデータのプロジェクトが用意されています。
BigQueryの感触を知りたい方向けに、デモデータのアクセス方法を紹介します。
まず、ヘルプページにアクセスします。
» ヘルプページ
次に、ヘルプページ内にある
ga4_obfuscated_sample_ecommerce
のリンクをクリックします。
すると、BiqQueryに自動遷移し、テーブルスキーマが表示されます。
bigquery-public-dataの
ga4_obfuscated_sample_ecommerceの
events_ です
上記のテーブルスキーマを触ってみて、BiqQueryの感触をつかみましょう。
BigQueryにエクスポートされたGA4のデータ構造

続いては、BigQueryにエクスポートされたGA4のデータ構造を解説します。
まず上部メニューをクリックして、作成したプロジェクトを選びます。
左メニューから[SQLワークスペース]をクリックすると、右側にエクスプローラーが表示されます。
1つのプロジェクト(hideharublog)に対して、1つのデータセット「analytics_xxxxx」が作成され、その中に「日ごと」でテーブルが作成されデータが記録されていきます。
上部メニューの日付をクリックして、見たい日づけを選びます。
スキーマタブをクリックすると、取得できているフィールド名を確認できます。
取得している主なフィールド名は、たとえば以下があります。
event_name:イベントの名称
event_params:イベントのパラメータ値
user_id:設定している場合は会員ID
device:デバイス情報
詳細は、ヘルプをご覧ください
» ヘルプ:BigQuery Export スキーマ
[プレビュー]のタブを押すと、サンプルデータを見ることができます。
各行の4列目に、取得しているイベント名を確認できます。
event_paramasにある[▼]をクリックすると、該当イベントに紐付いたイベントパラメータを確認できます。
上記のように、イベントパラメータはイベント内にネストされています。
このテーブルからデータを集計して取得するには「クエリ」を記述する必要があります。
ページ上部にある「クエリ」の文字列をクリックすると、
クエリを記述する画面が表示されます。
クエリの記述方法は、次の項をご覧ください。
BigQueryにおけるクエリの記述方法と操作手順

BigQueryにおける、クエリの記述方法と操作手順を解説します。
クエリとは
クエリとは、データベースに対する命令文のこと。
データベースとは、データの集合体。
データベースに対して、
「このデータを入れておいて」
「このデータを取り出しておくれ」
といった命令文、それがクエリです。
クエリで有名なのがSQL。
SQLを使った命令文は「SQL文」と呼ばれます。
一般的には、このSQL文を意図して、「クエリ」と表現します。
なお、SQLとクエリ(SQL文)は似て非なるもの。
・SQL:言語
・クエリ(SQL文):命令
クエリの基礎
クエリ(SQL文)の中で、最も使うのがSELECT文です。
SELECT文とは、データベースからデータを取得する命令のこと。
まずはこれを覚えればOKです(^^)/
SELECT文の骨格
SELECT [取得したい要素] FROM [使用テーブル];
以下は、応用です。
複数の要素を指定するとき
SELECT [取得したい要素1], [取得したい要素2] FROM [使用テーブル];
全部指定したいとき
SELECT * FROM [使用テーブル];
条件を絞りたいとき
SELECT [取得したい要素] FROM [使用テーブル] WHERE [条件文];
ソートしたいとき
SELECT [取得したい要素] FROM [使用テーブル] ORDER BY [ソートしたい要素] [昇順・降順の指定]
※[昇順・降順の指定]部分へは、asc(昇順)、desc(降順)のどちらかを指定。省略時は昇順になる。
グループ分けしたいとき
SELECT [取得したい要素] FROM [使用テーブル] GROUP BY [グループ化したい要素];
出力時に名前をつけたいとき
SELECT [要素名] AS [要素につけたい名前] FROM [使用テーブル];
以上のSELECT文を覚えればまずはOKです。
もっと詳しく知りたい方はヘルプをご覧ください。
» Googleヘルプ
クエリの書き方を含む一連の操作手順
BigQueryにおける、一連の操作手順を解説します。
ページ上部にある「クエリ」の文字列をクリックすると、
クエリを記述する画面が表示されます。
上記の赤枠内にクエリを記述していきます。
クエリを記述したら、左上の[実行]をクリックします。
するとデータの抽出結果が表示されます。
データを保存したいときは、[結果を保存する]をクリックして、お好きな形式を選びます。
クエリを保存したいときは、[保存]をクリックします。
名前をつけて保存します。
保存したクエリを再度呼びだすときは、左メニューの該当クエリをクリックします。
以上が、BigQueryにおける、クエリの書き方を含めた一連の操作手順です。
クエリの記述例
クエリの記述例をいくつか紹介します。
データセット内の全フィールド(イベント)の3行分だけ取得
SELECT
*
FROM
`analytics_303756479.events_*`
LIMIT
3;
▽結果
所定の日にちのイベントを全て取得
SELECT
*
FROM
`analytics_303756479.events_*`
WHERE
_TABLE_SUFFIX BETWEEN '20220510' AND '20220512'
▽結果
※上記以外のデータは省略
スプレッドシートに保存すると、こんな感じになります。
データセット内のユニークイベント数、ユーザー数、日数を取得
SELECT
COUNT(*) AS event_count,
COUNT(DISTINCT user_pseudo_id) AS user_count,
COUNT(DISTINCT event_date) AS day_count
FROM
`analytics_303756479.events_*`
▽結果
日ごとのページビュー数を取得
SELECT
event_date AS hitdate,
COUNT(1) AS pageviews
FROM
`analytics_303756479.events_*`
WHERE
_TABLE_SUFFIX BETWEEN '20220510' AND '20220512'
AND event_name = 'page_view'
GROUP BY 1
ORDER BY 1
▽結果
URLごとのページビュー数を取得
SELECT
(SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'page_location') AS page_location,
COUNT(1) AS pageviews
FROM
`analytics_303756479.events_*`
WHERE
_TABLE_SUFFIX BETWEEN '20220510' AND '20220512'
AND event_name = 'page_view'
GROUP BY 1
ORDER BY 2 DESC
▽結果
event_paramsは、入れ子のデータ形式(RECORD型:ヘルプ)になっているので、UNNEST演算子(ヘルプ)を用いて、RECORD型をフラットにする必要があります。
ちょっとここがややこしいですね…。
ひごとのセッション数を取得
WITH
t1 AS(
SELECT
event_date AS hitdate,
CONCAT(user_pseudo_id, CAST((SELECT value.int_value FROM UNNEST(event_params) WHERE key = 'ga_session_id') as STRING)) AS sid,
FROM
`analytics_303756479.events_*`
WHERE
_TABLE_SUFFIX BETWEEN '20220510' AND '20220512'
AND event_name = 'session_start' )
SELECT
hitdate,
COUNT(DISTINCT sid) AS sessions
FROM t1
GROUP BY 1
ORDER BY 1
▽結果
日ごとのユーザー数を取得する
SELECT
event_date AS hitdate,
COUNT(DISTINCT user_pseudo_id) AS users
FROM
`analytics_303756479.events_*`
WHERE
_TABLE_SUFFIX BETWEEN '20220510' AND '20220512'
AND event_name = 'session_start'
GROUP BY 1
ORDER BY 1
▽結果
サイト内検索ワードを取得する
SELECT
(SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'search_term') AS int_search_term,
COUNT(1) AS int_search
FROM
`analytics_303756479.events_*`
WHERE
_TABLE_SUFFIX BETWEEN '20220510' and '20220512'
AND event_name = 'view_search_results'
GROUP BY 1
ORDER BY 2 DESC
▽結果
その他のクエリ記述例
以下のヘルプをご覧ください。
» ヘルプ
以上、クエリの記述例でした。
参考:BigQueryのGA4データをLooker Studio(旧:Googleデータポータル)で可視化する方法

参考までに、BigQueryにエクスポートしたGA4データを、Looker Studio(旧:Googleデータポータル)で可視化する方法を解説します。
注:Googleデータポータルは、2022年10月に、Looker Studioに名称が変わりました。
(Google公式サイト)
Looker Studioにログインし、[作成] > [データソース]をクリックします。
[BigQuery]をクリックします。
[承認]をクリックします。
GA4と連携済のBigQueryのプロジェクトを選択して、画面右上の[接続]を押下します。
連携したBigQueryのデータソースに含まれるフィールドの一覧が表示されます。
以上で、Looker StudioとBigQueryの接続は完了です。
画面右上の[レポートを作成]をクリックします。
[レポートに追加]をクリックします。
以下のような画面が表示されます。
この後は、可視化の手段とディメンション、指標を選ぶことで、簡単にデータをビジュアライゼーションできます。
Looker Studioの使い方については、以下を参考にしてください。
» Looker Studio(旧:Googleデータポータル)の使い方|GAレポートを作ろう
まとめ:BigQueryを使うと分析の幅が広がる

BigQueryの導入手順や使い方を解説しました。
GA4では、BigQueryの利用が無料になったので、利用者も増えてるでしょう。
BigQueryを使うと、GA4のレポート画面に表示される元のデータを取得できるので、
別のデータと統合したり、
別のシステムで表示したり、
が可能になり、分析の幅が広がります。
BigQueryを活用してみたい方は、本記事を参考にしてください。
なお、GA4のその他の記事は以下をご覧ください。
» Googleアナリティクス4(GA4)習得への完全マップ
また、SEOに関する記事は以下にまとめてますので、参考にどうぞ。
» 【ブロガー向け】SEO対策の完全マップ
今回は以上です。