テレメトリー拡張機能作成者ガイド
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 のテレメトリーとは別に、拡張機能固有のテレメトリーに対してユーザーに制御を提供したい場合があります。この場合、特定の拡張機能設定を導入することをお勧めします。カスタム テレメトリー設定には telemetry および usesOnlineServices のタグを付けることをお勧めします。これにより、ユーザーは設定 UI でそれらをより簡単に照会できるようになります。カスタム テレメトリー設定を追加しても、ユーザーの決定を尊重し、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およびonDidChangeTelemetryEnabledAPI を尊重してください。 - カスタム テレメトリー設定がある場合は、
telemetryおよびusesOnlineServicesのタグを付けてください。 - 可能な限り少ないテレメトリーを収集してください。
- 収集する内容について、ユーザーに対して可能な限り透明性を保ってください。
❌ すべきでないこと
- ユーザーの同意を求めないカスタム テレメトリー収集ソリューションを導入すること。
- 個人を特定できる情報 (PII) を収集すること。
- 必要以上に多くのテレメトリーを収集すること。
isTelemetryEnabledと比較して誤っている場合があるため、telemetry.telemetryLevel設定のみを使用すること。