游戲云之海量游戲日志分析方案
我們將結(jié)合案例分析,看看如何利用數(shù)據(jù)分析來切實(shí)地改進(jìn)游戲。
此次我們舉例一款移動(dòng)端的紙牌類游戲,模擬桌游21點(diǎn)。游戲的大眾版本免費(fèi),用戶在支付一定的費(fèi)用后可獲取無廣告和擁有額外功能的版本。問題是,這款21點(diǎn)游戲并沒有帶來預(yù)期收入。期望是解決這個(gè)問題、提高用戶參與度和消費(fèi)。
如果游戲的設(shè)計(jì)者并沒有數(shù)據(jù)分析的概念,也沒有搜集充足的數(shù)據(jù)以備分析,那只能拍腦袋制定策略變更。而如果數(shù)據(jù)分析的思路在設(shè)計(jì)之初就以部署,那接下來的每一步分析都會(huì)有根有據(jù)。
我們假設(shè)游戲的設(shè)計(jì)之初就已考慮數(shù)據(jù)分析,在阿里云上按照下圖的方式部署:
ECS作為游戲服務(wù)器;
RDS作為業(yè)務(wù)數(shù)據(jù)庫,維護(hù)事務(wù)相關(guān)數(shù)據(jù),通過阿里云的采云間將需要分析的數(shù)據(jù)同步至ODPS;
SLS作為日志服務(wù),定期將日志數(shù)據(jù)導(dǎo)入至ODPS
ODPS作為開放數(shù)據(jù)處理服務(wù),進(jìn)行數(shù)據(jù)分析。
為了找出游戲并未帶來預(yù)期收入的原因,我們一步一步地排查,并做出相應(yīng)動(dòng)作:
1.是否有足夠多的人下載該應(yīng)用?
查看下載總量和游戲的***安裝量。下載量和安裝量都可以維護(hù)在RDS中。
如果沒有足夠的下載量,需要公關(guān)部和市場(chǎng)部圍繞產(chǎn)品的知名度展開工作。例如在游戲中加入創(chuàng)造性的元素,和運(yùn)營(yíng)方合作推廣,采用新的皮膚包裝或是誘人標(biāo)題。在移動(dòng)瀏覽器或是搜索客戶端方面加大廣告投入。
如果數(shù)據(jù)顯示有足夠多的用戶下載量和***安裝量,那說明問題不是出在知名度方面,那也無需額外增加公關(guān)方面的投入,而是繼續(xù)查看步驟2。
2.對(duì)于安裝游戲的用戶,他們?cè)谟螒蛑凶龅?**件事情是什么?所有用戶中那些玩過多輪直到完全結(jié)束該游戲占多大的百分比?
對(duì)于***個(gè)問題,我們查看數(shù)據(jù)庫中記錄的登陸活動(dòng)(Entry Event Distribute,EED),這也可以維護(hù)在RDS中。對(duì)于第二個(gè)問題,我們?cè)诿恳淮斡脩敉瓿捎螒驎r(shí),自動(dòng)向服務(wù)器發(fā)送一條消息來收集該數(shù)據(jù)。
如果有很多用戶進(jìn)入游戲,但大部分人沒有選擇升級(jí)到付費(fèi)版本,那可能這款游戲很有趣,吸引人們的注意,卻沒有很好的貨幣化。如果是這種情況,需要思考升級(jí)的價(jià)值,找出它能給用戶帶來更多價(jià)值的點(diǎn)并讓用戶了解。
如果只有很少的用戶完成游戲,或者大部分人在玩游戲初期便退出,那么繼續(xù)看步驟3.
3. 用戶在哪一步退出的?
為了獲知該數(shù)據(jù),需要在用戶執(zhí)行操作時(shí)記錄每一步。因?yàn)橹荒芑谑录l(fā)生前執(zhí)行的操作來決定退出事件(Exit Event Distribution,EXD),所以需要在用戶執(zhí)行每一步操作時(shí)添加數(shù)據(jù)點(diǎn),而且粒度越細(xì)越好(數(shù)據(jù)量嘩嘩滴)。顯然這樣的數(shù)據(jù)不適合放在業(yè)務(wù)數(shù)據(jù)庫,也就是上圖中的RDS里,而使用阿里云的日志服務(wù)SLS,可以自動(dòng)讀取產(chǎn)生的日志文件,并自動(dòng)導(dǎo)入進(jìn)ODPS中,供后續(xù)分析。既不會(huì)占用實(shí)時(shí)業(yè)務(wù)資源,也便于大量數(shù)據(jù)的分析處理。
接著,因?yàn)椴恢烙脩羰欠襁€會(huì)回來繼續(xù)進(jìn)行游戲,需要篩選出那些在一定的時(shí)間段內(nèi)都不再重新登錄的用戶。方法是,估算出活躍用戶的平均登錄間隔,然后再乘以10來判斷用戶是否永遠(yuǎn)流失。比方說,如果大部分用戶的平均登錄間隔是1天,那么對(duì)于10天內(nèi)都未再登錄的用戶,可以判斷其為流失。
這里EXD相應(yīng)可以有很多分支,比方說,有多少用戶完成游戲指南?如果大部分用戶是在完成指南之后退出,那指南本身可能有一定的復(fù)雜性,需要對(duì)游戲指南進(jìn)一步設(shè)計(jì)。如果大部分用戶沒有完成指南,需要考慮在游戲的主頁面將指南設(shè)置成為可選項(xiàng),讓用戶可以跳過游戲指南直接進(jìn)入游戲。
如果大部分用戶完成了游戲指南,那么繼續(xù)看步驟4。
4.當(dāng)用戶準(zhǔn)備開始游戲時(shí),他們是否能成功配對(duì)同玩對(duì)象?
用戶首先選擇那一種游戲?qū)ο?和另一名玩家對(duì)戰(zhàn)或是隨機(jī)選擇?獨(dú)自玩或是與機(jī)器對(duì)玩?還是與身邊的人使用“熱座模式”?如果大部分用戶首先使用對(duì)戰(zhàn)按鈕來和朋友玩,當(dāng)他們這樣做時(shí),他們使用什么選項(xiàng)來找尋伙伴?現(xiàn)在很多人都會(huì)在“微信”中尋找。當(dāng)選擇“微信”導(dǎo)入時(shí),會(huì)彈出一個(gè)允許頁面,詢問是否允許該應(yīng)用的訪問。多少用戶選擇允許應(yīng)用的訪問?
這些數(shù)據(jù)可以記錄在RDS或是用日志的方式由SLS導(dǎo)入ODPS。通過在ODPS里設(shè)置map、reduce規(guī)則,得到需要的分析數(shù)據(jù)。
如果“不允許”的比例很高,那說明可能是允許頁面的內(nèi)容嚇壞了用戶。這樣的情況下,可以去掉一些通用的語句比如“隨時(shí)訪問數(shù)據(jù)”,“打擾我的朋友們”,讓頁面看起來不會(huì)那么地打擾用戶。另外,有多少用戶是通過這個(gè)過程找到朋友然后一起玩游戲的?可以通過查看多少人進(jìn)入“微信”選項(xiàng),對(duì)比此時(shí)開始游戲并且立即進(jìn)入游戲的人數(shù)。如果這個(gè)比例很低,那說明在游戲配對(duì)處需要改進(jìn)。當(dāng)然,這里就需要多一些的數(shù)據(jù)分析規(guī)則。
5. 當(dāng)用戶進(jìn)入游戲時(shí),他們是否完成該游戲?他們玩了多少回合?
如果在玩了一兩個(gè)回合后退出,那么如果游戲的對(duì)方是人,并且他們之間的回合過長(zhǎng),那么可能是因?yàn)榛睾系某掷m(xù)時(shí)長(zhǎng)而導(dǎo)致厭煩。這一點(diǎn)可以通過回合間的平均耗時(shí)來查詢。
如果回合時(shí)長(zhǎng)看起來合理,但是玩家仍然在一兩局之后退出,那需要檢查游戲可玩性的問題。
6.對(duì)于那些玩過幾把游戲但仍然流失了的用戶,考慮下面幾個(gè)問題:
這些玩家是否在自己的游戲回合中總是贏或總是輸?如果總是贏或輸,可能他們覺得這個(gè)游戲太過簡(jiǎn)單或者太過復(fù)雜。如果輸贏結(jié)果比較隨機(jī),那需要更精準(zhǔn)的游戲?qū)ν鏀?shù)據(jù)來啟發(fā)。如果游戲?qū)Ψ绞撬麄兊呐笥眩赡苣軉l(fā)的不多。如果游戲?qū)Ψ绞菣C(jī)器,那么需要更多的數(shù)據(jù)收集來進(jìn)一步研究。
以上的這些步驟只是數(shù)據(jù)分析對(duì)游戲改進(jìn)的一個(gè)簡(jiǎn)化舉例,如文中的圖所示,游戲過程中的數(shù)據(jù)由RDS或SLS導(dǎo)入ODPS,再?gòu)腛DPS中對(duì)大量數(shù)據(jù)進(jìn)行分析,幫助指定后續(xù)的決策。由此也可見,數(shù)據(jù)分析在整個(gè)過程中對(duì)分析問題的默默支持,正是“我愿意,化流沙躺湖堤。只陪你,恭候春夏的輪替。”