オンラインゲームソリューション@トレジャーデータ

25
1 オンラインゲームソリューション 2014/06 Takahiro Inoue (Chief Data Scien:st) [email protected]

Upload: takahiro-inoue

Post on 15-Jan-2015

3.024 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: オンラインゲームソリューション@トレジャーデータ

1  

オンラインゲームソリューション    

2014/06  

Takahiro  Inoue  (Chief  Data  Scien:st)  taka@treasure-­‐data.com  

Page 2: オンラインゲームソリューション@トレジャーデータ

2  

自己紹介

•  井上 敬浩 (TwiCer:  @doryokujin  )  

•  チーフデータサイエンティスト  @  トレジャーデータ  

•  慶應大学院数学科統計専攻  

•  トレジャーデータ公式ブログオーサー  

•  MongoDBマスター  

hCp://treasure-­‐data.hateblo.jp

Page 3: オンラインゲームソリューション@トレジャーデータ

3  

トレジャーデータサービス概要  

Page 4: オンラインゲームソリューション@トレジャーデータ

4  

Treasure  Data  Service  とは

ビッグデータの収集・保存・分析をワンストップで提供する、  クラウド型のデータマネジメントサービス(DMS)  

“データ解析の世界をシンプルにしたい”  

収集   保存   分析  

Page 5: オンラインゲームソリューション@トレジャーデータ

KPI  

データ可視化・共有  

分析ツール連携  

他製品連携  

RDBMS,  Google  Docs,  AWS  S3,  FTP  Server,  etc.  

Mo:on  Board,    Metric  Insights,  etc.    

Tableau,  Dr.Sum,  Power  BI,  Excel,  etc.    

5  

Treasure  Data  Service  

Result  Output  クエリ結果自動書込  

データ収集   データ分析  データ保管  

収集・保存・分析をワンストップに、柔軟なインターフェイスで提供。  

データ集計  SQL,  Pig  

ストレージ  Flexible,  Scalable,  Columnar  

Storage  

バッチ型  分析  

アドホック型  分析  

分析エンジン  Hadoop,  Treasure  Query  Accelerator  

データ抽出  REST  API  

ODBC/JDBC  (SQL,  Pig)  

Webログ  

Appログ  

センサー  

CRM  

ERP  

RDBMS  

TD  Toolbelt  

並列バルク    インポーター  

Treasure  Agent  

ストリーミング    ログコレクター  

POS  

Page 6: オンラインゲームソリューション@トレジャーデータ

6  

分析レイヤー

4.  Data    Processing  

5.  Data    Visualiza5on  

3.  Data    Storage  

2.  Data  Collec5on  

1.  Data    Source  

•  ストリーミング収集ツール  •  バルクインポートツール

•  トレジャークラウドストレージ  •  マネジメントコンソール  

•  バッチクエリ(Hive)  •  アドホッククエリ(TQA)

•  ダッシュボード  •  Business  Intelligence

あらゆる分析レイヤーをトレジャーデータサービスが一貫して担うことができる。

Page 7: オンラインゲームソリューション@トレジャーデータ

7  

オンラインゲームソリューション  

Page 8: オンラインゲームソリューション@トレジャーデータ

8  

ソリューションテンプレート  

   

   

                       Treasure  Data  Service  

データ解析テンプレート  

データ収集テンプレート  

ソリューション  コンポーネント:  -  Treasure  Data  Service  - 構造化ログのテンプレート  

- データ収集エージェント設

定ファイルテンプレート  

- 設定済みBIレポーティン

グ・ダッシュボード  

初期セットアップ期間内で、業界毎に事前に定義した解析ダッシュボードも提供  

Page 9: オンラインゲームソリューション@トレジャーデータ

9  

ログインログ  

Treasure  Data  Service  

データ統合  

オンラインゲームソリューションとは  

課金ログ  

招待ログ  

KPI:  PV  

KPI:  ARPU  

KPI:  リテンション  

提供するログテンプレートを活用する事で,容易に多種多様なKPI群のモニタリングが可能に。

Page 10: オンラインゲームソリューション@トレジャーデータ

10  

ログインログ  

ネイティブアプリ  /  ブラウザアプリ両方に対応  

課金ログ  

招待ログ  

•  iOS,  Android  のSDK,または  Unity  向けのライブラリ

を通じてログを収集。  

 •  ブラウザゲームはサーバーサイドに Fluentd  ベー

スの  TD-­‐Agent  を仕込んでストリーミング収集。

Page 11: オンラインゲームソリューション@トレジャーデータ

11  

iOS,  Android  SDK  によるログ収集  

イベント発生後,すぐに送信

イベント発生後,すぐに送信

バッファリング

バッファリング

スケーラブルなトレジャー  SDK受信サーバー トレジャークラウド  

端末アプリから直接トレジャークラウドに蓄積され,かつストリーミングによってログを直ちに確認できる。

Page 12: オンラインゲームソリューション@トレジャーデータ

12  

オンラインゲーミング:基本ログテンプレート

アクション名  (テーブル名)  

主体ユーザーID   タイムスタンプ   対象ユーザーID   値   数   大カテゴリ,カテゴリ,  アイテム名  

login   uid   :me   -­‐   -­‐   -­‐   -­‐  

pay   uid   :me   -­‐   price   count   category,    sub_category,  name  

invite   uid   :me   target_uid   -­‐   -­‐   -­‐  

use_point  /    get_point  

uid   :me   -­‐   -­‐   -­‐   -­‐  

level_status   uid   :me   -­‐   value   -­‐   -­‐  

tutorial   uid   :me   -­‐   step   -­‐   -­‐  

Page 13: オンラインゲームソリューション@トレジャーデータ

13  

オンラインゲーミング:基本ログテンプレート

アクション名  (テーブル名)  

主体ユーザーID   タイムスタンプ   対象ユーザーID   値   数   大カテゴリ,カテゴリ,  アイテム名  

login   uid   :me   -­‐   -­‐   -­‐   -­‐  

pay   uid   :me   -­‐   price   count   category,    sub_category,  name  

invite   uid   :me   target_uid   -­‐   -­‐   -­‐  

use_point  /    get_point  

uid   :me   -­‐   -­‐   -­‐   -­‐  

level_status   uid   :me   -­‐   value   -­‐   -­‐  

tutorial   uid   :me   -­‐   step   -­‐   -­‐  

これらのログを出すように設定すれば必要な50近いKPIを算出可能。  

uid,  :me  を含めばその他の項目は任意に

設定して良い。  

上記にとらわれない,任意のログを収集でき

る拡張性をもつ。  

Page 14: オンラインゲームソリューション@トレジャーデータ

14  

ログ収集に関するポイント

•  ログの「アクション名」とトレジャークラウドストレージの

「テーブル名」が対応  

•  同じアクション名でも付与する項目は異なっていても問

題無い。(例えばlogin  ログで新しく  “event_id”  という項

目を加えても問題無く蓄積され,かつ  “event_id”  に基

づく集計はその項目を持つレコードに対してのみ行わ

れる)  

Page 15: オンラインゲームソリューション@トレジャーデータ

15  

ログテンプレートに従ったデータ収集(ブラウザアプリ)

#  Applica5on  Ruby  Code  TD.event.post(  ’login',    {          :uid  =>  123,        :device  =>  ’smart  phone’,        :5me  =>  138959673  })  TD.event.post(  ’pay',    {        :uid  =>  123,        :name  =>  ’ItemA’,        :sub_category  =>  ’a’,        :category  =>  A,        :count  =>  2,        :price  =>  300,        :5me  =>  138959673      })  TD.event.post(  ’invite',    {        :uid  =>  123,        :invited_uid  =>  456,        :campaign_name  =>  ’event2’,        :5me  =>  138959673  })  

※  各言語向けに収集ツール Treasure  Data  Library  を提供  Java,  Ruby,  PHP,  Perl,  Python,  Scala,  Node.js    ,  JS  Tag  Library  

Login  テーブル Pay  テーブル

Inviteテーブル ユーザー属性  情報テーブル

Treasure-­‐Agent  を通じて発生したログを常時トレジャークラウドにアップロード

ユーザーアクション  (login,  pay,  invite,…)

アクションに付随する属性情報  

(uid,  :me,  price,…)

Page 16: オンラインゲームソリューション@トレジャーデータ

16  

ログテンプレートに従ったデータ収集(ネイティブアプリ)

#  Android  SDK  View  v  =  findViewById(R.id.bu[on);  v.setOnClickListener(new  OnClickListener()  {      @Override      public  void  onClick(View  v)  {          final  Map  event                =  new  HashMap<String,  Object>();          event.put(”uid",  ”abcd");          event.put(”device",  “android”);          td.addEvent(”game",  ”login",  event);      }  });  

Login  テーブル Pay  テーブル

Inviteテーブル ユーザー属性  情報テーブル

SDK  を通じて発生したログを常時トレジャークラウドにアップロード

#  iOS  SDK  -­‐  (IBAc5on)clickBu[on:(id)sender  {      [[TreasureData  sharedInstance]  addEvent:@{          @”uid":  @"foo  bar",          @”device":  ‘iOS’  }      database:@”game"      table:@”login"];  }    

Page 17: オンラインゲームソリューション@トレジャーデータ

17  

KPI  計算

Login  テーブル Pay  テーブル

Inviteテーブル ユーザー属性  情報テーブル

データ連携

KPI:  PV  

KPI:  ARPU  

KPI:  リテンション  

異なるデータ間の連携と強力な並列分散処理技術で,大量ログから様々なKPIを算出。

Page 18: オンラインゲームソリューション@トレジャーデータ

18  

ゲーム分析に特化したダッシュボードの提供  KPI:  PV  

KPI:  ARPU  

KPI:  レベル分布  

OEM提供するダッシュボードの1つ1つのウィジェットに1つのKPIが対応。ウィジェットに分析クエリを仕込むことによって自動的にデータが更新される。

Page 19: オンラインゲームソリューション@トレジャーデータ

19  

Category   KPI  Example  

Ac:veness   ゲームをの活況度を判断するKPI群。  アクティブ ユーザー数,新規ユーザー数,etc…  

Funnel  (  Conversion  )  Analysis   コンバージョンまでの経路の離脱率を図るKPI群。  コンバージョン,チュートリアルのステップ毎の離脱度,etc…  

Sales  Revenue   課金周りのKPI群。  売り上げ,ARPU,  ARPPU,  etc…  

Distribu:on   ユーザー数や課金額の分布を様々なセグメントで切った分布。  課金額の分布,レベルの分布,所有ポイント数の分布,etc…  

Inflow  /  Oujlow  Equilibrium   流入と流出の平衡を見るためのKPI群。  仮想通貨の提供量/消費量,etc…  

Reten:on   初回登録から再ログインまでの期間やリピート回数,  etc…  

これらのカテゴリーに属するKPI群を導入時から参照できるKPIテンプレートを用意

KPI  カテゴリ  

Page 20: オンラインゲームソリューション@トレジャーデータ

20  

Ac:veness:ゲームの活況度合いに関するKPI群  

←ダッシュボード  ↓登録から初課金までの日数

↓  PV  

Page 21: オンラインゲームソリューション@トレジャーデータ

21  

Funnel  Analysis:コンバージョンのボトルネックを調べる  

←チュートリアル開始から登録(コンバージョン)までに至るステップで,どのステップが離脱率が高いのかを調べる。

Page 22: オンラインゲームソリューション@トレジャーデータ

22  

Revenue:デイリー売上,ARPU  

Page 23: オンラインゲームソリューション@トレジャーデータ

23  

Distribu:on:月課金額やレベルに対する分布  

↓ユーザーのレベル分布 ↓月次での課金額分布

Page 24: オンラインゲームソリューション@トレジャーデータ

24  

Reten:on:Cohort  Analysis  

Page 25: オンラインゲームソリューション@トレジャーデータ

25  

Discussion & Q and A