
BigQuery(ビッグクエリ)とデータポータル(英語名:Data Studio、旧称:Looker Studio)を連携すると、Google Analytics4(GA4)やGoogle Search Console(サーチコンソール)、スプレッドシートなどのデータをBigQueryで集約・加工し、その結果をデータポータルで可視化できます。
複数のデータを組み合わせた分析や、長期間のデータ保持、レポート作成の効率化を実現したい場合に役立つ組み合わせです。
一方で、「自社に導入する必要があるのか」「どうやって連携すればよいのか」「料金はどれくらいかかるのか」と疑問を持つ方もいるでしょう。
本記事では、BigQueryとデータポータルの連携で解決できることと、導入が向いているケースを整理します。そのうえで、GA4・Search Console・スプレッドシートそれぞれの連携手順を、実際の操作画面をもとに解説します。あわせて、BigQueryの費用を抑えるための対策も紹介します。
※2026年4月に、Looker Studioの名称はData Studioに変わりました。日本語表記はデータポータルとなります。
※本記事の内容は2026年10月時点の情報です。画面構成や仕様、料金は変更される場合があるため、最新の情報はアナリティクス ヘルプやBigQueryの料金ページなどGoogleの公式サイトでご確認ください。
目次
BigQueryとデータポータルとは
BigQueryとデータポータルは、いずれもGoogleが提供するツールで、担う役割が異なります。それぞれの特徴を理解したうえで、両者を組み合わせる流れを把握しておきましょう。

| 名称 | 機能 |
| BigQuery | 大量データを保存・加工・集計するデータプラットフォーム |
| データポータル | データをグラフや表で可視化できるBI(ビジネスインテリジェンス)ツール |
BigQueryとは
BigQueryは、Googleが提供するクラウド型のデータウェアハウス(DWH)です。
GA4の未加工イベントデータやGoogle Search Consoleのパフォーマンスデータなど、膨大な量のデータを保存・分析できます。
SQL(データベース言語)を使って、データの抽出や集計ができるほか、複数のデータソースを組み合わせた分析も可能です。
BigQueryの料金は、データを保存しておく量にかかる「ストレージ料金」と、SQLの実行時に処理したデータ量にかかる「クエリ料金」の2つに分かれます。無料枠があり、ストレージが毎月10GiBまで、クエリが毎月1TiBまでです。
サーバー管理が不要で、利用量に応じた料金体系のため、小規模から導入しやすい点が特徴です。
※参考記事:オンデマンドコンピューティング料金 – BigQueryの料金
データポータルとは
データポータルは、Googleが提供するBIツール(※)です。
※BIツール(ビジネスインテリジェンスツール):
膨大なデータを収集・統合・可視化し、データをもとにした意思決定を支援するソフトウェアのこと
BigQueryを含む複数のデータソースに接続でき、グラフや表を組み合わせたダッシュボードを作成し、チームで共有できます。Googleアカウントがあれば、基本機能は無料で利用可能です。
BigQuery×データポータルで解決できること
データポータルには、GA4・Search Console・スプレッドシートを直接接続できます。設定が手軽なため、この方法でレポートを運用している方も多いでしょう。
ただし、データ量や分析範囲が広がると、直接接続では次の5つの課題が生じやすくなります。
| 直接接続で困ること | BigQuery経由で解決できること |
| GA4コネクタはAPIの 割り当て上限の影響を受ける | BigQuery上のテーブルを参照するため、 GA4のAPI割り当てに左右されない |
| 大規模・複雑な集計では サンプリングが発生する場合がある | 未サンプリングのイベントデータを使って 集計できる |
| サービスによっては、 データを参照できる期間に制限がある (例:Search Consoleは過去16か月分) | エクスポートを設定すると、 データがBigQueryに自動で蓄積され、 長期間の推移を分析できる |
| 「統合」機能では 複数ソースの結合に制約がある | SQLで複数データソースを柔軟に結合できる |
| データ量が増えると ダッシュボードの表示が遅くなることがある | 事前集計した中間テーブルを使って 表示速度を改善できる |
BigQueryにデータを集約し、SQLで加工・集計してからデータポータルに接続する構成にすると、これらの課題を解消しやすくなります。
BigQueryとデータポータル連携が向いているケース
BigQueryとの連携が、どのケースでも効果的とは限りません。
連携にはSQLの知識や初期設定の工数がかかります。直接接続で必要なレポートを作成できている場合は、工数に見合う効果が得られないこともあります。
次の3点に当てはまるかどうかが、導入を検討する際の目安になります。
| 判断のポイント | 連携がおすすめ | 直接接続で対応可能 |
| 分析の課題 | データの取得上限や保存期間、 結合の制約で必要な分析ができていない | 直接接続で 必要なレポートが作成できている |
| 社内の体制 | SQLを扱える人材がいる、 または外部に支援を依頼できる | SQLを扱える人材がいない。 外部依頼も難しい |
| 利用規模と費用 | 費用が発生しても、 分析の自動化や効率化が見合う | 分析の頻度が低く、 手作業の集計で足りている |
判断のポイントをくわしく解説します。
1. 直接接続で必要な分析ができているか
最初に確認したいのは、前章で挙げた5つの課題が実際に起きているかどうかです。
複数のデータソースを結合したい、長い期間で推移を追いたいなどのニーズがある場合は、BigQueryを活用するメリットが大きくなります。一方、データポータルへの直接接続で必要な分析ができているならば、BigQueryを導入する必要性は高くありません。
2.SQLを扱える体制があるか
BigQueryでデータを柔軟に加工・集計するには、SQL(データベースを操作するための言語)の知識が求められます。データを取り込むだけであれば簡単な操作で済みますが、中間テーブルの作成や複数データソースの結合分析にはSQLのスキルが必要です。
社内にSQLを扱える人材がいない場合は、外部の専門家への依頼も一つの選択肢になります。データ分析やBI構築に詳しい専門家や、BIツール構築の支援サービスを提供する会社に相談すると、初期構築を代行してもらえます。長期的には社内での内製化を目指しながら、まずは初期設定だけ外部に依頼するアプローチも有効です。
3.費用対効果が合うか
費用対効果を考える際は、BigQueryの利用料金に加えて、SQLの学習や初期設定、運用にかかる工数も費用に含め、得られる効果と比べて判断します。
小〜中規模のサイトで無料枠の範囲内に収まる利用量であれば、利用料金はほとんどかかりません。一方、大容量のデータを頻繁に処理する場合は、クエリ料金が増える点に注意が必要です。最新の料金は以下のページを参照してください。
※参考記事:Google CloudのBigQuery料金ページ
こうした費用に見合うかどうかは、データの使い方によって変わります。分析の頻度が低く、手作業の集計で足りている場合、BigQueryの導入は過剰になりがちです。
反対に、定期的なレポート作成を自動化したり、複数データの結合分析で作業を効率化したりできる場合は、BigQueryを導入する価値があります。
\BigQueryやデータポータルの連携・分析を専門家がサポート/
【GA4編】BigQueryとデータポータルの連携手順
ここからは、GA4・Search Console・スプレッドシートのデータ別に、BigQueryとデータポータルの連携手順を解説します。
まずは、GA4のデータを使った連携です。GA4のデータをBigQueryに取り込み、データポータルでアクセス集計表を作成するまでを、次の3ステップで進めます。
- GA4のデータをBigQueryに取り込む
- 中間テーブルを作成する
- データポータルでアクセス集計表を作成する
GA4・Search ConsoleともにBigQueryに蓄積されるのは、エクスポートを設定した日以降のデータです。
たとえば2026年1月に設定した場合、2025年以前のデータはBigQueryで分析できません。
過去の集計データが必要な場合は、GA4のレポートをCSVでエクスポートするなど、別の方法を検討してください。連携設定は、できる限り早く完了させることをおすすめします。
1. GA4のデータをBigQueryに取り込む
最初に、GA4からBigQueryへのエクスポートを設定します。エクスポートは、GA4管理画面の「BigQueryのリンク」機能で行います。手順は次のとおりです。
- Google Cloudプロジェクトを作成する
- 作成したプロジェクトでBigQuery APIを有効にする
- GA4管理画面の「BigQueryのリンク」から、作成したプロジェクトとリンクする
設定が完了すると、GA4のイベントデータがBigQueryに自動でエクスポートされます。日次エクスポートの場合、データは1日ごとに「events_YYYYMMDD」という名前のテーブルに保存されます。
エクスポート機能自体は無料です。ただし、BigQueryでのデータの保存やクエリには、利用量に応じて料金が発生します(無料枠については前章を参照)。

詳細な設定方法は以下の記事で解説しています。
※関連記事:GA4とBigQueryの連携方法をくわしく解説。メリットや注意点とは?
2. 中間テーブルを作成する
続いて、中間テーブルを作成します。
中間テーブルとは、生データから必要な項目を抽出・集計して保存したテーブルです。
GA4からBigQueryへエクスポートされたデータには、ページビューをはじめとするさまざまなイベントや項目が含まれています。コストと表示速度改善のため、SQLを使って必要なデータを抽出・集計した「中間テーブル」が必要なのです。
ここでは、「ページ別・日別のアクセス集計」をデータポータルに表示する場合を例に、中間テーブル作成の手順を説明します。
- BigQueryでGA4のデータを確認する
- クエリエディタを開き、IDを確認する
- SQLを入力する
- SQLを実行して結果を確認する
- 結果をテーブルとして保存する
2-1.BigQueryでGA4のデータを確認する
まずはGoogle CloudのBigQueryのページを開きます。
左側のエクスプローラから対象のプロジェクトIDを選択し、その中にあるGA4のデータセットをクリックします。

日付ごとのテーブルIDが表示されます。

テーブルIDをクリックし、「プレビュー」タブに切り替えると、その日に記録されたイベントデータを確認できます。

2-2.クエリエディタを開き、IDを確認する
「クエリ」をクリックすると、クエリエディタが表示されます。

クエリエディタのFROM句には、次のような形式で表示されます。
プロジェクトID.データセットID.テーブル名
GA4のデータの場合は、たとえば次のようになります。
example-project.analytics_123456789.events_20260928
| 部分 | 例 | 内容 |
| プロジェクトID | example-project. | Google Cloudのプロジェクトを識別するID |
| データセットID | analytics_123456789. | GA4のデータが保存されているデータセット。「analytics_」のあとにGA4のプロパティIDが入る |
| テーブル名 | events_20260928 | 1日分のイベントデータが入ったテーブル。末尾の数字は日付(YYYYMMDD) |
2-3.SQLを入力する
クエリエディタの内容を以下のSQLに置き換えます。
そのうえで、FROM句の「プロジェクトID」と「データセットID」を、2-2.で確認したIDに書き換えます。
SELECT
-- event_date は文字列(YYYYMMDD)なので DATE 型に変換
PARSE_DATE('%Y%m%d', event_date) AS event_date,
-- ページURLの抽出(event_params配列からpage_locationを取り出す)
(
SELECT value.string_value
FROM UNNEST(event_params)
WHERE key = 'page_location'
) AS page_url,
-- ページビュー数のカウント
COUNT(*) AS page_views,
-- ユーザー数のカウント(user_pseudo_idの重複を除いた数)
COUNT(DISTINCT user_pseudo_id) AS total_users
FROM
`プロジェクトID.データセットID.events_*`
WHERE
-- 対象期間を絞り込む(開始日と終了日を集計したい期間に書き換える)
_TABLE_SUFFIX BETWEEN '20260101' AND '20260131'
-- ページビューイベントのみに絞り込み
AND event_name = 'page_view'
GROUP BY
event_date,
page_url
2-4.SQLを実行して結果を確認する
「実行」ボタンをクリックすると、SQLによる抽出が始まり、画面下部に結果が表示されます。

2-5.結果をテーブルとして保存する
2-4.で表示された結果を、BigQueryのテーブルとして保存します。結果画面の「結果を保存」をクリックし、保存形式から「BigQueryテーブル」を選択します。

設定画面で次の項目を設定し、「保存」をクリックします。

| 項目 | 設定内容 |
| プロジェクト | 変更不要 |
| データセット | FROM句で指定したデータセットIDを選択 |
| テーブル | 任意の名前を入力(例:ga4_page_summary_daily) |
以上で、中間テーブルは作成完了です。
SQLは「ビュー」として保存することもできます。ビューは集計結果そのものを保存しないため、データポータルで表示するたびに元のGA4データを読み込み、集計し直します。手軽に作れて常に最新のデータを反映できる一方、データ量が多いと表示速度やクエリ費用に影響します。
テーブルとして保存すると、集計済みのデータを参照するため、表示が速くなり、クエリ費用も抑えられます。データ量が無料枠に収まる小規模サイトや、常に最新のデータが必要な場合はビュー、それ以外はテーブルと使い分けるのが目安です。
3. データポータルでアクセス集計表を作成する
データポータルのBigQueryコネクタを使い、作成した中間テーブルをデータソースとして接続します。さらに実践として、「ページ別・日別のアクセス集計」の表を作成してみましょう。
手順は次のとおりです。
- レポートを新規作成する
- 中間テーブルをデータソースとして追加する
- 表を作成する
- 表の並び順を設定する
3-1.レポートを新規作成する
データポータルを開き、画面左上の「作成」から「レポート」をクリックします。

初めて利用する際などは、「データポータルAPI」の承認を求められる場合があります。画面の案内に沿って、「続行」をクリックします。

3-2.中間テーブルをデータソースとして追加する
データソースの一覧から、「BigQuery」を選択します。

次の3つを順番に選択し「追加」ボタンをクリックします。
| 項目 | 選択内容 |
| プロジェクト名 | 中間テーブルを保存したプロジェクト |
| データセット名 | 中間テーブルを保存したデータセット |
| テーブル名 | 2-5.でつけたテーブル名(例:ga4_page_summary_daily) |

以上で、データポータルへの接続は完了です。
データポータルからBigQueryのデータに接続しようとした際、「権限が不足しています」と表示されることがあります。その際は、ログインしているGoogleアカウントに、BigQueryを利用するための権限が付与されているかを確認してください。
データポータルでBigQueryのデータを可視化するには、原則として次の2つのロールが必要です。
・BigQueryデータ閲覧者(テーブルのデータを読み取る)
・BigQueryジョブユーザー(プロジェクト内でクエリを実行する)
Google Cloudコンソールの「IAMと管理」→「IAM」から、データポータルで接続に使うアカウントに付与しましょう。
3-3.表を作成する
では、接続した中間テーブルを使って、ページ別・日別のアクセス集計表を作成します。
「グラフを追加」から「表」を選択し、画面中央の任意の場所をクリックすると、表が配置されます。


表を選択した状態で、画面右の設定パネルから表示するデータを設定します。
「データ」一覧にある項目を、「ディメンション」または「指標」にドラッグして配置します。
| 配置先 | 項目 |
| ディメンション | event_date, page_url |
| 指標 | page_views |

指標に「Record Count」が設定されている場合は、カーソルを合わせると表示される「×」印をクリックして削除します。
以下の画像の状態になっていれば、作成完了です。

3-4.表の並び順を設定する
日付順に並べる場合は、設定パネルの「並べ替え」で「event_date」を選択し、「昇順」または「降順」を指定します。

さらにページビュー数でも並べ替える場合は、「並べ替えを追加」をクリックし、「page_views」を追加します。

同じ日付の中でページビュー数の多い順に並べると、以下のような表になります。

BigQueryで作成する中間テーブルの内容を変更すれば、目的に応じたさまざまなデータをデータポータルで可視化できます。
※参考動画:Looker Studio(データポータル)の使い方を1から解説|GA4・スプレッドシート連携で作るダッシュボード
\GA4とBig Queryの連携・分析を専門家がサポート/
【Search Console編】BigQueryとデータポータルの連携手順
続いては、Search Consoleのデータを用いた連携です。

今回は、Search ConsoleのデータをBigQueryに取り込み、データポータルで検索クエリの分析表を作成するまでを例に解説します。次の手順で進めます。
- Search ConsoleのデータをBigQueryに取り込む
- 中間テーブルを作成する
- データポータルで検索クエリの分析表を作成する
1. Search ConsoleのデータをBigQueryに取り込む
Search ConsoleのデータをBigQueryに取り込むには、Search Consoleの「一括データエクスポート」機能を使います。
設定は、Google Cloudコンソールでの準備と、Search Consoleでのエクスポート設定の2段階です。手順は次のとおりです。
- Google Cloudプロジェクトを準備する
- BigQuery関連のAPIを有効にする
- Search Consoleに書き込み権限を付与する
- Search Consoleで一括データエクスポートを設定する
1-1.Google Cloudプロジェクトを準備する
まずGoogle Cloudコンソールにアクセスし、Search Consoleのデータを管理するプロジェクトを選択します。

新しいプロジェクトを作成する場合は「プロジェクト選択」メニューから「新しいプロジェクト」を選択してください。

プロジェクト名を入力して、作成します。画面に表示される「プロジェクトID」は、手順1−4のSearch Console側の設定で使用するため、正確に控えておきます。

プロジェクトIDは、あとから変更できません(プロジェクト名は変更できる)。他の人が見ても、用途が分かる名称にしておくと安心です。
組織のルールにもよりますが、GA4とSearch Consoleのデータは、同じプロジェクトに格納する構成がよく見られます。
例:
ミエルカのプロジェクト
├─ GA4のデータ
└─ Search Consoleのデータ
Faberのプロジェクト
├─ GA4のデータ
└─ Search Consoleのデータ
1-2. BigQuery関連のAPIを有効にする
サイドバーの「APIとサービス」から「有効なAPIとサービス」を開き、「APIとサービスを有効化する」をクリックします。


「BigQuery API」と「BigQuery Storage API」の2つを検索し、それぞれを有効化します。「APIが有効です」の表示になっていれば有効化が完了です。


1−3.Search Consoleに書き込み権限を付与する
Search Consoleがプロジェクトにデータを書き込みできるよう、Search Console専用のサービスアカウントに権限を付与します。
サイドバーの「IAMと管理」を開き、「アクセスを許可」をクリックします。


「新しいプリンシパル」の入力欄に、次のサービスアカウント名を入力します(書き換えずに、そのままコピーして貼り付けてください)。
search-console-data-export@system.gserviceaccount.com
このアカウントは、Search Consoleがデータを書き込むためにGoogleが用意しているもので、新たに作成する必要はありません。

「ロールを割り当てる」から、以下の2つを選択し、「保存」をクリックします。
- BigQuery ジョブユーザー
- BigQuery データ編集者
1-4. Search Consoleで一括データエクスポートを設定する
Search Consoleを開き、対象プロパティの「設定」から「一括データ エクスポート」を開きます。

次の3項目を設定します
| 項目 | 設定内容 |
| CloudプロジェクトID | 1-1.で控えたプロジェクトID |
| データセット名 | サイトを識別できる名前(1つのプロジェクトに複数サイトのデータを保存できるため、サイトごとに分けると管理しやすくなる) |
| データセットの場所 | 社内のセキュリティポリシーに沿って選択 |

設定内容を確認し、「続行」をクリックして、画面の案内に沿って一括データエクスポートの設定を完了します。

設定が正常に完了すると、Search ConsoleのパフォーマンスデータがBigQueryへ日次で自動的にエクスポートされます。最初のエクスポートは48時間以内に行われます。
BigQueryでは、データセットごとに保存場所(ロケーション)を指定します。場所が異なるデータセットのテーブル同士は、原則として1つのクエリで結合(JOIN)できません。
たとえば、次のような状態だと、2つのデータを1つのクエリで突き合わせることができません。
・スプレッドシートの記事一覧を取り込んだデータセット:東京リージョン
・Search Consoleのエクスポート先:USリージョン
一方のデータを、もう一方と同じリージョンにコピーすれば結合できるようになります。しかし、リージョンをまたいでデータを移動するため、ネットワーク転送費用が発生します。コピーは一度で終わらず、データが更新されるたびに必要になるため、分析の手間と費用が継続的にかかります。
Search Consoleのデータを、GA4やスプレッドシートなどほかのデータと組み合わせて分析する予定がある場合は、エクスポートを設定する前に、それらのデータセットの場所を確認し、同じ場所を選択しておくと安心です。
※参考記事:Search Consoleヘルプ「新しい一括データのエクスポートを開始する」
2. 中間テーブルを作成する
Search ConsoleからBigQueryへ一括エクスポートすると、検索パフォーマンスのデータが「サイト単位」と「URL単位」のテーブルに保存されます。SQLを使うことで、日付や検索クエリ、URLなど、分析したい切り口に合わせてデータを抽出・集計できます。
ここでは例として、「検索クエリごとのクリック数・表示回数・CTR・平均掲載順位」を日別に確認できる表をデータポータルに作成します。
そのための中間テーブルは、次の手順で構築します。
- BigQueryでSearch Consoleのデータを確認する
- クエリエディタを開き、IDを確認する
- SQLを入力する
- SQLを実行して結果を確認する
- 結果をテーブルとして保存する
2-1.BigQueryでSearch Consoleのデータを確認する
Google CloudのBigQueryのページを開きます。
左側のエクスプローラから、エクスポート先のプロジェクトIDをクリックし、Search Consoleのデータセットを開きます。

データセット内のテーブル(例:searchdata_site_impression)をクリックすると、テーブルに含まれるフィールド名の一覧が表示されます。

2-2.クエリエディタを開き、IDを確認する
「クエリ」をクリックすると、クエリエディタが開きます。エディタに表示されたSQLのFROM句から、「プロジェクトID」と「データセットID」を確認し、控えておきます。

2-3.SQLを入力する
クエリエディタの内容を、以下のSQLに置き換えます。
そのうえで、FROM句の「プロジェクトID」と「データセットID」を、2-2.で確認したIDに書き換えます。
SELECT
data_date,
query,
SUM(clicks) AS clicks,
SUM(impressions) AS impressions,
SAFE_DIVIDE(SUM(clicks), SUM(impressions)) AS ctr,
SAFE_DIVIDE(SUM(sum_top_position), SUM(impressions)) + 1 AS avg_position
FROM
`プロジェクトID.データセットID.searchdata_site_impression`
WHERE
-- 対象期間を絞り込む(開始日と終了日を集計したい期間に書き換える)
data_date BETWEEN '2026-08-01' AND '2026-08-31'
AND search_type = 'WEB'
AND is_anonymized_query = FALSE
AND query != ''
GROUP BY
data_date,
query
ORDER BY
clicks DESC,
data_date ASC
2-4.SQLを実行して結果を確認する
「実行」ボタンをクリックすると、集計結果が画面下部に表示されます。

2-5.結果をテーブルとして保存する
結果画面の「結果を保存」をクリックします。

出てきた保存形式一覧の中から「BigQueryテーブル」を選択しましょう。

設定画面で以下の項目を設定し、「保存」をクリックします。

| 項目 | 設定内容 |
| プロジェクト | 変更不要 |
| データセット | SQL文のFROM句で指定したデータセットIDを選択 |
| テーブル | 任意の名前をつける(例:gsc_query_summary_daily) |
以上で、検索クエリごとのクリック数・表示回数・CTR・平均掲載順位を日別に集計する中間テーブルの作成は完了です。
3. データポータルで検索クエリの分析表を作成する
前のステップで作成した中間テーブルをデータポータルに接続し、検索クエリごとのクリック数・表示回数・CTR・掲載順位を確認できる表を作成します。
手順は次の通りです。
- レポートを新規作成する
- 中間テーブルをデータソースとして追加する
- 日別・検索クエリ別の表を作成する
- 表の並び順を設定する
- 表示する期間を変更する
- 特定の検索クエリに絞り込めるようにする
3-1.レポートを新規作成する
データポータルのWebサイトを開き、画面左上の「作成」から「レポート」をクリックします。

初めて利用する場合、「データポータルAPI」の承認を求められることがあります。画面の案内に従って「続行」をクリックします。

3-2.中間テーブルをデータソースとして追加する
データソースの一覧から、「BigQuery」をクリックします。

次の3つを順番に選択し「追加」ボタンを押します。
| 項目 | 選択内容 |
| プロジェクト | 中間テーブルを保存したプロジェクト |
| データセット | 中間テーブルを保存したデータセット名 |
| テーブル | 2-5.で付けたテーブル名(例:gsc_query_summary_daily) |

3-3.日別・検索クエリ別の表を作成する
「グラフを追加」から「表」を選択し、画面中央の白いエリアをクリックすると、表が配置されます。


表をクリックすると、画面右に設定パネルが表示されます。「データ」一覧にある項目を、「ディメンション」または「指標」にドラッグして配置します。
| 配置先 | 項目 |
| ディメンション | data_date,query |
| 指標 | clicks,impressions,ctr,avg_position |

指標に「Record Count」が設定されている場合は、カーソルを合わせて表示される「×」をクリックして削除します。
3-4.表の並び順を設定する
設定パネルの「並べ替え」で「data_date」を選択し、「昇順」または「降順」を指定します。

さらに「並べ替えを追加」から「impressions」を追加して「降順」にすると、同じ日付の中で表示回数の多い順に並びます。

3-5.表示する期間を変更する
画面上部の「コントロールを追加」をクリックし、「期間設定」を選択し、表の上など操作しやすい位置に配置します。


期間設定を選んだ状態で、画面右側のプロパティから「デフォルトの期間」を設定できます。閲覧時には、カレンダーから開始日と終了日を選ぶと、表示する期間を変更できます。

なお、選択できるのは、2-3.のSQLで指定した期間の範囲内です。デフォルトの期間も、その範囲に収まるように設定します(範囲外の期間を選ぶと、表にデータが表示されません)。

3-6.特定の検索クエリに絞り込めるようにする
特定の文字列を含む検索クエリだけを確認したい場合は、「高度なフィルタ」を追加します。画面上部の「コントロールを追加」から「高度なフィルタ」を選択し、表の近くに配置します。

フィルタをクリックし、画面右の設定で「コントロール フィールド」に「query」を指定します。はじめから「query」が入っていれば、変更は不要です。

たとえば「bigquery」を含むクエリだけを表示するには、入力欄に「bigquery」と入れ、条件を「次を含む」にします。狙ったキーワードの流入状況を日別に確認するときに役立ちます。
今回は、サイト全体の流入クエリを分析する表を作成しました。ページ単位で分析したい場合は、Search Consoleの「searchdata_url_impression」テーブルを利用してURL単位のデータを集計すると、ページごとのクリック数や表示回数を可視化できます。
\Search Consoleの連携・分析を専門家がサポート/
【スプレッドシート編】BigQueryとデータポータルの連携手順
最後に、GoogleスプレッドシートのデータをBigQueryとデータポータルで活用する手順を解説します。

ここでは、スプレッドシート・BigQuery・データポータルの連携の流れをシンプルに解説するため、スプレッドシート単体のデータを例にします。
次のような記事管理用のスプレッドシートから、「ステータス」列が「執筆中」になっている行のみを抽出し、データポータルに表示します。

次の手順で進めます。
- スプレッドシートのデータをBigQueryに取り込む
- 抽出用のビューを作成する
- データポータルで記事一覧表を作成する
Google Cloudプロジェクトは、GA4やSearch Consoleの連携ですでに作成したものを利用します。まだプロジェクトを作成していない場合は、 「Search ConsoleのデータをBigQueryに取り込む」の1-1.を参考に進めてください。
目的によっては、必ずしもBigQueryを経由する必要はありません。たとえば、スプレッドシートのデータを単体でグラフや表にしたり、簡単な集計をしたりする場合は、データポータルに直接接続する方法が手軽です。
一方、スプレッドシートで管理している情報(広告費、目標値、商談の結果など)を、GA4やSearch Consoleのデータと突き合わせて分析したい場合は、BigQueryを経由する方法がおすすめです。
1. スプレッドシートのデータをBigQueryに取り込む
スプレッドシートのデータは、BigQueryの「外部テーブル」機能を使って取り込みます。
外部テーブルとは、スプレッドシートのデータをBigQuery内へ複製せず、元のシートを直接参照する仕組みです。スプレッドシートを更新すると、次回にクエリを実行したときに更新後のデータが使われます。
外部テーブルを作成しておけば、GA4やSearch Consoleの中間テーブルとSQLで結合できるようになります。
手順は次のとおりです。
- 外部テーブルの作成画面を開く
- 参照するスプレッドシートと作成先を指定する
- スキーマを設定する
- テーブルを作成する
1-1.外部テーブルの作成画面を開く
Google CloudのBigQueryを開きます。左側のエクスプローラから「データを追加」をクリックします。

データソース一覧の中から「スプレッドシート」を選択し、続いて「BigQueryフェデレーション」を選びます。


1-2.参照するスプレッドシートと作成先を指定する
テーブル作成画面で、次の情報を入力・設定します。
| 項目 | 入力内容 |
| ドライブのURLを選択 | 参照するスプレッドシートのURL |
| シート範囲 | 対象のシート名と対象セル範囲(例:記事一覧!A1:D100) |
| データセット | 外部テーブルを作成するデータセット |
| テーブル | 外部テーブルの名前(スプレッドシートの内容が分かる名前にすると管理しやすい) |

データセットは、既存のものを選ぶか、「新しいデータセットの作成」から新しく作成します。
新しく作成する場合は、「データセットID」と「データセットのロケーション」を入力し、「データセットを作成」をクリックします。



GA4やSearch Consoleのデータと組み合わせて分析する場合は、それらのデータセットと同じロケーションを選択します(「データセットの場所は、ほかのデータと揃えておく」のコラムを参照)。
1-3.スキーマを設定する
スキーマとは、テーブルにどのような列があり、それぞれをどのデータ型として扱うかを定義するものです。
自動検出を利用することもできますが、列ごとのデータ型を確実に指定したい場合は、手動で設定します。
「フィールドを追加」をクリックし、スプレッドシートの各列に対応するフィールド名とデータ型を入力します。今回の例では、次のように設定します。
| スプレッドシートの列 | フィールド名 | データ型 |
| 記事タイトル | title | STRING(文字列) |
| URL | url | STRING(文字列) |
| ステータス | status | STRING(文字列) |
| 締め切り | deadline | DATE(日付) |

フィールド名は、後ほどSQLを書く際にも使います。「title」「url」「status」のように半角英数字やアンダースコアを使った分かりやすい名前にしておくと便利です。
データ型は、列の値に合わせて選択します。おもなデータ型は次のとおりです。
| データ型 | 用途 |
| STRING | 文字列 |
| INTEGER | 整数 |
| FLOAT | 小数を含む数値 |
| DATE | 日付 |
| TIME | 時刻 |
スプレッドシートの1行目がヘッダー行の場合は、テーブル作成画面の下部にある「詳細オプション」を開き、「スキップするヘッダー行」に「1」を入力します。
設定しないと、見出し行もデータとして読み込まれてしまい、SQLを実行した際にエラーが発生する原因になります。
1-4.テーブルを作成する
すべての設定が完了したら、最下部の「テーブルを作成」をクリックします。Googleドライブへのアクセス許可を求められた場合は、画面の案内に従って許可します。
2. 抽出用のビューを作成する
手順は次のとおりです。
- クエリエディタを開き、IDを確認する
- SQLを入力する
- SQLを実行して結果を確認する
- ビューとして保存する
2-1.クエリエディタを開き、IDを確認する
エクスプローラから、前の手順(1-2.)で作成したデータセットを開き、作成した外部テーブルを選択します。


「クエリ」をクリックすると、クエリエディタが表示されます。

エディタに表示されたSQLのFROM句から、「プロジェクトID」「データセットID」「テーブル名」を確認し、控えておきます。

2−2.SQLを入力する
クエリエディタの内容を以下のSQLに置き換えます。
そのうえで、FROM句の「プロジェクトID」「データセットID」「テーブル名」を、2-1.で確認した値に書き換えます。
SELECT
*
FROM
`プロジェクトID.データセットID.テーブル名`
WHERE
status = '執筆中'
ORDER BY
deadline ASC
SQL文で抽出条件を表現する際には、先ほどスキーマの設定で指定したフィールド名を使います。今回はWHERE句とORDER BY句で、それぞれstatusとdeadlineというフィールド名を使って、列の指定を行っています。
2-3.SQLを実行して結果を確認する
「実行」をクリックするとSQLが実行され、画面下部に抽出結果が表示されます。

2-4.ビューとして保存する
画面上部の「保存」から「ビューを保存」を選択します。データセットは1-2.と同じものを選び、「テーブル」に任意の名前(例:writing_now_articles)を入力して「保存」をクリックします。


GA4やSearch Consoleの例では、表示速度と費用を抑えるため、結果をテーブルとして保存しました。スプレッドシートの例は、ビューとして保存しています。
ビューは参照されるたびにSQLを実行するため、スプレッドシートを更新すると、その内容がデータポータルにも反映されます。記事管理表のようにデータ量が小さく、常に最新の状態を確認したい用途では、ビューが適しています。
3. データポータルで記事一覧表を作成する
前のステップで保存したビューをデータポータルへ接続し、「執筆中」の記事一覧を表にします。
手順は次のとおりです。
- ビューをデータソースとして追加する
- 表を作成する
- 表の並び順を設定する
3-1.ビューをデータソースとして追加する
データポータルで新しいレポートを作成し、データソースとして「BigQuery」を選択します。操作は「データポータルで検索クエリの分析表を作成する」の3-1.3-2.と同じです。
次の3つを選択し、「追加」をクリックします。
| 項目 | 選択内容 |
| プロジェクト | ビューを保存したプロジェクト |
| データセット | ビューを保存したデータセット |
| テーブル | 2-4.で付けたビューの名前(例:writing-now-articles) |

3-2.表を作成する
「グラフを追加」から「表」を選び、画面中央の白いエリアをクリックして表を配置します。

表を選択した状態で、画面右側の設定パネルを開きます。「title」「url」「status」「deadline」など、記事一覧に表示したい項目をディメンションに追加してください。
「Record Count」が指標に設定されている場合は、カーソルを合わせて表示される「×」をクリックして削除します。

3-3.表の並び順を設定する
締め切りが近い順に並べる場合は、設定パネルの「並べ替え」で「deadline」を選択し、「昇順」にします。

スプレッドシート側でステータスや期限を更新すると、外部テーブル経由でデータポータルの表にも反映されます。また、GA4やSearch Consoleの表と同じレポート内に配置すると、Webサイトへの流入状況とコンテンツの制作進捗を1つのダッシュボードとして確認できます。
\データ分析を専門家がサポート/
BigQueryのコスト増加を防ぐための注意点と対策
BigQueryのクエリ料金は、クエリで処理したデータ量に応じて料金が発生する従量課金制です。クエリの実行方法によっては想定以上に費用がかかる可能性があるため、注意が必要です。
ここでは、データポータルとBigQueryを組み合わせて利用する際に、クエリで処理するデータ量を抑えるための3つの対策を紹介します。
対策1:中間テーブル(集計済みデータ)を活用する
GA4の「events_YYYYMMDD」のような大量のイベントデータに対して、データポータルから繰り返し直接クエリを実行すると、処理するデータ量が大きくなる場合があります。そこで有効なのが、中間テーブルの活用です。
中間テーブルとは、生データから必要な項目だけを抽出し、日次や月次などの単位であらかじめ集計したテーブルです。例えば、以下の流れで作成します。
- SQLで生データから必要な項目を抽出・集計する
- 集計結果を専用の中間テーブルとして保存する
- データポータルの接続先を中間テーブルに変更する
データポータルから生データを毎回参照するのではなく、あらかじめ集計した小さなテーブルを参照することで、クエリで処理するデータ量を削減できます。同じ集計処理を繰り返し実行する場合、クエリ料金の削減だけでなく、レポートの表示速度の改善も期待できます。
対策2:キャッシュが利用できないクエリに注意する
BigQueryにはクエリ結果を一時的に保存するキャッシュ機能があります。同じクエリを2回以上実行した場合、参照元のデータなどに変更がなければ、保存された結果が再利用される場合があります。キャッシュされた結果が利用されたクエリでは、クエリ料金は発生しません。
ただし、すべてのクエリでキャッシュが利用されるわけではありません。
例えば、「今日」を取得する「CURRENT_DATE()」や、現在時刻を取得する「CURRENT_TIMESTAMP()」などの動的関数(実行するタイミングによって結果が変わる関数)を含むクエリでは、キャッシュされた結果は利用されません。
そのため、データポータルの表示期間を指定する目的だけで、SQLに「CURRENT_DATE()」などを直接組み込む場合は注意が必要です。このように不要な動的関数がないかをチェックするだけでも、コストを削減できる可能性があります。
対策3:フィルタの選択肢表示によるスキャンを抑える
データポータルのプルダウンフィルタでは、指定したディメンションの値が選択肢として表示されます。接続先が大量のデータを持つBigQueryテーブルの場合、選択肢を取得するための問い合わせでもデータが処理されます。
対策としては、フィルタ用の値だけをもつ軽量なマスタテーブルを別途用意する方法が有効です。
たとえば、チャネル名・地域名・コンテンツカテゴリなどの選択肢のみを格納した小さなテーブルを作成し、フィルタの接続先をそのマスタテーブルに変更します。これにより、プルダウンの選択肢を取得するために大きなメインテーブルを直接参照する必要がなくなり、処理するデータ量を抑えられる可能性があります。
まとめ:BigQueryとデータポータル連携で現状を詳しく&スムーズに分析しよう
BigQueryとデータポータルを連携させると、データポータルへの直接接続で起こるAPI上限の影響やサンプリングなどの課題を解消でき、柔軟な分析が可能になります。
本記事では以下の内容を解説しました。
- BigQueryとデータポータルの役割と連携のメリット
- GA4・SearchConsole・スプレッドシートの接続手順
- BigQueryのコスト増加を防ぐ3つの対策
BigQueryの設定・SQLによる加工・データポータルのダッシュボード構築まで、自社で一貫して進めるには相応の工数と専門知識が求められます。社内リソースに不安がある場合は、データ分析の支援サービスへの相談も選択肢の一つです。
「ミエルカSEOコンサルティング」では、データ分析コンサルから専門家の派遣まで対応しています。ぜひお気軽にお問い合わせください。






