Google Analyticsと連携したGASアプリでPV数を自動集計する完全ガイド
Webサイト運営において、ページビュー(PV)数の定期的な分析は欠かせません。しかし、Google Analyticsの管理画面から毎回データをエクスポートするのは時間のかかる作業です。
この記事では、Google Apps Script(GAS)とGoogle Analytics 4(GA4)を連携させて、PV数を自動集計するアプリの作成方法を詳しく解説します。
なぜGASでPV数集計を自動化するのか?
手動集計の課題
- Google Analyticsでの手動エクスポートに時間がかかる
- 定期レポート作成が面倒
- 複数サイトの管理が困難
- データの一貫性が保てない
GAS自動化のメリット
- 完全自動化: 指定した日時に自動実行
- カスタマイズ可能: 必要なデータのみ抽出
- スプレッドシート連携: Excelライクな操作で分析可能
- 無料: Googleアカウントがあれば追加費用なし
実装の全体像
今回作成するGASアプリの仕様:
- A列: サイトURL
- B列: ページタイトル
- C列: 指定期間(30日間)のPV数
- 期間指定: C1セルの日付から過去30日間
- 全ページ対応: サイトの全ページを自動取得
事前準備:必要な設定
1. Google Analytics Data APIの有効化
まず、Google Cloud ConsoleでAPIを有効にします。
- Google Cloud Consoleにアクセス
- プロジェクトを選択(新規作成も可)
- 「APIとサービス」→「ライブラリ」
- “Google Analytics Data API”を検索
- 「有効にする」をクリック
2. GA4プロパティIDの確認
Google Analytics 4で以下の手順でプロパティIDを確認:
- GA4管理画面の「管理」をクリック
- 「プロパティ設定」を選択
- プロパティIDをコピー(数字のみ)
GASコードの実装
基本設定
// 設定項目
const PROPERTY_ID = 'YOUR_GA4_PROPERTY_ID'; // ←ここにプロパティIDを入力
const SHEET_NAME = 'Analytics Data';
メイン処理の実装
function fetchGA4DataToSheet() {
try {
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
let sheet = spreadsheet.getSheetByName(SHEET_NAME);
if (!sheet) {
sheet = spreadsheet.insertSheet(SHEET_NAME);
}
// C1セルから基準日を取得
const targetDate = getTargetDate(sheet);
const headerDate = Utilities.formatDate(targetDate, Session.getScriptTimeZone(), 'yyyy/MM/dd');
// ヘッダー設定
sheet.getRange(1, 1, 1, 3).setValues([
['サイトURL', 'サイトタイトル', `${headerDate}から過去30日間のPV数`]
]);
// GA4からデータ取得
const analyticsData = getGA4Data(targetDate);
if (analyticsData && analyticsData.length > 0) {
// データを書き込み
sheet.getRange(2, 1, analyticsData.length, 3).setValues(analyticsData);
formatSheet(sheet, analyticsData.length);
console.log(`データ取得完了: ${analyticsData.length}件`);
}
} catch (error) {
console.error('エラー:', error.toString());
throw error;
}
}
全ページ取得機能
大量のページがあるサイトでも対応できるよう、ページネーション機能を実装:
function getGA4Data(targetDate) {
let allResults = [];
let offset = 0;
const limit = 10000;
let hasMoreData = true;
while (hasMoreData) {
const request = {
property: `properties/${PROPERTY_ID}`,
dateRanges: [{
startDate: formattedStartDate,
endDate: formattedEndDate
}],
dimensions: [
{ name: 'pagePath' },
{ name: 'hostName' },
{ name: 'pageTitle' }
],
metrics: [{ name: 'screenPageViews' }],
orderBys: [{
metric: { metricName: 'screenPageViews' },
desc: true
}],
limit: limit,
offset: offset
};
const response = AnalyticsData.Properties.runReport(request, `properties/${PROPERTY_ID}`);
if (!response.rows || response.rows.length === 0) {
hasMoreData = false;
break;
}
// データ整形して配列に追加
const batchResults = response.rows.map(row => {
const fullUrl = `https://${row.dimensionValues[1].value}${row.dimensionValues[0].value}`;
const pageTitle = row.dimensionValues[2].value;
const pageViews = parseInt(row.metricValues[0].value);
return [fullUrl, pageTitle, pageViews];
});
allResults = allResults.concat(batchResults);
offset += limit;
// APIレート制限対策
Utilities.sleep(100);
}
return allResults;
}
使用方法
1. 初回設定
- Google Apps Scriptで新しいプロジェクトを作成
- 「サービス」から “Google Analytics Data API” を追加
- 上記コードを貼り付け
PROPERTY_IDに自分のGA4プロパティIDを設定
2. データ取得の実行
C1セルに基準日を入力
例:2024/07/01スクリプト実行
fetchGA4DataToSheet()結果確認
- A列:各ページのURL
- B列:ページタイトル
- C列:指定期間のPV数
3. 自動実行の設定
定期的にデータを更新したい場合は、トリガーを設定:
function createDailyTrigger() {
ScriptApp.newTrigger('fetchGA4DataToSheet')
.timeBased()
.everyDays(1)
.atHour(9)
.create();
}
活用アイデア
SEO分析での活用
- 人気ページの特定: PV数上位ページの傾向分析
- コンテンツ改善: 低PVページの原因調査
- 競合比較: 複数サイトのPV数比較
レポート作成での活用
- 定期レポート: 週次・月次レポートの自動生成
- KPI管理: 目標PV数との比較分析
- トレンド分析: 期間を変えた推移確認
マーケティング活用
- コンテンツ戦略: 人気コンテンツの特徴分析
- リソース配分: 効果的なページへの集中投資
- ROI測定: コンテンツ制作コストとPV数の関係性
トラブルシューティング
よくあるエラーと対処法
403エラー(権限不足)
対処法:
- Google Analytics Data APIが有効になっているか確認
- GA4プロパティへのアクセス権限を確認
404エラー(プロパティが見つからない)
対処法:
- プロパティIDが正しく設定されているか確認
- GA4(UA)ではなくGA4のプロパティIDか確認
データが取得できない
対処法:
- 指定期間にアクセスがあるか確認
- GA4のデータ反映には24-48時間かかることを考慮
高度なカスタマイズ
複数指標の取得
PV数以外の指標も同時に取得したい場合:
metrics: [
{ name: 'screenPageViews' }, // PV数
{ name: 'sessions' }, // セッション数
{ name: 'bounceRate' }, // 直帰率
{ name: 'averageSessionDuration' } // 平均セッション時間
]
フィルタリング機能
特定のページのみを対象にする場合:
dimensionFilter: {
filter: {
fieldName: 'pagePath',
stringFilter: {
matchType: 'CONTAINS',
value: '/blog/' // ブログページのみ
}
}
}
まとめ
Google Apps ScriptとGoogle Analytics 4を連携させることで、PV数の集計作業を完全に自動化できます。
この方法のメリット:
- 手作業の時間を大幅削減
- データの一貫性確保
- カスタマイズの自由度が高い
- 無料で利用可能
導入の流れ:
- Google Analytics Data APIの有効化
- GASコードの実装
- プロパティIDの設定
- 定期実行トリガーの設定
特に複数サイトを運営している場合や、定期的なレポート作成が必要な場合には、大幅な作業効率化が期待できます。
ぜひこの記事を参考に、自動化によるデータ分析の効率化を実現してください。データに基づいた意思決定で、より効果的なWeb運営を目指しましょう。
この記事で紹介したコードは、Google Analytics 4 Data API v1に基づいています。APIの仕様変更に応じて、適宜アップデートしてご利用ください。
■プロンプトだけでオリジナルアプリを開発・公開してみた!!
■AI時代の第一歩!「AI駆動開発コース」はじめました!
テックジム東京本校で先行開始。
■テックジム東京本校
「武田塾」のプログラミング版といえば「テックジム」。
講義動画なし、教科書なし。「進捗管理とコーチング」で効率学習。
より早く、より安く、しかも対面型のプログラミングスクールです。
<短期講習>5日で5万円の「Pythonミニキャンプ」開催中。
<月1開催>放送作家による映像ディレクター養成講座
<オンライン無料>ゼロから始めるPython爆速講座



