概要
Next.js
を使ってWebアプリケーションにGoogle Analyticsを導入することで、サイトのパフォーマンスを測定し、ユーザー行動を分析できます。これにより、ページビューやイベントトラッキングを行い、サイトの改善に役立つデータを得ることが可能です。Google Analytics 4(GA4)の導入は、next/script
コンポーネントを使って簡単に実装できます。
本記事では、Next.js
にGoogle Analyticsを組み込む具体的な手順を解説します。
必要な手順
Google Analyticsのセットアップ
まず、Google Analyticsのアカウントを作成し、新しいプロパティを設定します。GA4の測定ID(G-XXXXXXXXXX
)を取得し、これをNext.js
で使用するために環境変数に追加します。
NEXT_PUBLIC_GA_ID=G-XXXXXXXXXX
gtag.js
ファイルの作成
Google Analyticsのトラッキングコードを管理するために、lib/gtag.js
ファイルを作成します。このファイルでは、測定IDを使ってページビューを記録する関数pageview
を定義します。
export const GA_MEASUREMENT_ID = process.env.NEXT_PUBLIC_GA_ID;
export const pageview = (url) => {
window.gtag('config', GA_MEASUREMENT_ID, {
page_path: url,
});
};
next/script
コンポーネントの導入
Google Analyticsのスクリプトを読み込むために、next/script
コンポーネントを使用します。これを_app.tsx
や_document.tsx
に追加します。strategy="afterInteractive"
を指定して、ページがインタラクティブになった後にトラッキングが開始されるように設定します。
import Script from 'next/script';
function MyApp({ Component, pageProps }) {
return (
<>
<Script
strategy="afterInteractive"
src={`https://www.googletagmanager.com/gtag/js?id=${process.env.NEXT_PUBLIC_GA_ID}`}
/>
<Script
id="gtag-init"
strategy="afterInteractive"
dangerouslySetInnerHTML={{
__html: `
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', '${process.env.NEXT_PUBLIC_GA_ID}');
`,
}}
/>
<Component {...pageProps} />
</>
);
}
export default MyApp;
ページ遷移のトラッキング
Next.js
のアプリでは、クライアントサイドのルーティングが行われるため、ページ遷移が発生したときにもGoogle Analyticsにデータを送信する必要があります。router.events
を使い、ページ遷移ごとにpageview
を発火させます。
import { useRouter } from 'next/router';
import { useEffect } from 'react';
import * as gtag from '../lib/gtag';
function MyApp({ Component, pageProps }) {
const router = useRouter();
useEffect(() => {
const handleRouteChange = (url) => {
gtag.pageview(url);
};
router.events.on('routeChangeComplete', handleRouteChange);
return () => {
router.events.off('routeChangeComplete', handleRouteChange);
};
}, [router.events]);
return <Component {...pageProps} />;
}
export default MyApp;
データの確認
Google Analyticsのリアルタイムレポートで、設定が正しく動作しているか確認します。数分待った後、アクセスデータが記録されているかを確認しましょう。
まとめ
Next.jsにGoogle Analyticsを導入することで、ページビューやイベントのトラッキングを効果的に行い、ユーザーの行動を詳細に分析することができます。特に、next/script
を使ったトラッキングコードの実装や、ルート遷移時のページビュー計測など、リアルタイムにデータを取得する手法を紹介しました。これらのデータは、Webサイトのパフォーマンス向上やSEOの改善に役立ちます。Next.jsの強力な機能と組み合わせて、Google Analyticsを最大限に活用しましょう。