行動ログ解析基盤の作り方

小さなサービスを作り、これから伸ばしていこうという時に必要な行動ログ解析基盤について、雑多なメモ。



行動ログ解析基盤とは


この記事では、「行動ログ解析基盤」を「自分たちが行った施策の結果を簡単に見ることができる基盤、ツール」と定義します。


  1. 行動ログの簡単な可視化(グラフにするとか)ができる
  2. 高度な解析手法までは提供しない
  3. 内製にはこだわらない

基盤と言うと内製を想像してしまうかもですが、内製は極力避けることとします。保守、改善の工数が非常にかさむためです。


「行動ログ解析基盤」が最終的に目指すのは、「自分たちが行った施策の結果を簡単に見れること」です。その結果をどう解釈するか、次の施策にどう活かすか、はまた別の問題です。



よく混同されるけど違うもの


統計解析手法

区間推定、検定、多変量解析(主成分分析、重回帰分析)等は集まったデータを解釈する手法であり、「行動ログ解析基盤」とは違ったものになります。


機械学習

いわゆるデータマイニング、テキストマイニング手法も、集まったデータを分類したり解釈するための手法であり、「行動ログ解析基盤」とは異なります。



代表的な行動ログ取得手法


行動ログは、ざっくり言うと、フロントエンド側、バックエンド側、の両方で取ることができます。


フロントエンド側

ブラウザベースのWebサイトにJS行動ログ送信用のビーコンを埋め込み、その結果を集計に使うができます。後述のGoogle AnalyticsやMixpanelがこれにあたります。利点は簡単にログを取ることができ可視化まで行える点です。欠点はログの取りこぼしがあり正確に集計できない点です。


バックエンド側

Apacheのアクセスログ、DBのレコード、をダンプ(もちろんストリーミングも可)して、その結果を集計に使うことができます。合わせてHadoop(Hive)やTreasure Dataを使う構成が一般的です。利点は自由度が高く何でも集計できる点です。欠点は可視化はまた別で作る必要がある点、実装が複雑になりがち構築工数がかさむ点です。



代表的なアナリティクスツール


Google Analyticsをはじめとして、ログの取得から可視化までを行なってくれるツールはたくさんあります。その中から代表的なものをご紹介します。


※ざっくり使った所感なので間違ってる点もあるかもです。詳しくは各々のドキュメントをご参照ください。


Google Analytics(以下、GA)

WebサイトならJS、スマホアプリならSDKを使うことで行動ログを集計できます。一番有名です。基本的にはPVベースの可視化を行うため、全体をざっくり見ることはできても施策の結果をピンポイントで見るのは難しいです。イベントのログも取れますが、基本的に日次の更新であり(JSの場合は)取りこぼしも多く細かい把握には使いづらいです。その代わり、かなりでかいサイトであってもたいていは無料で使えます。


Mixpanel

イベントに特化したGAのようなものです。結果は即座に更新されます。JSベースのため取りこぼしがそれなりにあるのと、無料枠がかなり小さい(25,000イベント)なのが欠点です。継続やファンネル形式で可視化することもできるのが非常に使いやすいです。個人的にはおすすめです。


KeenIO

JSベースで、Mixpanelと似たようなツールです。Mixpanelは可視化までやってくれますが、KeenIOは可視化までやりません。その代わり、集めたログをJSから集計するためのAPIが充実しているようです。


Flurry

スマホアプリで使うことを想定しているっぽいです。私は利用したことがありません。有名なので便利なんだとは思います。



代表的なログ集計基盤


Hadoop(Hive)やTreasure Dataのようなツールのことです。細かい数値を把握するためには独自のクエリを投げる必要があり、そのためにはこういうツールにログを貯めていく必要があります。


基本的には、基盤自体の保守運用、ログの保存(Hiveで言うLOAD DATA~のこと)の二段階の手間が必要であり、それをどこまで担当するのかが各ツールで異なっています。


Cloudera CDH

Hadoopクラスタを自前で持つためのパッケージです。自由度無限大です。5~10名の運用専属エンジニアをおける規模の会社であればいいですが、それ以外の会社には運用のコストがかなり必要なためおすすめしません。


Treasure Data

利用者としては、「ログをfluentdで送信するだけでHiveが使えるツール」みたいなものです。ログ送信部分に作りこみが必要ですが、Hadoopクラスタ運用の手間がないため非常に手軽に使えます。おすすめです。


Amazon Elastic Map Reduce(以下、EMR)

HadoopクラスタをGUIで簡単に作ることができます。Treasure Dataはデータ構造の決定やテーブルの作成まで行なってくれますが、EMRはクラスタの構築までしか行いません。


今回紹介したログ集計基盤ツールは、可視化を全くやってくれません。なので、グラフにしようと思うとまた別のツールが必要な点に注意しましょう。サービスが大きくなってくるとこうしたログ集計基盤を持つ必要がでてくるので、将来的に移行することを念頭に置いておくと、後々楽になるとは思います。



各ツールを選ぶための基準


今まで紹介した各ツールのうちどれを選ぶのかは、サービスの規模(1日にどれくらいの量のログが貯まる?)と見たい数値によって変わってきます。一概には言えません。


スタートアップ系のサービスでは、基本的には、継続率とAARRRのコホートあたりが見れればよく、ログの量もたいしたことはないため、GA、Mixpanel、追加でTreasure Dataあたりを使っておくのが無難だと個人的には思います。



行動ログのフォーマット


行動ログに固定のフォーマットは存在しません。自社プロダクトで伸ばしたい数値に合わせて、それぞれの会社で独自の行動ログを取ればいいと思います。


あくまでも一例ではありますが、ソーシャルゲーム会社の方が自社の行動ログフォーマットを公開しているページを見付けました。参考にリンクを貼っておきます。

fluentdとMongoDBでユーザー行動を見える化



ご意見、ご要望は@ts_3156までお願いします


間違いのご指摘やご質問等何でもどうぞ(^^) @ts_3156


著者プロフィール
Webサイトをいくつか作っています。
著者プロフィール