Visual Studio Mobile Centerのアナリティクス機能をiOSアプリで試してみた

アナリティクス機能を試してみる

こんにちは!モバイルアプリサービス部の加藤潤です。
前回、VSMCのクラッシュレポート機能を試してみました。

今回はアナリティクスの機能を試してみたいと思います。

VSMCは記事執筆時点でPreview版です。そのため、正式版リリース時には機能が異なる可能性がありますのでご注意ください。なお、Preview版の間は無料で利用できます。

Mobile Center SDKを組み込む

アナリティクスの機能を使うにはクラッシュレポートの時と同様、アプリにMobile Center SDK for iOSを組み込む必要があります。

今回もCocoaPodsを使って導入します。
Podfileにpod 'MobileCenter' もしくは pod 'MobileCenter/MobileCenterAnalytics' を記述します。

前者はAnalyticsはもちろんの事、Crashesも含むMobileCenterの全てのサービスを使う場合の記述です。
後者はAnalyticsサービスのみ使う場合の記述です。

今回は後者の書き方で試しました。 あとはpod installを実行すればSDKがダウンロードされます。

SDKのセットアップ

pod install 完了後、.xcworkspaceを開きます。
AppDelegate.swiftに以下のimport文を追加します。

import MobileCenter
import MobileCenterAnalytics

application(_:didFinishLaunchingWithOptions:)メソッド内に以下を記述します。

MSMobileCenter.start("{Your App Secret}", withServices: [MSAnalytics.self])

{Your App Secret}の部分はご自身の環境に合わせて設定してください。

AppシークレットはGetting Startedのトップページもしくは「Manage app」から確認できます。
前回の記事でもAppシークレットを使っているのでご覧ください。

セッション、デバイス情報は自動で収集される

MSMobileCenter.start("{Your App Secret}", withServices: [MSAnalytics.self])を実行するだけでセッションやデバイス情報(OSのバージョンやデバイスのモデル名など)は自動で収集されます。

カスタムイベントについて

カスタムイベントを使えば、アプリで何が起こったか、ユーザーがどういった操作を行ったかをトラッキングすることができます。
カスタムイベントには以下のような特徴、制限があります。

  • 最大5つのプロパティを持つ
  • 異なるイベントを最大200件まで送ることができる
  • イベント名は最大256文字
  • イベントプロパティ名とイベントプロパティの値は最大64文字

カスタムイベントを収集してみる

今回はサンプルアプリとして、以下のような2つの画面があり、各画面にボタンを配置したアプリを作ってみました。 このアプリを使って以下のカスタムイベントを収集してみたいと思います。

  • 画面遷移
  • ボタンタップ

analytics_sample_app

カスタムイベントを収集するコードは以下のような実装にしました。 trackEvent()メソッドを呼ぶだけです。
viewDidAppearのタイミングで画面遷移、ボタンタップのアクションメソッド内でボタンタップのイベントを収集しています。
プロパティとして、「どの画面で発生したイベントなのか」がわかるようにScreen属性としてAという画面名を付与しています。

カスタムイベントのサンプルコード(画面A)

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)

    MSAnalytics.trackEvent("View Did Appear", withProperties: ["Screen" : "A"])
}

@IBAction func didTapScreenAButton(_ sender: Any) {
    MSAnalytics.trackEvent("Button Tapped", withProperties: ["Screen" : "A"])
}

画面Bも上記と同様(Screen属性がBになっただけ)にカスタムイベントを収集するコードを実装しました。

実行結果

何回か画面遷移やボタンタップを行ってみました。 アナリティクスの結果はVSMCの管理画面左側にある「Analytics」の部分から確認することができます。

Audience

Audienceのページでは、アクティブユーザー数、セッション間隔、国、言語、デバイスの種類、OSのバージョンなどが確認できました。 これらはMSMobileCenter.start("{Your App Secret}", withServices: [MSAnalytics.self])を実行することにより自動で収集された情報です。

audicence

Events

Eventsのページでは、カスタムイベントの一覧とカウントなどが表示されていました。
今回定義した2つのカスタムイベントもちゃんと取れていました。

events

こちらは「View Did Appear」イベントをタップして詳細を表示した画面です。
ユーザー数やイベントのカウントが見れます。
また、Screen属性の値もちゃんと取れています。

view_did_appear

こちらは「Button Tapped」イベントの詳細です。こちらもちゃんと取れていました。

button_tapped

Log flow

Log flowは発生したイベントをリアルタイムに確認できる画面のようです。 ボタンをタップして数秒後には表示されていました。

log_flow

おわりに

今回はアナリティクスの機能を試してみました。 一通り欲しい情報が取れることが確認できました。
画面からは収集した情報をエクスポートするような機能は見つけられなかったのですが、 APIも提供されているのデータの分析・活用もできそうです。

参考