概要

開発者は、何百万人もの Microsoft Teams ユーザーが特定のビジネスまたは顧客の目標を達成するためのアプリを構築します。 この目的のために、使用できる多数の配布オプションの 1 つ以上を使用して配布します。 アプリが発行されたら、実際のアプリのパフォーマンスを測定する必要があります。

また、次のような多くのデータ ポイントを監視することにも関心があります。

  • アプリに関心を持っているユーザー
  • アプリを使用しているユーザーと組織はどれですか?
  • ユーザーはアプリにどのように関与していますか?
  • アプリをしばらく使用した後に離れたユーザーはどれですか?

この情報は、ビジネス目標に対するデータの分析、問題の修正による是正措置の実行に役立ちます。 また、ユーザー体験に介入したり、アプリの機能投資、拡張機能、導入に関する情報に基づいた意思決定を行ったりするのにも役立ちます。

しかし、Teams アプリの使用状況レポートで十分でしょう。

アプリの開発者は、Microsoft Teams ストアでアプリを公開してから 1 週間以内に、パートナー センターの Teams アプリ使用状況レポート でアプリの使用状況を追跡できます。 カスタム アプリ開発者は、Teams 用開発者ポータルで カスタム アプリの使用状況分析 を見つけることができます。 パートナー センターの使用状況レポートには、ユーザーの需要、ユーザーチャーン、アプリの使用状況の頻度を追跡できる標準メトリックが用意されています。 これらのレポートは、次のような集計レベルで使用できます。

  • 毎月、毎日、毎週アクティブなユーザー。
  • 保持と強度のグラフ。
  • 過去 1 か月間にアプリを 5 日以上使用したユーザー。
  • プラットフォーム、オペレーティング システム、アプリのユーザーの地理的な分割など。

パートナー センターまたは Teams 用開発者ポータルで利用できるすぐに使用できる使用状況レポートでは、アプリ内で行う内容と特定のユーザー レベルの分析を詳細に分析することはできません。 このような分析には、アプリ内でのユーザーの体験、または特定の機能に対するユーザーの関与、シナリオの完了の測定が含まれます。

Teams 上のアプリは、基本的に、Azure クラウドなど、他の場所でホストされている Web ベースのサービスです。 これは、ユーザーがアプリを使用できる Microsoft Teams シェル内に埋め込まれており、表示されます。 これは、タブ、ボット、メッセージ拡張機能、会議拡張機能、カード、ダイアログ (TeamsJS v1.x のタスク モジュールと呼ばれます) など、使用される プラットフォーム機能 に関係なくアプリに適用されます。 これらの機能はすべて、Teams 内で Web ベースのエクスペリエンスを表示するための手段です。

Web ブラウザーで実行される SaaS 製品の場合と同じように、Teams アプリの分析を計画します。

分析を早期に計画する

開発設計とソリューション アーキテクチャの段階で、Teams アプリの分析を計画します。 Teams 内で最適化またはゼロから構築する Teams のタブ、ダイアログ、会議アプリなど、ホストされているキャンバスコンストラクトに対して、コア SaaS Web アプリの既存のデータインストルメンテーションとプラクティスのどれが発生するかを調べます。 ボットやメッセージ拡張機能などの 会話構造 などの Teams 固有の機能の場合は、分析インストルメンテーションを計画して実装し、関連するイベントとコンテキストを SDK メソッドからゼロからキャプチャする必要があります。

その時点で、運用 Teams アプリは Teams ストアに公開され、顧客は使用を開始します。分析とデータ インフラストラクチャは完全に運用されている必要があります。 追跡を見逃さないようにします。

  • インストルメンテーション マーカーが発生する。
  • Teams 固有のイベントと、これらのイベントに含まれる関連するコンテキスト情報。その一部は、後で使用するために SaaS バックエンドでキャプチャするためにトリガーされます。

たとえば、Teams ユーザーのMicrosoft Entraユーザー ID は、ユーザーがボット アプリをインストールしたときに特定のボット イベントが発生したときにキャプチャする必要があります。 このユーザー ID は、メール アドレスなど、ユーザーの実際のプロファイル ID にマップできます。 これにより、後でボットを介してプロアクティブな通知をユーザーに送信できます。

分析のためのアプリのインストルメント化

分析マーカー (インストルメンテーション マーカーとも呼ばれます) を使用してコードをインストルメント化することは、標準的な Web アプリケーション開発プラクティスです。 コード内の堅牢なインストルメンテーションは、長期的な成功に不可欠です。 集計メトリックとユーザー固有のメトリックの両方を測定するのに役立ちます。

注:

作業を開始する前に、厳格なデータ処理とプライバシー ポリシーに従い、規制上の義務に準拠してユーザー データを処理することを忘れないでください。

Teams アプリは、ソリューションをエンド ユーザーに公開する別の画面であり、別のウィンドウを SaaS ランドスケープに公開します。 ソリューションが複数のプラットフォーム (Web、モバイル プラットフォーム、および Teams) に拡張されるにつれて、インストルメンテーションをレイヤーで表示することが重要です。

レイヤーのテレメトリ

ソリューションに関連するデータ インストルメンテーションには、次の 2 種類があります。

注:

このドキュメントの残りの部分では、使用できるコンテキスト内データのみを推奨していますが、規制上の義務に取って代わるものではありません。

コア SaaS 製品またはアプリのデータ インストルメンテーション

これは、Teams と統合しているかどうかに関係なく、ブラウザー ベースの SaaS アプリに対して実行するインストルメンテーションです。 ブラウザー ベースの SaaS アプリがある場合は、おそらく、このインストルメンテーションがコードで既に行われています。 クリック分析と顧客ライフサイクル分析を確認する方法は次のようになります。 また、コンバージョン分析の指標 (直帰率、ページ ビュー、一意の訪問者数、セッション数、エンゲージメント時間、クリックスルー率など) を Web アプリで確認することもできます。

Teams 固有のアプリ内のデータ インストルメンテーション

このインストルメンテーションは、現在 Teams クライアント内で表示されているため、SaaS アプリでさらに実行する必要があります。 プレゼンテーション レベルでは、アプリケーションはさまざまなモダリティにわたってエンド ユーザーによってアクセスされます。 各モダリティには、独自のユーザー操作ポイントがあり、そのモダリティに固有のインストルメンテーション キャプチャを容易にするメタデータがあります。 たとえば、製品の表示は、Web アプリのページ ビューとモバイル アプリでの画面追跡を介して追跡される場合があります。 同様に、Teams アプリでは、ボット、メッセージ拡張機能など、Teams 内でのみ使用できるプラットフォーム機能が 1 つ以上使用されている場合があります。または、会議拡張機能、Microsoft Graph を使用したインテリジェントな M365 対応シナリオ、リンクの展開など、Teams 固有のユース ケースに対処するためのエクスペリエンスを作成しました。 これらの一意の Teams アプリ エクスペリエンスからのインストルメンテーションのキャプチャについては、このドキュメントの残りの部分で詳しく説明します。

Teams アプリ固有の分析のインストルメント化

このセクションには、検索対象、キャプチャするイベント、インストルメンテーション マーカーの使用方法、アプリの分析の計画と実装に役立つ Teams 関連情報をフェッチする場所に関するガイドラインとポインターが含まれています。 Teams アプリは、タブ、ボット、メッセージ拡張機能、カード、ステージビューなど、または個人用または共有スコープ全体でこれらの 機能と UI コンストラクト の任意の組み合わせにすることができます。 これらの各機能について、インストルメンテーションを理解し、計画し、実装することをお勧めします。

Teams プラットフォーム機能は、大きく 2 つのコンストラクトに分類できます。

ホストされた Web キャンバスコンストラクト

ビジュアル キャンバス指向の機能は、タブ、個人用アプリ、ダイアログ (埋め込み iframe の表示)、ステージビュー、会議タブ、共有会議ステージ、会議内ダイアログなど、Microsoft Teams に埋め込まれた Teams 対応の Web ページです。 これらは、Web ブラウザーで実行される SaaS アプリの残りの部分でクラウドでホストされます。

これらの Web ページには、多くの場合、主要な SaaS Web アプリのニーズに合わせてインストルメンテーションが行われています。 Teams 固有のイベントをキャプチャし、コード内の Teams 固有のインストルメンテーション用に処理するだけで済みます。 これは、タブが "Teams 対応" Web ページであるという分析ニーズに便利です。

ここで定義されている前提条件に従ってタブを作成する場合は、Teams JavaScript クライアント SDK をタブのコンテンツまたは構成ページに追加します。 これにより、ページが Teams 固有の情報または コンテキストにアクセスできるようになります。 この情報は、次のようなユーザー固有の有用な分析情報に使用します。

  • 現在のユーザーtid () の Microsoft 365 テナント ID (Microsoft Entra テナント)。 Microsoft 365 または Microsoft Entra IDでは、テナントはユーザーの会社であるorganizationの代表です。 Microsoft 365 テナント ID は、ユーザーが属している Microsoft 365 テナントを見つけてログに記録するのに役立ちます。 テナント ID がわかったら、organizationのテナント ドメインを確認できます。多くの場合、このGraph APIを使用してorganizationの名前が表示されます。 必要なテナント管理者のアクセス許可に同意できるため、Microsoft 365 Developer テナントでこの API を呼び出してください。
  • ユーザーに割り当てられたライセンスの種類と、現在のユーザーのテナントの SKU。 使用可能な値は、(licenseType) とエンタープライズの F1、E1、E3、E5 エンタープライズ プラン、free、edu、および unknown for (tenantSKU) です。
  • タブ URL が読み込まれるコンテキスト。 可能な値には、コンテンツ ページ、ダイアログ、タブ設定ダイアログ、タブ削除ダイアログ、会議 sidePanel などがあります。 (frameContext).
  • タブが読み込まれるホスト クライアントの種類。 使用できる値は、Android、IoS、Web、デスクトップ、surfaceHub などです。 (hostClientType). 分析データをスライスできます。
  • ユーザーが言語 (en-us、fr-fr、ja-jp など) を示すロケール認識。 (locale).
  • 現在のテナント内の現在のユーザーのユーザー プリンシパル名またはログイン ヒント (loginHint通常はユーザーのメール アドレス)。
  • チャネル タブが追加されるチーム名とチャネル名 (teamNamechannelName)。
  • インストルメンテーション データの関連付けに使用されるタブ内の現在のアプリ セッションの一意の ID (appSessionId)。
  • 会議 ID は、会議コンテキストで実行されているタブによって使用され、応答ペイロード (meetingId) に追加されます。
  • 現在のユーザーのMicrosoft Entra ID。

タブ コンテキストから Teams 固有の情報を抽出した後、それを使用できるいくつかの方法を次の例に示します。

Teams 固有の情報を追跡する 結果
ユーザーのorganization。 特に、販売アウトリーチのための SaaS 製品の新しいサインアップまたはフリーミアム オファリングの試用期間を提供する場合は、アプリの需要を追跡し、organizationをオンボードし、支援のためにチェックします。
ユーザーのorganizationの種類とユーザーのロール。 ライセンスの種類とテナント SKU を使用して、Teams ユーザーの顧客プロファイルを作成します。 使用状況、セッション、リテンション期間などの分析データをスライスします。機能、エクスペリエンスなどを調整します。したがって。
チーム名またはチャネル名からのホスト クライアントの種類、ロケール、使用状況コンテキストの推論。 ユーザー分析で顧客のプロファイルを強化します。
フレーム コンテキスト。 ユーザーがアプリを使用しているコンテキスト、ユーザーの体験、および使用パターンに関する情報を、さまざまな領域、機能、スコープから取得します。 ユーザーのエクスペリエンスを適切に作成し、ユーザーに人気のある機能にさらに投資します。
ユーザーのメール アドレス。 意味のある実際の ID を Teams ユーザーに関連付け、Microsoft 365 テナント organizationのドメイン アドレス (つまり、contoso.onmicrosoft.com) を指定します。 ユーザーが属しているorganizationを特定します。 ユーザーの電子メール アドレスを使用して、ユーザーのプロファイルを完了し、アクティブ化、再マーケティング、再エンゲージメントのためにユーザーと通信できます。 ただし、このチャネルを誤用したり、ユーザーをスパムしたりしないように注意してください。
ユーザー ID またはオブジェクト ID をMicrosoft Entraします。 アプリ (ボット) のインストール時に一意のMicrosoft Entraユーザーまたはオブジェクト ID を取得して格納します。 ボットを介してプロアクティブな通知をユーザーに送信します。

会話型コンストラクト

会話またはチャット指向の機能には、Teams ユーザー用に作成されたボット、メッセージ拡張機能、カード、ダイアログ (アダプティブ カードの表示) が含まれます。 概念的には、これらのエクスペリエンスは、Teams 内のユーザーに対してのみ作成され、使用できます。 Teams 固有のイベントをキャプチャし、これらのコンストラクトを最初からコードで Teams 固有のインストルメンテーションで処理する必要があります。 ボットは、インストールされているチーム、チャット、会議、1:1 通話、またはグループ通話に関する追加のコンテキスト データにアクセスできます。

ボットの機能とユーザー エクスペリエンスを強化するには、次の情報を使用します。

  • Teams ユーザー ID や、名前やMicrosoft Entraユーザー ID やオブジェクト ID などのMicrosoft Entra情報など、メンバーとその基本的なユーザー プロファイルの一覧をボットに照会します。

  • ユーザーのMicrosoft Entraユーザーまたはオブジェクト ID を使用して、チーム内のユーザーの名、姓、電子メール アドレス、テナント ID、およびユーザーのロールを見つけます。 ホストされた Web キャンバス コンストラクトに関する説明に従って、これらの詳細を活用します。

  • ボットがチームにインストールされている場合は、Microsoft Entra グループ ID やチーム名など、そのチームに関するメタデータをクエリします。 また、チーム内のチャネルの一覧を照会して、チャネル ID と名前を返すこともできます。 構成、セットアップ、パーソナル化にこの情報を活用します。

  • 会議の詳細 API を使用して、会議の種類 (、、、または)、会話の種類、GroupCallMeetNowOneToOneCallBroadcastRecurringAdhocScheduled開催者テナント ID など、会議または通話の静的メタデータを取得します。Unknown

Teams によってボットに送信される各アクティビティには、これらの関連フィールドをすべて取得できるオブジェクトが含まれます turnContext 。 ホストされた Web キャンバスコンストラクトに関する説明と同様の方法で利用できます。

メッセージ拡張機能はボット チャネルに基づいているため、上記のほとんどはメッセージ拡張機能にも適用されます。

集計とユーザー固有の分析情報

SaaS の世界の明らかなメトリック (毎日、毎週、毎月のアクティブ ユーザーなど) に加え、上記のガイダンスに従って、Teams アプリの分析を慎重に実装するアプリに費やした時間は、次のような分析情報を得ることができます。

  • メトリックの集計

    • Teams アプリで利用されているプラットフォーム機能、領域 (タブ、ボット、メッセージ拡張機能など) と UI コンストラクト (カード、ダイアログ、ステージビュー) は、ユーザーが最も多く使用していることがわかりましたか?
    • ユーザーがアプリを呼び出して Teams 内で新しいアプリ セッションを開始するために最も使用されるスコープまたは UI エントリ ポイント (個人用アプリ、チャネル、グループ チャットなど) はどれですか?
    • アプリをインストールした後の最初の 1 週間に、ユーザーがアプリを使用する平均日数はいくつですか?
    • アプリまたはアプリ内の特定の機能 (個人用アプリやボットなど) の週単位または月単位の新しいユーザーリテンション期間のコーホート分析は何ですか?
    • Teams モバイル クライアントでのみアプリを使用するユーザーの数
    • アプリでカメラ デバイス機能を使用したユーザーの数はいくつですか?
    • ファネル分析では、アプリのインストールからアクティブ化、エンゲージメント、リテンション期間、最後に収益化まで、さまざまなフェーズでアプリに対して何が明らかになりますか? ドロップダウンはどこで発生していますか?
    • 過去 1 週間にアプリをインストールしたユーザーの数はいくつですか?
    • 過去 3 か月間にアプリから離れたユーザーの数はいくつですか? 結果として得られる四半期チャーン率は何ですか?
    • 過去 30 日間にアプリのインストールの最大数を確認したorganizationはどれですか?
    • 過去 14 日間にアプリをインストールしたユーザーはどの組織に属していますか?
    • 過去 7 日間にアプリの試用版サインアップの最大数を確認したorganizationはどれですか?
    • アプリはどの種類の会議 (GroupCall、、OneToOneCallAdhocBroadcastRecurringMeetNowまたはScheduled) で使用されますか?
  • ユーザー固有のメトリック

    • 前回のアプリ更新でアプリに実装したチャネル タブ機能をまだ体験していないユーザーはどれですか?
    • 個人用アプリ内でオンボードを完了していないユーザーはどれですか?
    • 過去 1 週間にアプリをインストールしたユーザーのうち、インストール後に 1 回もアプリに戻っていないユーザーはどれですか?
    • アプリをインストールしたが、まだアプリにサインインしていないユーザーはどれですか?
    • 過去 30 日間に特定のユーザーが Teams アプリを使用した回数はいくつですか?
    • 特定のユーザーが過去 7 日間にアプリをアクティブに使用した日数はいくつですか?
    • 特定のユーザーが Teams でアプリを最後に使用したのはいつですか?
    • Teams 内の特定のアプリ ユーザーの体験は何でしたか?
    • 過去 3 か月間にアプリから離れたユーザーはどれですか?
    • 特定のユーザーが Teams 会議でアプリを使用しましたか?

次に、データインストルメンテーション戦略を体系的に作成する方法を確認し、Teams アプリの使用状況から派生させる特定の分析情報に基づいて測定する方法を決定します。

次の手順