目次
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.tsx に GoogleAnalytics コンポーネントを追加します。
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を使っているので、以下の手順で設定しました。
- ダッシュボードで対象のプロジェクトを選択
- 「設定」→「環境変数」を開く
- 「本番環境」に
NEXT_PUBLIC_GA_IDを追加し、測定IDを入力 - 保存後、再デプロイを実行
使用上の留意点
Google Analyticsを導入する際は、以下の点に注意してください。
- プライバシーポリシー:Google Analyticsを使用する場合、プライバシーポリシーへの記載が必要です
- データの反映:計測データがGoogle Analyticsの管理画面に反映されるまで、24〜48時間かかる場合があります
