VercelでデプロイしたWebアプリにGoogle Analyticsを設定する完全ガイド

 

Vercelは高速で使いやすいデプロイメントプラットフォームとして多くの開発者に愛用されています。せっかく作成したWebアプリケーションのパフォーマンスや利用状況を把握するために、Google Analytics(GA4)の導入は必須です。

この記事では、VercelでホストしているWebアプリにGoogle Analyticsを設定する方法を、初心者でも理解できるよう詳しく解説します。

Google Analytics 4(GA4)とは

Google Analytics 4は、Googleが提供する最新のWebサイト解析ツールです。従来のUniversal Analytics(UA)に代わる新しいバージョンで、以下の特徴があります:

  • イベントベースのデータモデル
  • プライバシー重視の設計
  • 機械学習による予測分析
  • クロスプラットフォーム分析

事前準備

必要なもの

  • Googleアカウント
  • VercelでデプロイされたWebアプリ
  • 基本的なHTML/JavaScriptの知識

サポートしているフレームワーク

この設定方法は以下のフレームワークで動作します:

  • Next.js
  • React
  • Vue.js
  • Nuxt.js
  • Svelte
  • 静的HTML サイト

Step 1: Google Analytics 4プロパティの作成

1.1 Google Analyticsアカウントにアクセス

  1. Google Analyticsにアクセス
  2. Googleアカウントでログイン
  3. 「測定を開始」をクリック

1.2 アカウントの設定

アカウント名: あなたのプロジェクト名
国/地域: 日本
データ共有設定: 必要に応じて選択

1.3 プロパティの設定

プロパティ名: あなたのWebアプリ名
レポートのタイムゾーン: 日本
通貨: 日本円(JPY)

1.4 データストリームの作成

  1. 「Webデータストリーム」を選択
  2. WebサイトのURL: https://your-app.vercel.app
  3. ストリーム名: アプリ名を入力
  4. 「ストリームを作成」をクリック

1.5 測定IDの取得

データストリーム作成後、測定ID(G-XXXXXXXXXXの形式)が表示されます。この値を控えておきましょう。

Step 2: Next.jsアプリケーションでの設定

2.1 Google Analyticsスクリプトの追加

方法1: _document.jsを使用(推奨)

pages/_document.jsファイルを作成または編集:

import { Html, Head, Main, NextScript } from 'next/document'

export default function Document() {
  return (
    <Html lang="ja">
      <Head>
        {/* Google Analytics */}
        <script
          async
          src={`https://www.googletagmanager.com/gtag/js?id=${process.env.NEXT_PUBLIC_GA_ID}`}
        />
        <script
          dangerouslySetInnerHTML={{
            __html: `
              window.dataLayer = window.dataLayer || [];
              function gtag(){dataLayer.push(arguments);}
              gtag('js', new Date());
              gtag('config', '${process.env.NEXT_PUBLIC_GA_ID}');
            `,
          }}
        />
      </Head>
      <body>
        <Main />
        <NextScript />
      </body>
    </Html>
  )
}

方法2: カスタムフックの作成

hooks/useGoogleAnalytics.jsを作成:

import { useEffect } from 'react'
import { useRouter } from 'next/router'

export const GA_TRACKING_ID = process.env.NEXT_PUBLIC_GA_ID

// Google Analyticsにページビューを送信
export const pageview = (url) => {
  window.gtag('config', GA_TRACKING_ID, {
    page_path: url,
  })
}

// Google Analyticsにイベントを送信
export const event = ({ action, category, label, value }) => {
  window.gtag('event', action, {
    event_category: category,
    event_label: label,
    value: value,
  })
}

export const useGoogleAnalytics = () => {
  const router = useRouter()

  useEffect(() => {
    const handleRouteChange = (url) => {
      pageview(url)
    }
    
    router.events.on('routeChangeComplete', handleRouteChange)
    
    return () => {
      router.events.off('routeChangeComplete', handleRouteChange)
    }
  }, [router.events])
}

2.2 _app.jsでの初期化

pages/_app.jsを編集:

import { useGoogleAnalytics } from '../hooks/useGoogleAnalytics'

function MyApp({ Component, pageProps }) {
  useGoogleAnalytics()

  return <Component {...pageProps} />
}

export default MyApp

Step 3: Reactアプリケーションでの設定

3.1 react-ga4ライブラリのインストール

npm install react-ga4

3.2 Google Analyticsの初期化

src/analytics.jsを作成:

import ReactGA from 'react-ga4'

const TRACKING_ID = process.env.REACT_APP_GA_ID

export const initGA = () => {
  ReactGA.initialize(TRACKING_ID)
}

export const logPageView = () => {
  ReactGA.send({ hitType: 'pageview', page: window.location.pathname })
}

export const logEvent = (category, action, label) => {
  ReactGA.event({
    category: category,
    action: action,
    label: label,
  })
}

3.3 App.jsでの実装

import React, { useEffect } from 'react'
import { initGA, logPageView } from './analytics'

function App() {
  useEffect(() => {
    initGA()
    logPageView()
  }, [])

  return (
    <div className="App">
      {/* あなたのアプリコンテンツ */}
    </div>
  )
}

export default App

Step 4: 環境変数の設定

4.1 .env.localファイルの作成

プロジェクトルートに.env.localファイルを作成:

# Next.js用
NEXT_PUBLIC_GA_ID=G-XXXXXXXXXX

# React用
REACT_APP_GA_ID=G-XXXXXXXXXX

4.2 Vercelでの環境変数設定

  1. Vercelダッシュボードにアクセス
  2. 対象プロジェクトを選択
  3. 「Settings」→「Environment Variables」
  4. 以下を追加:
Name: NEXT_PUBLIC_GA_ID (または REACT_APP_GA_ID)
Value: G-XXXXXXXXXX
Environments: Production, Preview, Development

Step 5: Vue.js/Nuxt.jsでの設定

5.1 Nuxt.jsでのモジュール使用

npm install @nuxtjs/google-analytics

nuxt.config.jsに追加:

export default {
  modules: [
    '@nuxtjs/google-analytics'
  ],
  googleAnalytics: {
    id: process.env.GOOGLE_ANALYTICS_ID
  },
  publicRuntimeConfig: {
    googleAnalytics: {
      id: process.env.GOOGLE_ANALYTICS_ID
    }
  }
}

5.2 Vue.jsでの手動設定

main.jsに追加:

import { createApp } from 'vue'
import App from './App.vue'

// Google Analytics設定
const app = createApp(App)

if (process.env.NODE_ENV === 'production') {
  // gtag.jsの読み込み
  const script1 = document.createElement('script')
  script1.async = true
  script1.src = `https://www.googletagmanager.com/gtag/js?id=${process.env.VUE_APP_GA_ID}`
  document.head.appendChild(script1)

  const script2 = document.createElement('script')
  script2.innerHTML = `
    window.dataLayer = window.dataLayer || [];
    function gtag(){dataLayer.push(arguments);}
    gtag('js', new Date());
    gtag('config', '${process.env.VUE_APP_GA_ID}');
  `
  document.head.appendChild(script2)
}

app.mount('#app')

Step 6: 動作確認とテスト

6.1 リアルタイムレポートでの確認

  1. Google Analyticsダッシュボードにアクセス
  2. 左メニューから「リアルタイム」を選択
  3. 自分のサイトにアクセスして、データが表示されるか確認

6.2 ブラウザ開発者ツールでの確認

  1. ブラウザの開発者ツールを開く
  2. Networkタブでcollectgtagのリクエストを確認
  3. Consoleでエラーがないかチェック

6.3 Google Analytics Debuggerの使用

Chrome拡張機能「Google Analytics Debugger」をインストールして、詳細なデバッグ情報を確認できます。

Step 7: カスタムイベントの実装

7.1 ボタンクリックの追跡

// Next.js/React
import { event } from '../hooks/useGoogleAnalytics'

const handleButtonClick = () => {
  event({
    action: 'click',
    category: 'engagement',
    label: 'hero_button'
  })
}

// Vue.js
const trackButtonClick = () => {
  gtag('event', 'click', {
    event_category: 'engagement',
    event_label: 'hero_button'
  })
}

7.2 フォーム送信の追跡

const handleFormSubmit = () => {
  gtag('event', 'form_submit', {
    event_category: 'engagement',
    event_label: 'contact_form'
  })
}

Step 8: プライバシーとGDPR対応

8.1 Cookieの同意管理

// Cookie同意後にGA初期化
const initializeAnalytics = () => {
  if (cookieConsent) {
    gtag('config', GA_TRACKING_ID, {
      anonymize_ip: true,
      allow_google_signals: false,
      allow_ad_personalization_signals: false
    })
  }
}

8.2 IPアドレスの匿名化

gtag('config', GA_TRACKING_ID, {
  anonymize_ip: true
})

トラブルシューティング

よくある問題と解決方法

1. データが表示されない

原因と解決策:

  • 測定IDが間違っている → GA4ダッシュボードで確認
  • 環境変数が設定されていない → Vercelの設定を確認
  • adblockerが有効 → 開発時は無効にして確認

2. 本番環境でのみ動作しない

解決策:

  • Vercelの環境変数が全環境(Production, Preview, Development)に設定されているか確認
  • ビルド後にnpm run build && npm run startでローカル確認

3. SPAでページ遷移が追跡されない

解決策:

  • ルーター変更イベントでの手動ページビュー送信を実装
  • フレームワーク固有のGA設定を使用

パフォーマンス最適化

1. 非同期読み込み

// 遅延読み込みでパフォーマンス向上
const loadGoogleAnalytics = () => {
  if (typeof window !== 'undefined') {
    import('gtag').then(() => {
      gtag('config', GA_TRACKING_ID)
    })
  }
}

2. サンプリング率の調整

gtag('config', GA_TRACKING_ID, {
  sample_rate: 50 // 50%のサンプリング
})

まとめ

VercelでデプロイしたWebアプリにGoogle Analyticsを設定することで、以下のメリットが得られます:

  • ユーザー行動の可視化: どのページが人気か、どこで離脱するかが分かる
  • コンバージョン追跡: 目標達成率を測定できる
  • パフォーマンス分析: サイトの読み込み速度やユーザビリティを改善できる
  • データドリブンな改善: 実際のデータに基づいた意思決定が可能

設定は複雑に見えますが、段階的に進めることで確実に導入できます。まずは基本的な設定から始めて、徐々にカスタムイベントやコンバージョン追跡を追加していきましょう。

定期的にGA4のレポートを確認し、Webアプリの改善に活用してください。データ分析を通じて、より良いユーザーエクスペリエンスを提供できるはずです。

■プロンプトだけでオリジナルアプリを開発・公開してみた!!

■AI時代の第一歩!「AI駆動開発コース」はじめました!

テックジム東京本校で先行開始。

■テックジム東京本校

「武田塾」のプログラミング版といえば「テックジム」。
講義動画なし、教科書なし。「進捗管理とコーチング」で効率学習。
より早く、より安く、しかも対面型のプログラミングスクールです。

<短期講習>5日で5万円の「Pythonミニキャンプ」開催中。

<月1開催>放送作家による映像ディレクター養成講座

<オンライン無料>ゼロから始めるPython爆速講座