ゲームを動かすデータ分析
- 15. 従来のデータ分析
• どういう質問の答えを知りたいか決める
- どういうアイテムを売ったら買う人が増える?
• その質問の答え方を考える
- 課金したユーザーのレベルを見てみる
• そこで必要となった情報を保存し始める
- 課金したら、そのユーザーのレベルを統計ログに残す
- (予想して既にとってたらエライ)
• 情報をみて、決断する
- 低レベルのユーザーが全然課金してないから、そこが欲しが
るようなアイテムを導入してみる
• 繰り返す
- 16. 従来のデータ分析
• どういう質問の答えを知りたいか決める
- どういう商品だったらもっと買いたくなる?
• その質問の答え方を考える
この間が長い!
- 課金したユーザーのレベルを見てみる
• そこで必要となった情報を保存し始める
- 課金したら、そのユーザーのレベルを統計ログに残す
- (予想して既にとってたらエライ)
• 情報をみて、決断する
- 低レベルのユーザーが全然課金してないから、そこが欲しが
るようなアイテムを導入してみる
• 繰り返す
- 25. ログ
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
}
- 26. ログ
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
}
- 27. ログ
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
}
- 28. ログ
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
}
- 29. ログ
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
}
- 30. ログ
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
}
- 33. イケメンポイント ①
大量のデータを
流しこんでも平気
へっち ゃらさ
ョンも
リケーシ
シャー ド、レプ
- 46. Map/Reduce
• Mapで検索して、気になる情報だけ書きだす
- 課金のログを検索して、日付&ユーザーID&金額を書き出す
• Mapが吐き出したデータをReduceで集計
- Arrayにまとめていって、同じユーザーIDのログがあれば金額を
足す
• 全部のデータの検索が終わっていい具合にまとまったら、CSVと
して書きだして保存
- 53. どういう人が一番多く
課金してるんだろう
5000円以上課金したユーザーを検索して
レベル、レイドレベル、課金時の体力、etc.を出す
- 54. いつ脱落するんだろう
ユーザーの最終ログイン時を検索して
レベル、レイドレベル、課金時の体力、etc.を出す