Webサイトにブラウザ側のApplication Insightsを導入した

このブログにブラウザ側のApplication Insightsを導入した。

Application InsightsでbrowserTimingsとpageViewsというテーブルにデータが入るようになった。 また、これらのデータをもとに分析もできるようになった。

ここではそれぞれのテーブルの中身や、これらのデータでできる分析について見ていく。

browserTimingsテーブル

Azure Portalの監視タブからログタブを選択すると、browserTimingsテーブルやpageViewsテーブルなどを閲覧できる。

browserTimingsテーブルでは、ページが要求されてからロードされるまでの工程で、どこがボトルネックになっているかを調査できる。

browser-timings

注目すべき項目は以下:

  • networkDuration: DNS解決、TCP/TLS接続など、ネットワーク接続が確立されるまでの時間
  • sendDuration: リクエスト送信後、サーバー処理を経て、最初のレスポンスを受け取るまでの時間
  • receiveDuration: 最初のレスポンスを受け取ってから、残りのレスポンス本文を受信し終えるまでの時間
  • processingDuration: レスポンス本文を受信し終えてから、ブラウザー側でDOMの読み込みが完了するまでの時間
  • totalDuration: 上記を合計した、ページ読み込み全体の時間

メトリクスタブからもこれらの指標を視覚的に閲覧できる。

browser-timings-metrics

pageViewsテーブル

pageViewsテーブルにはページが表示されるたびに新しいレコードが作られる。

SPA内でのページ遷移や、画面内のタブでの表示切り替えなどもページビューとして扱うことができる。

page-views

その他のテーブル

ここでは細かく触れないが、その他のテーブルにもレコードが追加される。

例外が出たらexceptionsテーブルにレコードが追加される。

サーバーに通信したらdependenciesテーブルにレコードが追加される。

カスタムイベントを定義して、customEventsテーブルで表示させることもできる。

イメージを掴むのに以下のページが参考になった。

Application Insights telemetry data model - Azure Monitor | Microsoft Learn

ユーザー

使用状況タブからユーザータブをクリックすると、ユーザーの情報が見られる。

このブログには認証がないので、匿名ユーザーの情報が見られる。

user

匿名ユーザーIDは、異なるデバイス・ブラウザなどでサイトを開くと生成され、クッキーとして保存される。

user-session

セッション

セッションタブからセッションを閲覧できる。セッションとは、ユーザーの活動を示したものだといえる。

同じサイトを表示し続けていても、30分以上動きがないと新しいセッションになる。また24時間以上使い続けていた場合も新しいセッションとなる。

session

セッションIDは匿名ユーザーIDと同様にクッキーとして管理されている。

イベント

イベントタブから、ページビューやカスタムイベントなど、ユーザー行動に関するイベント統計を確認できる。

このブログではカスタムイベントを定義していないし、サーバーへのリクエストもしていないので、得られる洞察はページビューと変わらない。

event

ファネル

ファネルタブでは、ユーザーが狙った通りの行動をどれくらい取ってくれたのか、つまりコンバージョン率が分かる。

最初にステップを定義する。例えばこのブログのトップページを開いたのち、「モノレポのすすめ」という記事を読むという行動パターンを設定する。

funnel-edit

ページ遷移やカスタムイベントなどをステップとして定義できる。

ビューをクリックすると結果を見られる。トップページから「モノレポのすすめ」を読んだ人の割合は66%だということが分かる。

funnel-view

ユーザーフロー

ユーザーフローでは、ユーザーの行動を可視化できる。

まずは起点を決める。起点はページビュー、カスタムイベント、例外などから選べる。

ここでは「モノレポのすすめ」というページビューを起点にする。すると、前後に起きたイベントが分かる。

user-flow

参考

Application Insights telemetry data model - Azure Monitor | Microsoft Learn

Usage analysis with Application Insights - Azure Monitor | Microsoft Learn

Supported metrics - microsoft.insights/components - Azure Monitor | Microsoft Learn

Metrics in Application Insights - Azure Monitor - Azure Monitor | Azure Docs