【2026年最新】GA4とスプレッドシートを連携する3つの方法|初心者向け完全ガイド
「GA4のデータをスプレッドシートに自動で出力できないだろうか」「毎週のレポート作成に時間がかかりすぎる」とお悩みではありませんか?
GA4とGoogleスプレッドシートを連携すれば、アクセス解析データの収集からレポート作成まで自動化でき、週5時間以上の工数削減が可能です。本記事では、初心者でも5分で設定できる公式アドオンから、高度なカスタマイズが可能なGoogle Apps Scriptまで、3つの連携方法を画像付きで詳しく解説します。
この記事を読めば、あなたの業務に最適な連携方法が見つかり、データ分析業務を大幅に効率化できます。さっそく、GA4とスプレッドシート連携の具体的な手順を見ていきましょう。
目次
GA4とスプレッドシート連携でできること
GA4とスプレッドシートを連携すると、アクセス解析データの自動取得からレポート作成の自動化まで、データ分析業務を劇的に効率化できます。ここでは連携によって実現できる3つの主要な機能について解説します。
GA4データを自動でスプレッドシートに出力できる
GA4とスプレッドシートの連携により、ページビュー数、ユーザー数、コンバージョン率などの主要指標を自動でスプレッドシートに出力できます。
手動でのデータエクスポート作業が不要になり、毎日決まった時間に自動でデータを取得する設定も可能です。例えば、毎朝9時に前日のアクセスデータを自動取得し、チーム全体で最新データを共有できます。従来は週5時間かかっていたレポート作成作業が、自動化により週30分程度に短縮できるケースも少なくありません。
取得できる主要指標:
- ページビュー数(PV)
- ユニークユーザー数(UU)
- セッション数
- コンバージョン率(CVR)
- 直帰率
- 平均セッション時間
- 流入元別データ
- ページ別パフォーマンス
Looker Studioと組み合わせた高度な分析が可能
スプレッドシート経由でデータを加工することで、Looker Studioでは実現できない独自の分析やカスタマイズが可能になります。
GA4のデータをスプレッドシートに取り込んだ後、VLOOKUP関数やピボットテーブルで加工し、その結果をLooker Studioで可視化できます。例えば、BtoB企業では特定のサービスページの閲覧者が資料請求に至る確率を計算し、流入元別にROIを算出する分析が実現できます。スプレッドシートで計算式を追加することで、GA4単体では取得できない独自のKPIも作成可能です。
具体的な活用例:
- 複数のGA4プロパティのデータを統合
- 広告費データと組み合わせたROAS計算
- 目標値との比較分析
- 前年同期比の自動計算
- セグメント別の詳細分析
エクセルとの違い・スプレッドシート連携のメリット
スプレッドシートはエクセルと比較して、リアルタイム共有とクラウド上での自動実行が可能な点で大きく優れています。
エクセルでは誰かがファイルを開いていると編集できませんが、スプレッドシートは複数人が同時に編集でき、変更内容もリアルタイムで反映されます。Google Apps Script(GAS)を使えば、クラウド上で定期的にデータを自動取得する仕組みも構築できます。エクセルのVBAは個人のPC上でしか実行できませんが、GASはクラウド上で24時間365日稼働するため、深夜や休日でも自動でレポートを更新できます。
スプレッドシート連携の主なメリット:
- クラウド上での自動実行(PCを起動する必要なし)
- リアルタイムでのデータ共有
- バージョン履歴の自動保存
- 権限管理による閲覧制限
- 他のGoogleサービスとの連携
- デバイス問わずアクセス可能
GA4とスプレッドシート連携の3つの方法を比較
GA4とスプレッドシートの連携には、公式アドオン、Google Apps Script、有料ツールの3つの方法があります。それぞれの特徴を理解して、あなたの業務に最適な方法を選びましょう。
【方法1】GA4 Reports Builder(公式アドオン)
GA4 Reports BuilderはGoogleが提供する公式アドオンで、プログラミング知識がなくても5分で設定できる最も手軽な連携方法です。
画面上の操作だけでGA4のデータをスプレッドシートに取得でき、コードを書く必要が一切ありません。初めてGA4連携を試す方や、定型的なレポートを素早く作成したい方に最適です。ディメンションとメトリクスを選択するだけで、ページビュー数や流入元別のデータを簡単に取得できます。
メリット:
- ノーコードで設定可能(プログラミング不要)
- 5分程度で初回設定が完了
- Googleの公式ツールで安定性が高い
- 無料で利用可能
デメリット:
- 複雑なフィルター条件の設定が困難
- カスタマイズの自由度が低い
- 高度なデータ加工には不向き
推奨ユーザー:
- プログラミング経験がない方
- 定型レポートを素早く作成したい方
- まずは手軽に連携を試してみたい方
【方法2】Google Apps Script(GAS)
Google Apps ScriptはJavaScriptベースのプログラミング言語で、GA4 Data APIを直接操作して高度なデータ取得を実現できます。
複雑なフィルター条件の設定や、複数のGA4プロパティからのデータ統合など、アドオンでは実現できない柔軟なカスタマイズが可能です。30分〜1時間程度のコーディングが必要ですが、一度設定すれば完全自動化できます。特定ページのみを抽出したり、オーガニック流入だけを分析したりと、ビジネスニーズに合わせた細かい条件設定ができます。
メリット:
- 高度なフィルター条件を自由に設定可能
- 完全自動化とスケジュール実行が可能
- API直接制御による柔軟なカスタマイズ
- 無料で利用可能
デメリット:
- JavaScriptの基礎知識が必要
- 初期設定に30分〜1時間かかる
- エラー対応に技術知識が必要
推奨ユーザー:
- プログラミング経験がある方
- 特定条件でのデータ抽出が必要な方
- 完全自動化を実現したい方
【方法3】Supermetrics(有料ツール)
SupermetricsはGA4以外の複数のデータソースを統合できる有料の連携ツールで、大規模なデータ分析に適しています。
GA4だけでなく、Google広告、Facebook広告、Instagram、YouTubeなど複数のプラットフォームのデータを1つのスプレッドシートに統合できます。月額$99〜の費用がかかりますが、UIが直感的で設定が簡単です。複数のGA4プロパティを管理する企業や、広告データとアクセス解析データを統合して分析したい場合に有効です。
メリット:
- 複数データソースの統合が可能
- 高度なスケジューリング機能
- サポート体制が充実
- 直感的なUI
デメリット:
- 月額$99〜の費用が発生
- 小規模サイトにはコスト過大
- 日本語サポートが限定的
推奨ユーザー:
- 複数のGA4プロパティを管理する方
- 広告データとの統合分析が必要な方
- 予算に余裕がある企業
3つの方法の比較表
| 項目 | GA4 Reports Builder | GAS | Supermetrics |
|---|---|---|---|
| 難易度 | ★☆☆(初心者向け) | ★★★(中級者向け) | ★☆☆(初心者向け) |
| コスト | 無料 | 無料 | 月額$99〜 |
| カスタマイズ性 | 低 | 高 | 中 |
| 所要時間 | 5分 | 30分〜1時間 | 10分 |
| プログラミング | 不要 | 必要(JavaScript) | 不要 |
| データソース | GA4のみ | GA4のみ | 複数対応 |
| 自動実行 | 可能 | 可能 | 可能 |
| サポート | コミュニティ | 公式ドキュメント | 専用サポート |
初めて連携を試す方はGA4 Reports Builderから始めて、物足りなくなったらGASにステップアップする流れがおすすめです。
【方法1】GA4 Reports Builderで連携する手順(初心者推奨)
GA4 Reports Builderは、プログラミング知識がなくても5分で設定できる最も手軽な連携方法です。ここでは画像付きで具体的な設定手順を解説します。
GA4 Reports Builderのインストール方法
GA4 Reports Builderのインストールは、Googleスプレッドシートの拡張機能から3ステップで完了します。
まず、新規のGoogleスプレッドシートを開き、上部メニューから「拡張機能」→「アドオン」→「アドオンを取得」の順にクリックします。検索ボックスに「GA4 Reports Builder for Google Analytics」と入力して検索し、表示されたアドオンの「インストール」ボタンをクリックします。Googleアカウントの選択画面が表示されるので、GA4にアクセス権限のあるアカウントを選択し、権限の許可を行えばインストール完了です。
インストール手順:
- スプレッドシートを開く
- 「拡張機能」→「アドオン」→「アドオンを取得」をクリック
- 「GA4 Reports Builder」を検索
- 「インストール」ボタンをクリック
- Googleアカウントを選択して権限を許可
- インストール完了の確認
初回インストール時には、GA4データへのアクセス権限を求められますが、これはデータ取得に必要な正規の手続きです。
レポート作成の具体的手順(画像付き)
インストール後、4つのステップでレポートを作成できます。
STEP1: Create new reportを選択 スプレッドシート上部の「拡張機能」→「GA4 Reports Builder」→「Create new report」を選択します。新しいシート「Report Configuration」が自動で作成されます。
STEP2: GA4プロパティの選択 「Property」欄のプルダウンメニューから、データを取得したいGA4プロパティを選択します。複数のプロパティがある場合は、サイト名やドメインで識別できます。
STEP3: ディメンションとメトリクスの設定 レポートに含めたいディメンション(分析軸)とメトリクス(指標)を設定します。
ページ別PV数レポートの例:
- Dimension: pagePath(ページパス)
- Metrics: screenPageViews(ページビュー数)
流入元別CVRレポートの例:
- Dimension: sessionSource(セッション参照元)
- Metrics: sessions(セッション数), conversions(コンバージョン数)
STEP4: 日付範囲とフィルター設定 「Date Range」で分析期間を設定します。「Last 7 days」「Last 30 days」などのプリセットが選択可能です。特定ページのみを分析したい場合は、「Filters」欄でフィルター条件を追加できます。
設定完了後、「拡張機能」→「GA4 Reports Builder」→「Run reports」を実行すると、新しいシートにデータが出力されます。
データを自動取得するスケジュール設定
スケジュール機能を使えば、毎日決まった時間に自動でデータを更新できます。
「拡張機能」→「GA4 Reports Builder」→「Schedule reports」を選択すると、スケジュール設定画面が開きます。「Enable scheduling」にチェックを入れ、実行頻度(毎日、毎週、毎月)と実行時間を設定します。例えば「毎日午前9時」に設定すると、毎朝自動で最新データが取得され、チーム全体で共有できます。
スケジュール設定のポイント:
- 実行時間は業務開始前(午前7〜8時)がおすすめ
- 週次レポートは月曜午前に設定
- エラー通知メールの受信設定を有効化
- 初回は手動実行で動作確認
エラー通知設定を有効にしておけば、データ取得に失敗した場合にメールで通知されるため、レポートの抜け漏れを防げます。
よくあるエラーと対処法
GA4 Reports Builder使用時に発生しやすいエラーと解決方法を紹介します。
「Property not found」エラー GA4プロパティが見つからない場合に表示されます。GA4管理画面で「管理」→「プロパティ設定」からプロパティIDを確認し、正しいプロパティを選択してください。UAプロパティ(UA-で始まるID)は選択できないため、GA4プロパティ(数字のみのID)であることを確認します。
データが表示されない 日付範囲の設定ミスやフィルター条件が厳しすぎる場合に発生します。まず日付範囲を「Last 30 days」に設定し、フィルターを一時的に削除して再実行してください。それでもデータが表示されない場合は、GA4側でデータ収集が正常に行われているか確認します。
「API quota exceeded」エラー GA4 Data APIの1日のリクエスト上限(25,000リクエスト)を超えた場合に表示されます。スケジュール実行の頻度を減らすか、取得するディメンション・メトリクスの数を削減してください。複数のレポートを同時実行している場合は、実行時間をずらすことで解決できます。
【方法2】GASでGA4データを取得する手順(中級者向け)
Google Apps Script(GAS)を使えば、GA4 Data APIを直接操作して高度なデータ取得とカスタマイズが可能になります。ここでは実際に動作するコードを含めて詳しく解説します。
Google Apps Scriptの準備
GASでGA4データを取得するには、Analytics Data APIの有効化とOAuth認証の設定が必要です。
スプレッドシートを開き、「拡張機能」→「Apps Script」を選択してスクリプトエディタを開きます。左側のメニューから「サービス」の「+」ボタンをクリックし、「Google Analytics Data API」を検索して追加します。バージョンは最新版を選択してください。
次にOAuth認証の設定を行います。スクリプトエディタの左メニューから歯車アイコン(プロジェクトの設定)をクリックし、「OAuth スコープを表示」で必要なスコープが含まれていることを確認します。初回実行時に自動的に認証画面が表示されるため、GA4データへのアクセスを許可します。
準備手順のチェックリスト:
- [ ] Apps Scriptエディタを開く
- [ ] Google Analytics Data APIを追加
- [ ] プロパティIDを確認(GA4管理画面から)
- [ ] OAuth認証の準備完了
基本的なGASスクリプトのコード例
以下は、GA4からページ別のページビュー数を取得する基本的なスクリプト例です。
function getGA4Data() {
// GA4プロパティIDを設定(数字のみ)
const propertyId = 'properties/YOUR_PROPERTY_ID';
// スプレッドシートとシートを取得
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName('GA4データ') || ss.insertSheet('GA4データ');
// 既存データをクリア
sheet.clear();
try {
// GA4 Data APIでデータを取得
const request = AnalyticsData.Properties.runReport({
dimensions: [{name: 'pagePath'}],
metrics: [{name: 'screenPageViews'}],
dateRanges: [{
startDate: '7daysAgo',
endDate: 'yesterday'
}],
orderBys: [{
metric: {metricName: 'screenPageViews'},
desc: true
}],
limit: 100
}, propertyId);
// ヘッダー行を作成
const headers = ['ページパス', 'ページビュー数'];
sheet.appendRow(headers);
// データ行を追加
if (request.rows) {
request.rows.forEach(row => {
const pagePath = row.dimensionValues[0].value;
const pageViews = row.metricValues[0].value;
sheet.appendRow([pagePath, pageViews]);
});
}
Logger.log('データ取得完了');
} catch (error) {
Logger.log('エラー: ' + error.toString());
}
}
プロパティIDの確認方法: GA4管理画面の「管理」→「プロパティ設定」でプロパティIDを確認します。「123456789」のような数字のみのIDをコピーし、コード内のYOUR_PROPERTY_ID部分に貼り付けます。
日付範囲の動的設定:
7daysAgo: 7日前からyesterday: 昨日まで30daysAgo: 30日前からtoday: 今日まで2025-01-01: 特定の日付を指定
高度なフィルター設定例
GASでは複雑なフィルター条件を設定して、必要なデータのみを抽出できます。
特定ページのみ抽出(正規表現使用):
dimensionFilter: {
filter: {
fieldName: 'pagePath',
stringFilter: {
matchType: 'CONTAINS',
value: '/blog/'
}
}
}
オーガニック流入のみ抽出:
dimensionFilter: {
filter: {
fieldName: 'sessionDefaultChannelGroup',
stringFilter: {
matchType: 'EXACT',
value: 'Organic Search'
}
}
}
CV達成ユーザーのみ抽出:
dimensionFilter: {
filter: {
fieldName: 'eventName',
stringFilter: {
matchType: 'EXACT',
value: 'purchase'
}
}
}
複数条件の組み合わせ(AND/OR):
dimensionFilter: {
andGroup: {
expressions: [
{
filter: {
fieldName: 'pagePath',
stringFilter: {matchType: 'CONTAINS', value: '/service/'}
}
},
{
filter: {
fieldName: 'sessionSource',
stringFilter: {matchType: 'EXACT', value: 'google'}
}
}
]
}
}
これらのフィルターをrunReportの引数に追加することで、ビジネスニーズに合わせた詳細な分析が可能になります。
データをシートに書き込む実装
効率的にデータをシートに書き込むためのベストプラクティスを紹介します。
既存データのクリア処理:
// シート全体をクリア
sheet.clear();
// または、特定範囲のみクリア
const lastRow = sheet.getLastRow();
if (lastRow > 1) {
sheet.getRange(2, 1, lastRow - 1, sheet.getLastColumn()).clearContent();
}
ヘッダー行の作成:
const headers = ['日付', 'ページパス', 'ページビュー数', 'ユニークユーザー数'];
sheet.getRange(1, 1, 1, headers.length).setValues([headers]);
sheet.getRange(1, 1, 1, headers.length).setFontWeight('bold');
データ行の一括追加(高速化):
// 非効率な方法(1行ずつ追加)
rows.forEach(row => {
sheet.appendRow([row.value1, row.value2]); // 遅い
});
// 効率的な方法(配列を一括で書き込み)
const dataArray = rows.map(row => [row.value1, row.value2]);
sheet.getRange(2, 1, dataArray.length, dataArray[0].length).setValues(dataArray);
データが多い場合は、appendRowを繰り返すのではなく、配列を作成してsetValuesで一括書き込みすると処理速度が大幅に向上します。
トリガーで自動実行する設定
GASのトリガー機能を使えば、スクリプトを定期的に自動実行できます。
時間主導型トリガーの作成:
- スクリプトエディタ左メニューの「トリガー」(時計アイコン)をクリック
- 右下の「トリガーを追加」ボタンをクリック
- 以下の設定を行う:
- 実行する関数: getGA4Data
- イベントのソース: 時間主導型
- 時間ベースのトリガータイプ: 日タイマー
- 時刻: 午前8時〜9時
イベント主導型トリガーの活用: スプレッドシートを開いたときに自動実行したい場合は、「イベントのソース」で「スプレッドシートから」を選択し、「起動時」を設定します。
エラー通知メールの設定: トリガー設定画面の「エラー通知設定」で、エラー発生時にメールで通知を受け取る頻度を選択できます。「今すぐ通知を受け取る」に設定すると、エラー発生時に即座にメールが届きます。
GAS実装時の注意点
GASでGA4連携を実装する際に注意すべき制限事項と対処法を解説します。
APIクォータ制限(1日25,000リクエスト): GA4 Data APIには1日あたり25,000リクエストの上限があります。1回のrunReport実行で1リクエストとカウントされるため、1時間ごとに実行する場合は24リクエスト/日となり問題ありません。ただし、複数のレポートを同時実行する場合は注意が必要です。
スクリプト実行時間制限(6分): GASの1回の実行時間は最大6分です。大量データを取得する場合は、日付範囲を分割して複数回に分けて実行する必要があります。例えば、1年分のデータを取得する場合は、月ごとに分割して実行します。
大量データ取得時の分割処理:
function getGA4DataByMonth() {
const months = ['2025-01', '2025-02', '2025-03']; // 取得対象月
months.forEach(month => {
const startDate = month + '-01';
const endDate = month + '-31';
// 月ごとにデータ取得
getGA4DataWithDateRange(startDate, endDate);
// API制限回避のため少し待機
Utilities.sleep(1000);
});
}
これらの制限を理解して実装すれば、安定した自動データ取得の仕組みを構築できます。
GA4とスプレッドシート連携の実務活用例
ここでは、実際の業務でGA4とスプレッドシート連携がどのように活用されているか、具体的な事例を4つ紹介します。
【活用例1】週次レポートの自動作成
毎週月曜の朝に前週のパフォーマンスレポートを自動生成し、チーム全体で共有する仕組みです。
GASで毎週月曜午前8時に自動実行するトリガーを設定し、前週(月曜〜日曜)のデータを取得します。PV、UU、CVR、直帰率などの主要KPIを1つのシートに集約し、前週比の増減も自動計算します。このスプレッドシートをLooker Studioのデータソースとして接続すれば、経営会議用のダッシュボードも自動更新されます。
実装のポイント:
- 前週データの日付範囲を動的に計算(前週月曜から日曜)
- 前々週との比較で増減率を算出
- Slackに自動通知してチームに共有
- 週次MTG資料として活用
この仕組みにより、従来5時間かかっていたレポート作成が完全自動化され、担当者は分析と施策立案に集中できるようになります。
【活用例2】BtoBサイトのリード獲得分析
BtoB企業でサービス紹介ページや資料請求ページのコンバージョン率を追跡し、リード獲得を最適化する活用例です。
特定ページ(例: /service/, /contact/, /download/)のみをフィルター抽出し、流入元別(オーガニック検索、Google広告、SNS、メール)にCVRを計算します。スプレッドシート上で広告費データと組み合わせることで、流入元別のCPA(顧客獲得単価)とROIを自動算出できます。
分析の具体例:
- オーガニック流入のCVR: 3.2%(前月比+0.5pt)
- Google広告のCVR: 4.8%(CPA: ¥5,200)
- Facebook広告のCVR: 2.1%(CPA: ¥8,900)
この分析により、費用対効果の高い流入元に予算を集中させる意思決定が可能になります。
【活用例3】複数サイトのデータ統合管理
複数のWebサイトやアフィリエイトサイトを運営している場合、各サイトのGA4データを1つのスプレッドシートに統合する活用例です。
GASで複数のGA4プロパティIDをループ処理し、各サイトのデータを同じスプレッドシートの異なるシートに出力します。サマリーシートでは、全サイトの合計PV、収益、CVRなどを集計し、サイト横断でのトレンド分析が可能になります。
統合管理のメリット:
- サイト別のパフォーマンス比較が容易
- 全体の成長トレンドを一目で把握
- リソース配分の最適化
- 収益性の高いサイトの特定
アフィリエイトサイト運営では、各サイトのページビュー数とアフィリエイト収益を紐付けることで、1PVあたりの収益(RPM)を算出し、収益最適化に活用できます。
【活用例4】アラート機能の実装
PV数やコンバージョン数が異常値を示した場合に、自動でアラート通知を送る仕組みです。
GASでデータ取得後、前日比や目標値との比較を行い、一定の閾値を超えた場合にSlackやメールで通知します。例えば、PV数が前日比50%以上減少した場合や、CV数が目標の70%未満だった場合に、担当者へ即座にアラートを送ります。
アラート設定の例:
function checkAndAlert() {
const today = getPageViews('today');
const yesterday = getPageViews('yesterday');
const changeRate = (today - yesterday) / yesterday;
if (changeRate < -0.5) {
sendSlackAlert('⚠️ PV数が前日比50%以上減少しています');
}
}
このアラート機能により、GA4設定ミス、サイトエラー、検索順位の急落などの問題を早期発見でき、迅速な対応が可能になります。
GA4 API(Analytics Data API)の基礎知識
Google Apps Scriptで高度な連携を実現するには、GA4 Data APIの仕組みを理解することが重要です。ここではAPIの基礎知識を解説します。
Analytics Data APIとは
Analytics Data APIは、GA4のデータをプログラム経由で取得するためのGoogle公式APIです。
従来のUniversal Analytics(UA)ではCore Reporting APIが使われていましたが、GA4では全く新しいAnalytics Data APIに刷新されました。このAPIを使うことで、Webサイトやアプリから直接GA4のデータを取得し、独自のダッシュボードやレポートを作成できます。RESTful APIとして提供されているため、GAS以外のプログラミング言語(Python、PHP、Ruby)からも利用可能です。
UAのCore Reporting APIとの主な違い:
- データモデルがセッション中心からイベント中心に変更
- ディメンションとメトリクスの組み合わせルールが変更
- リアルタイムデータ取得用の専用エンドポイントを追加
- より柔軟なフィルター機能を実装
GA4 Data APIは、無料版GA4でも1日25,000リクエストまで利用でき、ほとんどの業務用途では十分な容量です。
APIで取得できるデータの種類
Analytics Data APIでは、リアルタイムデータと過去データの両方を取得できます。
リアルタイムデータ vs 過去データ:
- リアルタイムデータ: 過去30分間のデータ(runRealtimeReportメソッド)
- 過去データ: 任意の期間のデータ(runReportメソッド)
ディメンションとメトリクスの組み合わせルール: GA4では、すべてのディメンションとメトリクスを自由に組み合わせられるわけではありません。例えば、ユーザーレベルのディメンション(userGender)とセッションレベルのメトリクス(sessions)は組み合わせ可能ですが、一部の組み合わせは非互換です。
よく使うディメンション:
pagePath: ページパスsessionSource: セッション参照元deviceCategory: デバイスカテゴリcountry: 国eventName: イベント名
よく使うメトリクス:
screenPageViews: ページビュー数totalUsers: ユニークユーザー数sessions: セッション数conversions: コンバージョン数bounceRate: 直帰率
カスタムディメンション・メトリクスの取得: GA4で設定したカスタムディメンションやカスタムメトリクスも、customEvent:dimension_nameやcustomEvent:metric_nameの形式で取得できます。
APIクォータと制限事項
Analytics Data APIには、いくつかの制限事項があります。
1日あたりのリクエスト上限:
- 無料版GA4: 25,000リクエスト/日
- GA4 360: 500,000リクエスト/日
1回のrunReport実行で1リクエストとカウントされます。1時間ごとに実行する場合、24リクエスト/日となり、通常の業務利用では問題ありません。
1リクエストあたりのデータ量制限:
- 最大100,000行まで取得可能
- ただし、デフォルトのlimitは10,000行
大量データを取得する場合は、offsetパラメータを使って複数回に分けて取得する必要があります。
効率的なリクエスト設計のコツ:
- 必要最小限のディメンションとメトリクスのみを指定
- 日付範囲を適切に設定(不要に長い期間を指定しない)
- limitパラメータで取得行数を制限
- キャッシュを活用して同じデータの重複取得を避ける
これらの制限を理解して設計すれば、クォータ超過を避けつつ効率的にデータ取得できます。
GA4とスプレッドシート連携のトラブルシューティング
GA4とスプレッドシートの連携で発生しやすいエラーと、その解決方法をまとめました。
アドオンでよくあるエラー
GA4 Reports Builderを使用する際に発生する代表的なエラーと対処法を解説します。
「Authorization required」エラー: アドオンがGA4データにアクセスする権限を失った場合に表示されます。スプレッドシート上部の「拡張機能」→「GA4 Reports Builder」→「Authorize」を選択し、再度Googleアカウントでログインして権限を付与してください。定期的にOAuth認証の有効期限が切れるため、数ヶ月に一度発生する可能性があります。
データが取得できない: GA4プロパティIDが間違っている、またはアクセス権限がない可能性があります。GA4管理画面で「管理」→「プロパティ設定」からプロパティIDを確認し、Report Configurationシートの設定と一致しているか確認してください。また、使用しているGoogleアカウントがGA4プロパティの閲覧者以上の権限を持っているか確認します。
スケジュール実行が止まる: Googleのトリガーシステムが自動的に無効化される場合があります。スプレッドシートの「拡張機能」→「GA4 Reports Builder」→「Schedule reports」から、スケジュール設定を確認し、必要に応じて再設定してください。トリガーが30日以上連続でエラーになると自動無効化されるため、定期的な動作確認が重要です。
GASでよくあるエラー
Google Apps Scriptを使った実装で発生する技術的なエラーと解決方法を紹介します。
「Exception: Service invoked too many times」エラー: 1日のAPIクォータ(25,000リクエスト)を超えた場合に発生します。スクリプトの実行頻度を減らすか、1回の実行で取得するデータ量を削減してください。複数のGA4プロパティからデータを取得している場合は、実行タイミングを分散させることで対応できます。
対処法:
// リクエスト間に待機時間を入れる
Utilities.sleep(2000); // 2秒待機
「TypeError: Cannot read property ‘value’ of undefined」エラー: APIから返されるデータ構造が想定と異なる場合に発生します。データが存在しない場合のエラーハンドリングを追加してください。
if (request.rows && request.rows.length > 0) {
request.rows.forEach(row => {
const value = row.dimensionValues[0]?.value || 'N/A';
});
} else {
Logger.log('データが存在しません');
}
タイムアウトエラー: スクリプト実行時間が6分を超えた場合に発生します。大量データを取得する場合は、日付範囲を月単位に分割し、複数回に分けて実行してください。また、データをシートに書き込む際は、appendRowではなくsetValuesで一括書き込みすることで処理速度が向上します。
データの不整合が起きた場合
GA4とスプレッドシートのデータが一致しない場合の原因と確認方法を解説します。
GA4とスプレッドシートの数値が合わない原因: 最も多い原因は、タイムゾーン設定の違いです。GA4のプロパティタイムゾーンとスプレッドシートで指定した日付範囲のタイムゾーンが異なると、集計対象期間がズレます。GA4管理画面の「プロパティ設定」でタイムゾーンを確認し、GASのコードでも同じタイムゾーンを使用してください。
サンプリングデータの影響: GA4では大量データを扱う場合、自動的にサンプリング(抽出)が適用されることがあります。スプレッドシートに取得したデータがサンプリングされている場合、「(サンプリング率: 45.2%)」のような注記が表示されます。サンプリングを避けるには、日付範囲を短くするか、ディメンション・メトリクスの数を減らしてください。
タイムゾーン設定の確認:
- GA4管理画面: 「管理」→「プロパティ設定」→「レポートのタイムゾーン」
- GASコード: dateRangesで指定する日付は、GA4と同じタイムゾーン基準で設定
データ不整合が発生した場合は、まずタイムゾーンとサンプリングの2点を確認することで、ほとんどのケースで原因を特定できます。
よくある質問(FAQ)
GA4とスプレッドシート連携に関して、多くの方が疑問に感じる点をQ&A形式で解説します。
リアルタイムデータも連携できますか?
はい、GA4のリアルタイムデータもスプレッドシートに連携できます。
Google Apps ScriptでrunRealtimeReportメソッドを使用すれば、過去30分間のリアルタイムデータを取得できます。ただし、GA4 Reports Builder(公式アドオン)はリアルタイムデータに対応していないため、GASでの実装が必要です。リアルタイムデータは、現在サイトを閲覧しているユーザー数や、直近のコンバージョン発生状況をモニタリングする際に活用できます。
実装例:
const request = AnalyticsData.Properties.runRealtimeReport({
dimensions: [{name: 'unifiedScreenName'}],
metrics: [{name: 'activeUsers'}]
}, propertyId);
リアルタイムデータの取得間隔は、5分〜10分程度に設定するのが一般的です。頻繁すぎるとAPIクォータを消費するため注意が必要です。
無料で使える範囲はどこまでですか?
GA4 Reports BuilderとGoogle Apps Scriptはどちらも完全無料で利用できます。
無料版GA4では、Analytics Data APIのクォータが1日25,000リクエストまで提供されており、通常の業務利用では十分な容量です。スプレッドシート自体も無料で利用でき、データの保存容量はGoogleドライブの無料枠(15GB)の範囲内であれば制限はありません。ただし、Supermetricsなどのサードパーティ製有料ツールを使用する場合は、月額$99〜の費用が発生します。
無料で実現できる機能:
- GA4データの自動取得(1日25,000リクエストまで)
- スケジュール実行による自動化
- 複数のGA4プロパティからのデータ統合
- Looker Studioとの連携
GA4 360(有料版)に移行すると、APIクォータが500,000リクエスト/日に増加しますが、ほとんどの企業では無料版で十分対応可能です。
エクスポートとの違いは何ですか?
GA4の手動エクスポートと連携の最大の違いは、自動化の有無とリアルタイム性です。
手動エクスポートは、GA4管理画面から「共有」→「ダウンロード」でCSVやPDF形式でデータをダウンロードする方法です。毎回手動で操作が必要で、データ更新のたびにダウンロードし直す手間がかかります。一方、スプレッドシート連携は、一度設定すれば自動でデータが更新され続けます。
比較表:
| 項目 | 手動エクスポート | スプレッドシート連携 |
|---|---|---|
| 作業時間 | 毎回5〜10分 | 初回設定のみ |
| 自動更新 | なし | あり |
| リアルタイム性 | 低い | 高い(自動更新) |
| データ加工 | 困難 | 容易(関数・GAS) |
| 共有 | 手動で送付 | 自動共有 |
レポート作成が週1回程度であれば手動エクスポートでも問題ありませんが、日次や時間単位でデータを確認する場合は、連携による自動化が圧倒的に効率的です。
UAからGA4に移行した場合、過去データは?
UAからGA4に移行した場合、UA時代の過去データはGA4では取得できません。
UAとGA4は全く異なるデータ構造を持つため、UAで収集したデータをGA4に移行することはできません。ただし、UA時代のデータはUA管理画面に2026年7月1日まで残るため、それまでは過去データの確認が可能です。長期的な比較分析が必要な場合は、移行前にUAのデータをBigQueryにエクスポートしておくことをおすすめします。
過去データの取り扱い方法:
- UA時代のデータ: UA管理画面またはBigQueryで保管
- GA4移行後のデータ: GA4 Data APIでスプレッドシートに取得
- 長期トレンド分析: 両方のデータを手動で結合
移行直後は、前年同期比などの分析が困難ですが、GA4でのデータ蓄積が進むにつれて解決していきます。
BigQueryとスプレッドシート連携の違いは?
BigQueryとスプレッドシートは、それぞれ異なる用途に適したデータ連携方法です。
BigQueryは大規模データの高速処理に特化したデータウェアハウスで、数百万行のデータを扱う場合に適しています。一方、スプレッドシートは数万行程度のデータを扱う場合に手軽で、関数やピボットテーブルでの簡易分析に向いています。
比較:
| 項目 | BigQuery連携 | スプレッドシート連携 |
|---|---|---|
| データ量 | 数百万行〜 | 数万行まで |
| 処理速度 | 非常に高速 | 中程度 |
| 設定難易度 | 高い | 低い |
| コスト | 従量課金 | 無料 |
| 分析機能 | SQL | 関数・ピボット |
| 推奨用途 | 大規模データ分析 | 日次レポート作成 |
GA4では、BigQueryへの生データエクスポートが可能ですが、無料版GA4ではこの機能が利用できません(GA4 360のみ)。小規模〜中規模サイトの日次レポート作成であれば、スプレッドシート連携で十分対応可能です。
複数人で同じレポートを共有できますか?
はい、Googleスプレッドシートの共有機能を使えば、複数人で同時にレポートを閲覧・編集できます。
スプレッドシート右上の「共有」ボタンから、メールアドレスを入力して共有相手を追加できます。権限は「編集者」「コメント可」「閲覧者」の3段階から選択可能です。経営層には「閲覧者」権限、マーケティングチームには「編集者」権限を付与するなど、役割に応じた権限管理ができます。
共有設定のベストプラクティス:
- 経営層・クライアント: 閲覧者(データを見るだけ)
- マーケティング担当者: 編集者(データ更新・分析)
- 外部パートナー: コメント可(質問・提案のみ)
複数人が同時にスプレッドシートを開いても、リアルタイムで変更が反映されるため、会議中に全員で同じデータを見ながらディスカッションできます。通知機能を設定すれば、レポートが更新されたタイミングで自動的にメールやSlackに通知することも可能です。
スマホアプリのGA4データも連携可能?
はい、GA4で計測しているスマホアプリのデータもスプレッドシートに連携できます。
GA4はWebサイトとモバイルアプリの両方のデータを統合して計測できるため、同じプロパティIDを使用すればアプリデータも取得可能です。ディメンションでplatform(プラットフォーム)を指定すれば、Web、iOS、Androidのデータを区別して分析できます。アプリ特有のイベント(app_open、screen_view、in_app_purchaseなど)も、eventNameディメンションで取得できます。
アプリデータ取得の例:
dimensions: [
{name: 'platform'},
{name: 'appVersion'}
],
metrics: [
{name: 'activeUsers'},
{name: 'sessions'}
]
Webとアプリのデータをスプレッドシートで統合することで、クロスプラットフォームでのユーザー行動分析が可能になります。
まとめ:目的に応じた連携方法を選ぼう
GA4とスプレッドシートの連携は、データ分析業務を大幅に効率化する強力な手段です。最後に、あなたに最適な連携方法の選び方と次のステップをまとめます。
初心者は「GA4 Reports Builder」から始めよう
プログラミング経験がない方や、まずは手軽に連携を試してみたい方は、GA4 Reports Builderから始めることをおすすめします。
5分で設定が完了し、コードを一切書かずにGA4データをスプレッドシートに取得できます。ページビュー数や流入元別のデータなど、基本的なレポート作成には十分な機能を備えています。スケジュール機能を使えば、毎日自動でデータを更新できるため、週次レポートの作成工数を大幅に削減できます。初めて連携を試す場合は、まずGA4 Reports Builderで成功体験を積み、連携のメリットを実感してください。
カスタマイズが必要なら「GAS」にステップアップ
GA4 Reports Builderで物足りなくなったら、Google Apps Script(GAS)にステップアップしましょう。
特定ページのみを抽出したい、オーガニック流入だけを分析したい、複数のGA4プロパティを統合したいなど、高度なカスタマイズが必要になった場合は、GASが最適です。JavaScriptの基礎知識があれば、本記事で紹介したサンプルコードをコピーして動作させることから始められます。一度設定すれば完全自動化できるため、長期的には大きな工数削減につながります。
次のステップ:Looker Studioとの組み合わせ活用
スプレッドシートに取得したGA4データは、Looker Studioと組み合わせることでさらに強力になります。
スプレッドシート上でデータを加工し、その結果をLooker Studioのデータソースとして接続すれば、美しいダッシュボードを作成できます。例えば、スプレッドシートで計算した独自のKPI(例: 1PVあたりの収益)を、Looker Studioでグラフ化して経営会議で共有できます。Looker Studioも無料で利用できるため、追加コストなしで高度なデータ可視化が実現します。
Looker Studioとの連携方法については、当社のDataVistaメディア(https://inno-mark.jp/datavista/)で詳しく解説しています。
データ分析を自動化して業務効率を大幅改善
GA4とスプレッドシートの連携により、従来5時間かかっていたレポート作成が30分に短縮できます。
空いた時間は、データ分析や施策立案といった、より価値の高い業務に使えます。自動化によって人的ミスも減少し、常に最新のデータに基づいた意思決定が可能になります。本記事で紹介した3つの方法から、あなたの業務に最適な方法を選択し、さっそく連携を始めてみてください。
初めての方は、まずGA4 Reports Builderで5分間だけ試してみることをおすすめします。きっとデータ分析業務の新しい可能性が見えてくるはずです。
外部参考記事
- Google Analytics Data API公式ドキュメント
- GA4 Reports Builder – Google Workspace Marketplace
- Google Apps Script公式ガイド
関連記事