shion のアバター画像もくもくログページ一覧ブログ一覧技術メモ一覧ライセンス表記利用規約外部リンクconnpassGitHubSpeaker DeckTwitter[工事中]Shion のもくログバージョン1.2.5

もくもくログ

主にIT 関連のメモをもくもくと綴っていきます

この記事の情報は古い可能性があります
最終更新日:2018/04/15 15:35:36
Application Insights のユーザー解析機能を調べてみたApplication InsightsAzure

はじめに

ユーザー解析ツールといえば
Google Analytics が有名ですが、
実はApplication Insights でも同じようなことができつつあることを最近知りました。
気になったので、調べたことをメモしていきます。

ダッシュボードはこんな感じ

Application Insights とは

Application Insights とは、Microsoft Azure で使えるアプリケーションパフォーマンス管理サービスです。
サーバーサイドやWEB ページ、モバイル(※1) に組み込むことで、
下記のデータを収集し、Azure 上のダッシュボードでそれらを確認できるようになります。

  • 要求レート、応答時間、およびエラー率
    → ユーザーアクセス、ページの応答性などのパフォーマンス
  • 依存率、応答時間、およびエラー率
    → 外部サービスの応答パフォーマンス
  • 例外
  • ページビューと読み込みのパフォーマンス
  • Web ページからAJAX 呼び出し
  • ユーザー数とセッション数
  • サーバーマシンのパフォーマンスカウンター
  • DockerやAzureのホスト診断
  • 診断トレースログ
  • カスタムイベントとメトリック

ただし、組み込み対象によってはデータが取得できないものもあるのでご注意ください。
今回の調査では、静的WEB ページにJavaScript コードを組み込みましたが、
ホスティング環境には何もしていないため、そのデータは取得できていないです。

ちなみにアプリ自体の実行場所はどこでもよくて、組み込まれたSDK で取得したデータが
Azure に送信される仕組みなので、機能だけでも使うことができます。

※1 Visual Studio App Center およびHockey App と統合することで実現できるようです

静的WEB サイトへの組み込み方

ざっくりとした流れは下記になります。

  1. Azure 上でApplication Insights リソースを作成する
  2. 静的WEB ページに下記コードを</head> 直前に挿入する
    ``` html
    <!--
    To collect end-user usage analytics about your application,
    insert the following script into each page you want to track.
    Place this code immediately before the closing tag,
    and before any other scripts. Your first data will appear
    automatically in just a few seconds.

-->

3. 手順2 のスクリプト中にある```<your instrumentation key>``` を手順1で得たキーで差し替える

[Web ページ向けの Application Insights](https://docs.microsoft.com/ja-jp/azure/application-insights/app-insights-javascript) に
よくまとまっているので、詳細はこちらをご確認ください。


## Google Analytics, Firebase Analytics との比較
### 組み込み対象

サービス | 静的WEB ページ | モバイル | ゲーム | サーバー | 備考
--- | :---: | :---: | :---: | :---: | ---
Google Analytics | ○ | ○ | ○ | × | 
Firebase Analytics | × | ○ | ○ | × | 
Application Insights | ○ | △ | ? | ○ | モバイルは他サービスと連携が必要

#### Google Analytics
SDK はJavaScript, Android, iOS, Unity 向けに提供されている

#### Firebase Analytics
SDK はiOS, Andorid, C++, Unity 向けに提供されている

#### Application Insights
詳細は[開発者分析: 言語、プラットフォーム、統合](https://docs.microsoft.com/ja-jp/azure/application-insights/app-insights-platforms#projects)をご確認ください。

##### 正式サポート
.NET(C#, VB), Java, JavaScript, Node.js 向けに提供されている

##### コミュニティ
PHP, Python, Ruby 向けのSDK があるらしい


### 機能比較
ユーザー解析のことがよくわからないので、ざっくりとした観点で比較します。

機能 | Google Analytics | Firebase Analytics | Application Insights
--- | :---: | :---: | :---:
ユーザーの実行環境の確認 | ○ | ○ | ○
ユーザー属性(性別とか)の確認 | ○ | ? | ×
コホート分析 | ○ | ○ | ○
行動フロー(ページ遷移) | ○ | × | ○
集客情報 | ○ | ○ | ?
収益データの確認 | ○(AdSense と連携) | ○(AdMob) | ×
アプリ例外ログの確認 | × | ○(Crashlytics) | ○


## おわりに
アクセス解析ツールで集めたデータは、提供サービスの改善に使うのはもちろんですが、
さらなる活用のためにデータを他ツールで解析することがあると思います。
しかしツールを跨ごうとすると、WEB API を用意したりするなどの手間かかるかと思います。

なのでなるべく1つのサービス内で完結できるのがうれしいです。

今回調べたApplication Insights はAzure 内で完結でき、
またバックエンド側のデータも集められるので、
より包括的なデータ活用ができるのではと期待しています。

もちろん不得手なものもあるでしょうが、
Application Insights にとても興味がわいたので、
継続的に追っていきたいなと思います。


## 参考文献

* [Application Insights とは何か?](https://docs.microsoft.com/ja-jp/azure/application-insights/app-insights-overview)
* [Google アナリティクス](https://developers.google.com/analytics/?hl=ja)
* [Firebase 向け Google アナリティクス](https://firebase.google.com/docs/analytics/)
一覧に戻る