Next.jsのSSGブログにGoogle Analyticsを導入する

公開日:
目次

Next.jsのSSGブログでアクセス解析をしたかったので、Google Analyticsを導入しました。備忘録として残します。

測定IDの取得

まず、Google Analytics 4(GA4)の測定IDを取得します。Google Analyticsの管理画面から「データストリーム」を選択し、ウェブストリームの測定ID(G-XXXXXXXXXXの形式)をコピーしてください。

環境変数ファイルに測定IDを追加します。

.env.local
NEXT_PUBLIC_GA_ID=G-XXXXXXXXXX

NEXT_PUBLIC_ プレフィックスを付けることで、クライアントサイドからもアクセス可能になります。

@next/third-partiesのインストール

Next.js 14以降では、@next/third-parties パッケージを使うことでGoogle Analyticsを簡単に導入できます[1]

npm install @next/third-parties

_app.tsxへの組み込み

Pages Routerの場合、_app.tsxGoogleAnalytics コンポーネントを追加します。

pages/_app.tsx
import { AppProps } from 'next/app'
import { GoogleAnalytics } from '@next/third-parties/google'

const GA_ID = process.env.NEXT_PUBLIC_GA_ID || ''

export default function MyApp({ Component, pageProps }: AppProps) {
  return (
    <>
      <Component {...pageProps} />
      {process.env.NODE_ENV === 'production' && GA_ID && (
        <GoogleAnalytics gaId={GA_ID} />
      )}
    </>
  )
}

process.env.NODE_ENV === 'production' の条件を追加することで、開発環境でのアクセスは計測から除外されます。

デプロイ先での環境変数設定

.env.local はローカル開発用のファイルであり、デプロイ先には反映されません。本番環境でGoogle Analyticsを動作させるには、ホスティングサービスの管理画面から環境変数を設定する必要があります。

私の場合はCloudflare Pagesを使っているので、以下の手順で設定しました。

  1. ダッシュボードで対象のプロジェクトを選択
  2. 「設定」→「環境変数」を開く
  3. 「本番環境」に NEXT_PUBLIC_GA_ID を追加し、測定IDを入力
  4. 保存後、再デプロイを実行

使用上の留意点

Google Analyticsを導入する際は、以下の点に注意してください。

  • プライバシーポリシー:Google Analyticsを使用する場合、プライバシーポリシーへの記載が必要です
  • データの反映:計測データがGoogle Analyticsの管理画面に反映されるまで、24〜48時間かかる場合があります
脚注
  1. GoogleAnalytics - @next/third-parties ↩︎