コンテンツにスキップ

テレメトリ

Next.js は、一般的な使用状況に関する完全に匿名化されたテレメトリデータを収集します。この匿名プログラムへの参加は任意であり、情報を共有したくない場合はオプトアウトできます。

テレメトリはなぜ収集されるのですか?

Next.js はリリース以来大幅に成長し、開発者にとって事実上の React フレームワークとなりました。テレメトリ収集以前は、Next.js を改善する方法についての意思決定は非常に手作業で行われていました。

たとえば、Vercel は 自身で開発した製品を実際に使用します (Next.js ウェブサイトを含む)。さらに、コミュニティと積極的に交流してフィードバックを収集しています。

しかし、このアプローチではユーザーの一部からしかフィードバックを収集できません。この一部のユーザーは、あなたとは異なるニーズやユースケースを持っている可能性があります。テレメトリにより、Next.js の機能の使用状況、課題、カスタマイズを正確に把握できます。

このデータにより、Next.js をより多くのユーザーに適合させ、その継続的な成長、関連性、そしてクラス最高の開発者体験を確保することができます。さらに、フレームワークに加えられた改善が、すべてのアプリケーションのベースラインを向上させているかどうかを確認できるようになります。

何が収集されますか?

Next.js プラグインやビルドパフォーマンスなど、一般的な使用状況情報を追跡します。具体的には、以下のものを匿名で追跡します。

  • 呼び出されたコマンド (next buildnext dev、または next export)
  • Next.js のバージョン
  • 一般的なマシン情報 (例: CPU 数、macOS/Windows/Linux、コマンドが CI 内で実行されたかどうか)
  • プロジェクトに含まれる Next.js プラグイン
  • next build の期間とアプリケーションのサイズ (ページ数)
  • 開発中は、エラーに関する追加のフィードバックを求めています (エラーフィードバックを参照)

注意: このリストは、正確性を期すために定期的に監査されます。

以下の環境変数を設定することで、収集されているものを正確に確認できます: NEXT_TELEMETRY_DEBUG=1

この環境変数が設定されている場合、データは送信されません。データは stderr ストリーム に、[telemetry] というプレフィックスを付けて出力されるだけです。

テレメトリイベントの例は次のとおりです。

{
  "eventName": "NEXT_VERSION",
  "payload": {
    "version": "9.0.5-canary.2",
    "isDevelopment": false
  }
}

機密データ (例: シークレット) についてはどうなりますか?

機密データを含む可能性のあるメトリクスは収集しません

これには、環境変数、ファイルパス、ファイルのコンテンツ、ログ、またはシリアライズされた JavaScript エラーなどが含まれますが、これらに限定されません。

プライバシーとセキュリティは非常に重要視しています。Next.js のテレメトリは、セキュリティ開示ポリシー の対象となります。

収集したデータも完全に匿名化されており、ソースに追跡できず、集計形式でのみ意味があります。

収集したデータには、個人を特定できる情報は一切含まれていません。

このデータは共有されますか?

テレメトリデータは、製品改善のために内部で使用し、ビジネス目的 (マーケティングなど) でのみ、集計された個人を特定できないデータを共有します。

エラーフィードバック

開発中にエラーが表示された場合、Next.js は、エラーが役立ったかどうかに関するフィードバックの送信を許可します。このフィードバックは Vercel に送信され、Next.js のエラーメッセージの改善に使用されます。Next.js は、このフィードバックを自動的に収集しません。開発者は、サムアップまたはサムダウンボタンをクリックして、対応するフィードバックを送信する必要があります。

Next.js は、エラーコードと、自動的に収集されるその他の情報のみを収集します。エラーコードは、特定のエラーの一意の識別子です。エラーメッセージには、エラーが発生したページなどのアプリ固有のデータが含まれる可能性があるため、このコードから完全なエラーメッセージを再構築することはできません。エラーコードとその対応するメッセージのリストは、vercel/next.js/packages/next/errors.json で入手できます。

オプトアウトするにはどうすればよいですか?

プロジェクトのルートディレクトリで next telemetry disable を実行することでオプトアウトできます。

npx next telemetry disable
yarn next telemetry disable
pnpm exec next telemetry disable
bun next telemetry disable

プロジェクトのルートディレクトリで next telemetry status を実行することで、いつでもテレメトリ収集のステータスを確認できます。

npx next telemetry status
yarn next telemetry status
pnpm exec next telemetry status
bun next telemetry status

プログラムに再度参加したい場合は、プロジェクトのルートディレクトリで以下を実行してテレメトリを再有効化できます。

npx next telemetry enable
yarn next telemetry enable
pnpm exec next telemetry enable
bun next telemetry enable

環境変数 NEXT_TELEMETRY_DISABLED=1 を設定することでもオプトアウトできます。