テレメトリー拡張機能の作成者向けガイド
Visual Studio Code は、製品とサービスの改善に役立てるため、使用状況データを収集し、Microsoft に送信します。詳細については、弊社のプライバシーに関する声明およびテレメトリーのドキュメントをお読みください。
このトピックには、拡張機能が VS Code のテレメトリー要件とベストプラクティスに準拠できるよう、拡張機能の作成者向けのガイドラインが記載されています。
注: Microsoft に使用状況データを送信したくない場合は、ユーザー設定
telemetry.telemetryLevel
をoff
に設定できます。
テレメトリーモジュール
VS Code チームは、VS Code 内でテレメトリーを収集するための、一貫性のある安全な方法を提供する @vscode/extension-telemetry npm モジュールを管理しています。このモジュールは、Azure Monitor および Application Insights にテレメトリーを報告し、以前のバージョンの VS Code との後方互換性を保証します。
Azure Monitor をセットアップし、Application Insights のインストルメンテーション キーを取得するには、このガイドに従ってください。
テレメトリーモジュールなしの場合
Application Insights を使用しない拡張機能の作成者は、独自のカスタムソリューションを利用してテレメトリーを送信できます。この場合でも、拡張機能の作成者は isTelemetryEnabled
および onDidChangeTelemetryEnabled
API を利用して、ユーザーの選択を尊重する必要があります。これにより、ユーザーはテレメトリー設定を制御するための集中管理された場所を持つことができます。
カスタムテレメトリー設定
拡張機能は、VS Code のテレメトリーとは別に、拡張機能固有のテレメトリーに対してユーザー制御を提供したい場合があります。この場合、特定の拡張機能設定を導入することをお勧めします。ユーザーが設定 UI でより簡単に検索できるように、カスタムテレメトリー設定には telemetry
と usesOnlineServices
のタグを付けることをお勧めします。カスタムテレメトリー設定を追加しても、ユーザーの決定を尊重する義務が免除されるわけではなく、isTelemetryEnabled
および onDidChangeTelemetryEnabled
のフラグは常に尊重される必要があります。isTelemetryEnabled
が false を報告した場合、たとえ設定が有効になっていても、テレメトリーを送信してはなりません。
telemetry.json
テレメトリーが多くのユーザーにとって敏感なトピックであることは理解しており、可能な限り透明性を確保することを目指しています。コアとなる VS Code 製品とほとんどのファーストパーティ拡張機能は、ルートに telemetry.json
ファイルを同梱しています。これにより、ユーザーは --telemetry
フラグを付けて VS Code CLI を使用することで、VS Code が生成するすべてのテレメトリーのダンプを受け取ることができます。拡張機能の作成者もルートに telemetry.json
ファイルを含めることができ、そのファイルも CLI ダンプに表示されます。
すべきこととすべきでないこと
✔️ すべきこと
- Application Insights の使用が適切であれば、@vscode/extension-telemetry npm モジュールを使用してください。
- そうでない場合は、
isTelemetryEnabled
およびonDidChangeTelemetryEnabled
API を尊重してください。 - カスタムテレメトリー設定がある場合は、
telemetry
とusesOnlineServices
でタグ付けしてください。 - 可能な限り少ないテレメトリーを収集してください。
- 収集する内容について、ユーザーに対して可能な限り透明性を保ってください。
❌ すべきでないこと
- ユーザーの同意を求めないカスタムテレメトリー収集ソリューションを導入しないでください。
- 個人を特定できる情報 (PII) を収集しないでください。
- 必要以上にテレメトリーを収集しないでください。
telemetry.telemetryLevel
設定だけを使用しないでください。これは、isTelemetryEnabled
と比較して誤っている場合があります。