テレメトリ拡張機能作成者ガイド
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 ダンプにも表示されます。
推奨事項と禁止事項
✔️ すべきこと
- アプリケーションインサイトが機能する場合は、@vscode/extension-telemetry npm モジュールを使用してください。
- それ以外の場合は、
isTelemetryEnabled
およびonDidChangeTelemetryEnabled
API を尊重してください。 - カスタムテレメトリ設定がある場合は、
telemetry
およびusesOnlineServices
のタグを付けてください。 - 可能な限り少ないテレメトリを収集してください。
- 収集する内容について、可能な限りユーザーに透明性を示してください。
❌ すべきでないこと
- ユーザーの同意を求めないカスタムテレメトリ収集ソリューションを導入してください。
- 個人を特定できる情報 (PII) を収集してください。
- 必要以上に多くのテレメトリを収集してください。
isTelemetryEnabled
と比較して不正確な場合があるため、telemetry.telemetryLevel
設定だけを使用してください。