アナリティクスの設定方法
Next.jsにはパフォーマンスメトリクスの測定とレポート作成のための組み込みサポートがあります。useReportWebVitals
フックを使用して自分でレポート管理を行うか、またはVercelが提供するマネージドサービスを利用してメトリクスを自動的に収集・可視化できます。
クライアントインストルメンテーション
より高度なアナリティクスとモニタリングの必要性に対応するため、Next.jsはアプリケーションのフロントエンドコードが実行される前に実行されるinstrumentation-client.js|ts
ファイルを提供しています。これはグローバルなアナリティクス、エラートラッキング、またはパフォーマンスモニタリングツールをセットアップするのに理想的です。
使用するには、アプリケーションのルートディレクトリにinstrumentation-client.js
またはinstrumentation-client.ts
ファイルを作成します:
独自の実装
詳細についてはAPIリファレンスを参照してください。
Web Vitals
Web Vitalsはウェブページのユーザー体験を把握するための有用なメトリクスセットです。以下のWeb Vitalsがすべて含まれています:
- Time to First Byte (TTFB)
- First Contentful Paint (FCP)
- Largest Contentful Paint (LCP)
- First Input Delay (FID)
- Cumulative Layout Shift (CLS)
- Interaction to Next Paint (INP)
これらのメトリクスの結果はすべてname
プロパティを使用して処理できます。
カスタムメトリクス
上記のコアメトリクスに加えて、ページのハイドレーションとレンダリングにかかる時間を測定する追加のカスタムメトリクスがあります:
Next.js-hydration
: ページのハイドレーション開始から完了までの時間(ミリ秒)Next.js-route-change-to-render
: ルート変更後のページレンダリング開始までの時間(ミリ秒)Next.js-render
: ルート変更後のページレンダリング完了までの時間(ミリ秒)
これらのメトリクスの結果は個別に処理できます:
これらのメトリクスはUser Timing APIをサポートするすべてのブラウザで動作します。
外部システムへの結果送信
結果を任意のエンドポイントに送信して、サイト上の実際のユーザーパフォーマンスを測定・追跡できます。例:
知っておくと良い: Googleアナリティクスを使用する場合、
id
値を使用すると手動でメトリクス分布を構築できます(パーセンタイル計算など)
Googleアナリティクスへの結果送信について詳しく読む。