SlideShare a Scribd company logo
ゲームを動かす
データ分析
Alex Onsager
Happy Elements株式会社
自己紹介
• Alex Onsager (アレックス) です
   - 色々な場所で @aonsager

• Happy Elements株式会社でプランナーをしています
Happy Elements
• 京都でソーシャルゲーム作っています




 マジョカ✝マジョルナ    あんさんぶるガールズ!    百花繚乱あやかし姫




はじめようハッピー☆ママ   はじめようポケット・バー    パズル騎士団
あんさんぶるガールズ!




最近Androidアプリ版リリースしたりしました
iPhoneはもうすぐ
では本題に
ソーシャルアプリするなら
データ分析は必須です
まず、MVPをリリースする
MVP?

•Minimum Viable Product 
 -必要最低限機能
 -最低限の機能で、最大限のデータを集められる商品
 -リーン・スタートアップのアレです

なるべく早くリリースして、
なるべく早くたくさんのデータを集めて、
なるべく早く良い商品にする
プランナーの仕事は?
プランナーの仕事 ①




  どこに改善が必要か
    早く見つける
プランナーの仕事 ②




  どう改善が必要か
    早く決断する
プランナーの仕事 ③




      遅い。
    もっと早く。
でもなかなか
難しいですよね
従来の分析・統計は
多分こんな感じ
従来のデータ分析
• どういう質問の答えを知りたいか決める
   - どういうアイテムを売ったら買う人が増える?
• その質問の答え方を考える
   - 課金したユーザーのレベルを見てみる
• そこで必要となった情報を保存し始める
   - 課金したら、そのユーザーのレベルを統計ログに残す
   - (予想して既にとってたらエライ)
• 情報をみて、決断する
   - 低レベルのユーザーが全然課金してないから、そこが欲しが
   るようなアイテムを導入してみる
• 繰り返す
従来のデータ分析
• どういう質問の答えを知りたいか決める
   - どういう商品だったらもっと買いたくなる?
• その質問の答え方を考える
         この間が長い!
   - 課金したユーザーのレベルを見てみる
• そこで必要となった情報を保存し始める
   - 課金したら、そのユーザーのレベルを統計ログに残す
   - (予想して既にとってたらエライ)
• 情報をみて、決断する
   - 低レベルのユーザーが全然課金してないから、そこが欲しが
   るようなアイテムを導入してみる
• 繰り返す
この形のデメリット
• 質問をしてから答えがわかるまでにタイムラグがある

• 新しくデータを書き出す時、それは1つの質問だけの答えとなる

• もっとデータが欲しかったら、新たに開発が必要
このままじゃダメだ
もっと理想的な形だと...
理想
• 質問をしてからすぐに答えが出る

• 同じデータで復数の質問に答えれる
  - 「もっとデータが必要」が無くなる

• 新しく質問をするとき、追加の開発は必要ない
作ってもらっちゃいました
    (・ω<)
新データ分析ツール
• ユーザーが意味のある行動をするとログを書き出す
  - 課金する、アイテム使う、カードゲットする、ボス叩く、etc.
  - ユーザーの基本情報も一緒に書き出される
    - レベル、体力、ボスレベル、etc.
• 後でどう使われるかは気にせず、とにかくログを書きだす

• 後で好きなようにログを集計して分析する
ゲームを動かすデータ分析
ログはこんな感じ
ログ

 attributes: {
   category: card
   type: get
   owner_id: xxxxxxxxxx
   request: { 
     page: missions/receive_reward
   }
   info: { 
     type: 1
     id: 22
     special: false
   condition: { 
     level: 20
     st: 50
     bp: 1
     max_st: 150
     max_bp: 5
     gacha_pt: 1000
     cards_count: 80
     friends_count: 10
     leader_card_id: 100
     training_card_id: 100
     joined_at: 2013/02/01 00:00:00
   }
   time: 2013-02-04 00:00:00
 }
ログ

 attributes: {
   category: card
                                      カードを手に入れた
   type: get
   owner_id: xxxxxxxxxx
   request: { 
     page: missions/receive_reward
   }
   info: { 
     type: 1
     id: 22
     special: false
   condition: { 
     level: 20
     st: 50
     bp: 1
     max_st: 150
     max_bp: 5
     gacha_pt: 1000
     cards_count: 80
     friends_count: 10
     leader_card_id: 100
     training_card_id: 100
     joined_at: 2013/02/01 00:00:00
   }
   time: 2013-02-04 00:00:00
 }
ログ

 attributes: {
   category: card
   type: get
   owner_id: xxxxxxxxxx
   request: { 
     page: missions/receive_reward
   }
   info: { 
     type: 1                          レイドミッションで手に入れた
     id: 22
     special: false
   condition: { 
     level: 20
     st: 50
     bp: 1
     max_st: 150
     max_bp: 5
     gacha_pt: 1000
     cards_count: 80
     friends_count: 10
     leader_card_id: 100
     training_card_id: 100
     joined_at: 2013/02/01 00:00:00
   }
   time: 2013-02-04 00:00:00
 }
ログ

 attributes: {
   category: card
   type: get
   owner_id: xxxxxxxxxx
   request: { 
     page: missions/receive_reward
   }
   info: { 
     type: 1
     id: 10
     special: false
   condition: { 
     level: 20                        ID 10のカードを手に入れて、
     st: 50
     bp: 1
                                       それはキラじゃなかった
     max_st: 150
     max_bp: 5
     gacha_pt: 1000
     cards_count: 80
     friends_count: 10
     leader_card_id: 100
     training_card_id: 100
     joined_at: 2013/02/01 00:00:00
   }
   time: 2013-02-04 00:00:00
 }
ログ

 attributes: {
   category: card
   type: get
   owner_id: xxxxxxxxxx
   request: { 
     page: missions/receive_reward
   }
   info: { 
     type: 1
     id: 10
     special: false
   condition: { 
     level: 20                         ユーザーについて
     st: 50
     bp: 1
                                      その他色々嬉しい情報
     max_st: 150
     max_bp: 5
     gacha_pt: 1000
     cards_count: 80
     friends_count: 10
     leader_card_id: 100
     training_card_id: 100
     joined_at: 2013/02/01 00:00:00
   }
   time: 2013-02-04 00:00:00
 }
ログ

 attributes: {
   category: card
   type: get
   owner_id: xxxxxxxxxx
   request: { 
     page: missions/receive_reward
   }
   info: { 
     type: 1
     id: 10
                                      こういうログが
     special: false
   condition: { 
     level: 20
     st: 50
                             たくさん書きだされます
     bp: 1
     max_st: 150
     max_bp: 5
     gacha_pt: 1000
     cards_count: 80
     friends_count: 10
     leader_card_id: 100
     training_card_id: 100
     joined_at: 2013/02/01 00:00:00
   }
   time: 2013-02-04 00:00:00
 }
今回の主役は mongoDB
イケメンポイント ①




   大量のデータを
   流しこんでも平気
イケメンポイント ①




    大量のデータを
   流しこんでも平気
                へっち ゃらさ
             ョンも
         リケーシ
 シャー ド、レプ
イケメンポイント ②




   ログがテキストで
     形も自由
イケメンポイント ②




 なんか書いてみたけど
ログってこれでいいの?
イケメンポイント ②




 なんか書いてみたけど
ログってこれでいいの?

      いいよ!
イケメンポイント ②




こういう値も欲しかった。
追加しちゃってもいい?
イケメンポイント ②




こういう値も欲しかった。
追加しちゃってもいい?

      いいよ!
イケメンポイント ②




  なんか汚かったから
ログの形書き直しちゃった
イケメンポイント ②




  なんか汚かったから
ログの形書き直しちゃった

      いいよ!
イケメンポイント ③




キーという概念がなく、
  なんでも検索出来る
イケメンポイント ③




 キーという概念がなく、
    なんでも検索出来る
                        るユー ザーね。
              以上課 金して
      0以下で 5000円
レ ベル2            しとけ!
              まか
(´;ω;`)ブワッ
統計は Map/Reduce
統計は Map/Reduce
   ちょっとコツはあるけど
なれたらなんでも出来るようになります
Map/Reduce
• Mapで検索して、気になる情報だけ書きだす
  - 課金のログを検索して、日付&ユーザーID&金額を書き出す
• Mapが吐き出したデータをReduceで集計
  - Arrayにまとめていって、同じユーザーIDのログがあれば金額を
 足す
• 全部のデータの検索が終わっていい具合にまとまったら、CSVと
して書きだして保存
これでデメリットが
全部改修されてます
理想
• 質問をしてからすぐに答えが出る

• 同じデータで復数の質問に答えれる
  - 「もっとデータが必要」が無くなる

• 新しく質問をするとき、追加の開発は必要ない


•欲しがるようなデータがすでに書きだされていて、いつ
でも好きなように検索・集計可能になっている
理想
• 質問をしてからすぐに答えが出る

• 同じデータで復数の質問に答えれる
  - 「もっとデータが必要」が無くなる

• 新しく質問をするとき、追加の開発は必要ない


•欲しがるようなデータがすでに書きだされていて、いつ
でも好きなように検索・集計可能になっている
•分析の仕方を思いついたら、すぐに実行できる
理想
• 質問をしてからすぐに答えが出る

• 同じデータで復数の質問に答えれる
  - 「もっとデータが必要」が無くなる

• 新しく質問をするとき、追加の開発は必要ない


それぞれのログに大体欲しがる情報が入っているので、
切り口を変えて同じデータから色んな答えを出せる
理想
• 質問をしてからすぐに答えが出る

• 同じデータで復数の質問に答えれる
  - 「もっとデータが必要」が無くなる

• 新しく質問をするとき、追加の開発は必要ない


新しいログを書き出す必要はない
新しい値が欲しい場合でも、それをログファイルに追記
し始めるだけですぐに対応可能
たとえば
こういう使い方
どういう人が一番多く
   課金してるんだろう
  5000円以上課金したユーザーを検索して
レベル、レイドレベル、課金時の体力、etc.を出す
いつ脱落するんだろう

   ユーザーの最終ログイン時を検索して
レベル、レイドレベル、課金時の体力、etc.を出す
イベント頑張る人=
課金する人なのだろうか
毎日レイドを20対以上討伐する人を探して
    その人の課金情報を出す
高課金ユーザーはどういう
共通点があるんだろう
 5000円以上課金したユーザーを検索して
   とりあえずたくさん比べてみる
思いつけば
大体なんでも出来ます
おまけ
サポートツールとしても
   大変優秀
サポートツールとして
• 「ポーション消えたぞ!」と問い合わせ

• ユーザーのログを一覧で検索する

 - ⃝日⃝時にポーション5つ購入
 - ⃝日⃝時にレイドミッション討伐
 - ⃝日⃝時にポーション1つ購入
 - ⃝日⃝時にポーション1つ購入
 - 現在ポーション残高1つ

• たしかに1個どこかでなくなってたので1つ付与
• ログもユーザーに共有して安心してもらえる
以上、
分析ツールの説明でした
ありがとうございました

More Related Content

PDF
正規表現で楽しよう
PDF
BCCとGCCの比較
PPTX
ゲーム事業×データ分析 ドリコムにおける組織と仕事の組み立て方
PPTX
5年後のデータサイエンティスト
PDF
20140708 オンラインゲームソリューション
PPTX
Zansa第12回資料 「ソーシャルゲームでは、データがユーザーを理解する!」
PDF
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
PDF
オンラインゲームソリューション@トレジャーデータ
正規表現で楽しよう
BCCとGCCの比較
ゲーム事業×データ分析 ドリコムにおける組織と仕事の組み立て方
5年後のデータサイエンティスト
20140708 オンラインゲームソリューション
Zansa第12回資料 「ソーシャルゲームでは、データがユーザーを理解する!」
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
オンラインゲームソリューション@トレジャーデータ

Similar to ゲームを動かすデータ分析 (20)

PPTX
DynamoDBによるソーシャルゲーム実装 How To
PDF
Databasedesignforsocialgames 110115195940-phpapp02
PDF
ソーシャルゲームのためのデータベース設計
PDF
ソーシャルゲームの為のデータベース設計
PDF
トレジャーデータ流,データ分析の始め方
PDF
ログ解析を支えるNoSQLの技術
PPTX
20130727 ソシャゲkpi分析 tokyowebmining28_izawa_up
PDF
Hadoopを用いた大規模ログ解析
PDF
データマイニング+WEB勉強会資料第6回
PDF
【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)
PDF
Mongodb 紹介
PDF
ソーシャルアプリを分析してみた
PDF
gumiStudy#1 ソーシャルアプリにおけるKVSの利用事例
PDF
20110517 okuyama ソーシャルメディアが育てた技術勉強会
PDF
事例で学ぶトレジャーデータ 20140612
PPTX
第1回関西ソーシャルゲーム勉強会 kpi発表
PDF
データマイニングCROSS 2012 Opening Talk - データマイニングの実サービス・ビジネス適用と展望
PDF
20120831 mongoid
PDF
テキストマイニングのイメージと実際
KEY
kontagent紹介資料
DynamoDBによるソーシャルゲーム実装 How To
Databasedesignforsocialgames 110115195940-phpapp02
ソーシャルゲームのためのデータベース設計
ソーシャルゲームの為のデータベース設計
トレジャーデータ流,データ分析の始め方
ログ解析を支えるNoSQLの技術
20130727 ソシャゲkpi分析 tokyowebmining28_izawa_up
Hadoopを用いた大規模ログ解析
データマイニング+WEB勉強会資料第6回
【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)
Mongodb 紹介
ソーシャルアプリを分析してみた
gumiStudy#1 ソーシャルアプリにおけるKVSの利用事例
20110517 okuyama ソーシャルメディアが育てた技術勉強会
事例で学ぶトレジャーデータ 20140612
第1回関西ソーシャルゲーム勉強会 kpi発表
データマイニングCROSS 2012 Opening Talk - データマイニングの実サービス・ビジネス適用と展望
20120831 mongoid
テキストマイニングのイメージと実際
kontagent紹介資料
Ad

ゲームを動かすデータ分析