MBaaS徹底入門――Kii Cloudでスマホアプリ開発

第10回Kii Cloudを用いたチャットアプリケーションの開発その6]―アプリケーションのデータ分析(解説編)

第9回までで一通りチャットアプリケーションに必要な機能は実装できました。しかし、アプリケーションは一度作成して終わりではありません。ユーザからのフィードバック・機能の利用状況などの情報を元に、より良いものに改善していく必要があります。

Kii Cloudでは、アプリケーション内のデータ分析をサポートする機能を提供しています。分析したデータを元に、新機能実装・機能改善などを効率良く行えます。

第10回、第11回では、上述のデータ分析を利用した機能改善の例として、第8回で実装したスタンプ機能に焦点を当てます。スタンプの利用状況を分析して、人気ランキングを作ってみましょう。

なお、今回の記事での変更を加えたソースコードには、以下のリンクからアクセスできます。

2つのデータ分析機能

Kii Cloudは以下の2種類のデータ分析機能を提供します。これらは、データをどのような観点で分析するかを決める評価尺度(以下、メトリクスと表記)に違いがあります。メトリクスは、⁠特定のフィールドの値(ゲームアプリであれば、スコアなど)を累計する」のように、アプリケーション内の「どのデータを」⁠どう処理するか」を決定します。

  • Basic Analytics: Kii Cloudがデフォルトで定義しているメトリクスを用いて、アプリケーション内のデータ(ユーザ、オブジェクトなど)の分析を行う
  • Flex Analytics: 開発者が自由に定義したメトリクスを用いて、アプリケーション内のデータ(ユーザ、オブジェクトなど)の分析を行う

Basic Analytics

Basic Analyticsが使用しているメトリクスの一部を、以下に示します。全てのメトリクスを確認したい場合は以下を参照して下さい。

どのデータを?どう処理するか?
ユーザサインアップしたユーザ数の累計
削除したユーザ数の累計
オブジェクト作成したオブジェクト数の累計
削除したオブジェクト数の累計

Basic Analyticsの分析結果は、開発者ポータルから確認できます。以下の図は、オブジェクトのBasic Analyticsの結果画面です。

Basic Analyticsは、アプリケーションリリース後のデータ量変化(ユーザ数増減、ストレージ使用量など)の傾向を確認して、今後の方針を決めていくという用途で活用できます。
Basic Analytics
Basic Analytics

Flex Analytics

前述したように、Flex Analyticsは開発者が自由にメトリクスを定義できます。これは、Basic Analyticsの時に予め定義されていた「どのデータを?」⁠どう処理するか?」を、開発者が自分のアプリケーションに合うように、自由に変更できるということです。

Flex Analyticsでは、分析するデータを以下の2つに分類します。

  • App Data:バケットに入っているオブジェクトデータ。Flex Analyticsでは指定したバケット下のデータを対象にデータ分析をすることができる。オブジェクトの持つ任意のkey-valueを対象としたメトリクスが作成できるため、アプリケーションのロジックに関わるデータ(チャットアプリケーションでは、参加者の投稿内容など)を、Basic Analyticsよりも詳細に分析できる。なおApp Dataは特定のバケットに紐付くため、複数のバケットを横断してのデータ分析はできないことに注意する。その場合は、後述のEvent Dataの使用が適している。
  • Event Data:任意のタイミング(イベント)で、アプリケーションより送信できるデータ。App Dataと同様に任意のkey-valueを設定することができ、それらを対象としたメトリクスが作成できる。ただしApp Dataと異なり、Event Dataは特定のバケット下に保存されない。発生したイベントに紐付くデータとして、アプリケーション全体で共有される。アプリケーション全体で集計することに意味があるデータ(アクティブユーザのカウント、特定のボタンがクリックされた回数など)を分析する際に使用する。

先ほど「自由にメトリクスを変更できる」と述べましたが 、分析対象となるデータ(=「どのデータを?⁠⁠)に関しては、上記のいずれかである必要があります。ユーザ(Android Cloud SDKではKiiUserというクラスで表わされている)のように、上記のどちらでもないデータはFlex Analyticsの集計対象 にはなりません。その場合は、ユーザの持つ情報からApp Data/Event Dataを生成するなどの工夫が必要です。

分析ルールの定義

「どのデータを?」分析対象とするかを決定した後は、⁠どう処理するか?」⁠=分析ルール)を定義する必要があります。分析ルールの定義は開発者ポータルから行います。

今回は次回の実装で使用するEvent Dataでの分析ルール定義について解説します。App Dataの場合は少し手順が異なるため、興味のある方は以下の公式ドキュメントを参照して下さい

まず始めに、開発者ポータルの分析ルール定義画面に移動します。

  1. 作成しているアプリケーションを選択後、左部のタブバーから’Analytics⁠をクリックします。

  2. Analyticsのページに遷移した後、上部の’Config⁠->’Add⁠の順にクリックして、分析ルール作成画面に移動します。

  3. 今回対象とするデータであるEvent Dataを選択します。

  4. 分析ルールの作成
    分析ルールの作成
  5. 次に分析ルールの各パラメータを設定します。はじめに分析ルールの名前を設定します。

  6. 分析対象とするEvent Dataのkeyを指定します。keyの指定ではkeyの名前と型を指定する必要があります。その後、そのkeyに紐付くvalueの処理方法(集計関数)を選択します。選択できる関数は以下の通りです。

  7. Countvalueに有効値を持つデータ数をカウント
    Avgvalueの平均値を計算
    Sumvalueの合計値を計算
    Minvalueの最低値を特定
    Maxvalueの最高値を特定
  8. Event Dataは⁠type⁠フィールドを必須フィールドとしてもっており、必要であればこのフィールドを利用して、分析するEvent Dataを絞ることが可能です。ここで設定した値を⁠_type⁠フィールドに持つEvent Dataのみ、分析対象になります。

  9. 分析結果をグルーピングする際に使用するEvent Dataのkey(グルーピングキー)を指定します。⁠Name⁠欄にグルーピングキーの名前を、⁠Type⁠欄にはグルーピングキーの型を指定します。⁠Label⁠欄は結果を表示する際にエイリアスとして用いることができますが、必要なければ特に指定する必要はありません。

分析ルールの設定
分析ルールの設定

分析ルールの設定が完了したら、⁠Save⁠ボタン(画面下部に存在、見えない場合はスクロールして下さい)をクリックして、分析ルールを保存します。

保存後は画面上部に戻り、’Activate⁠ボタンをクリックして、作成した分析ルールを有効にします。ボタンの色が緑になったら、分析ルールの有効化に成功しています。

分析ルールの有効化
分析ルールの有効化

これで分析ルールの定義は完了です。開発者ポータルは、分析ルールに基づき1日に一回データの分析、結果の表示が行います。現状では、まだEvent Dataを全くあげていないため、グラフには何も表示されません。

分析結果の表示画面
分析結果の表示画面

Analytics SDKの利用

分析ルールは定義したものの、現状はどこからもEvent Dataが送られてこないため、いつまで待ってもデータ分析は行われません。そのため、クライアントアプリケーションからEvent Dataを送信し、分析・集計できるようにする必要があります。

Kii Cloudでは、各プラットフォーム(Android、iOS、JavaScript)に対して、データ解析をサポートするSDK(今まで使用してきたCloud SDKに対し、Analytics SDKと呼ばれます)を提供しています。このSDKを導入することで、クライアントアプリケーションからEvent Dataを送信できます。

まず始めに、開発者ポータルからAnalytics SDKをダウンロードします。この連載では、Androidアプリケーションを対象にしているため、Android Analytics SDKをダウンロードします。

  1. 作成しているアプリケーションを選択後、上部のタブバーから’Downloads⁠をクリックします。

  2. 表示されたポップアップ上でAndroidのマークを選択、’Analytics SDK (version)⁠をダウンロードします。

    Analytics SDKのダウンロード
    Analytics SDKのダウンロード

    その後、AndroidプロジェクトにAnalytics SDKを導入します。

  3. ダウンロードしたAnalytics SDK(jar)をAndroidプロジェクトの⁠libs⁠フォルダ以下に追加します。

  4. Analytics SDKの初期化メソッド(KiiAnalytics.initialize(context, appID, appKey, site))を呼びます。初期化メソッドはアプリケーション開始時に必ず呼ばれるようにしておく必要があります。本連載で作成したChatアプリケーションでは、Cloud SDKと同様の場所で初期化するように実装しています。

  5. public class KiiChatApplication extends Application {
    
        private static Context context;
    
        @Override
        public void onCreate() {
            super.onCreate();
            context = this;
            // アプリケーション起動時にKiiSDKを初期化します。
    
                // Cloud SDKの初期化
            Logger.i("■■■ initialize KII SDK ■■■");
            Kii.initialize(ApplicationConst.APP_ID, ApplicationConst.APP_KEY, Kii.Site.JP);
    
                // Analytics SDKの初期化
            Logger.i("■■■ initialize KII Analytics SDK ■■■");
            KiiAnalytics.initialize(context, ApplicationConst.APP_ID, ApplicationConst.APP_KEY, KiiAnalytics.Site.JP);
        }
        ….
    }
  6. Analytics SDKは、バックグラウンドでEvent Dataをアップロードするサービスを起動します。このサービスをAndroidManifest.xmlの中で指定します。
<?xml version="1.0" encoding="utf-8"?>
<manifest ...>
  …
  <application ...>
    …
    <service android:name="com.kii.cloud.analytics.EventUploadService"/>
    ...
  </application>
</manifest>

まとめ

今回は、Kii Cloudのデータ分析機能の概要を説明しました。まだデータ分析に直接関わる部分を実装していないので、まだ実感が湧かないのが正直な所ではないでしょうか?

そう思われた方は是非次回をご覧下さい。スタンプ機能の利用状況を分析する機能の実装を通して、今回の内容が明らかになってくると思います。乞うご期待!!

おすすめ記事

記事・ニュース一覧