數(shù)據(jù)分析-統(tǒng)計游戲時長踩過的坑

先說下背景,服務端記錄玩家行為,數(shù)據(jù)入庫oracel,用于分析,記錄玩家id、tm、action以及其它一批需要用到的數(shù)據(jù),大概長這樣:


運營的設想是這樣的,每次游戲登陸服務器記錄一條login,每次退出游戲記錄一條logout,然后可以通過logout-login來統(tǒng)計每次游戲長,再按天或按生命周期去累加數(shù)次游戲時長;

然而事情并不是這樣的,聽我一一道來:

并不是這樣子之一

同一秒內(nèi),竟然出現(xiàn)多條login和logout,這樣我只能根據(jù)入庫時間來判斷哪條action在前,結(jié)果并不科學,因為我們是通過redis入庫,壓根不可控;


應對方案:

修改login記錄的時機,修改為登陸網(wǎng)關(guān)時記錄,同時排查bug,修復同一秒內(nèi)記錄多條action的問題;


并不是這樣子之二:

多條login對應1條logout,說白了,就是某些原因?qū)е耹ogout沒有正常記錄到(比如閃退啥的);


應對方案:

改bug唄,還能怎么樣;


并不是這樣子之三:

跨天的情況怎么辦?今天23:50分login,明天2:00才logout,全局統(tǒng)計似乎并沒有問題,可是分天統(tǒng)計不是亂套了么;

應對方案:

1、以每天24點為節(jié)點吧,默認為在當天23:59:59logout了,用這個時間減去當天最后一次login,形成一一對應,計算在線時長,這樣就能保證當天的數(shù)據(jù)正常了;

2、那跨天的第二天呢?每天0點對所有在線玩家強制寫一條login吧(當然別一次性寫,如果在線高會對服務器產(chǎn)生影響),這樣就不會出現(xiàn),跨天時只有l(wèi)ogout,沒有l(wèi)ogin的情況了;


并不是這樣子之四:

腫么某個時間段大批玩家只有l(wèi)ogin沒有l(wèi)ogout呢,原來是服務器重啟了或者停服維護造成的;

應對方案:

服務器重啟和停服前數(shù)據(jù)存檔的過程中給所有在線玩家加一條logout吧


tips:

這兩條action還是很重要的,至少對于我們游戲來說,統(tǒng)計活動、留存、游戲時長都依賴于斯,所以需要慎重慎重,不能出差錯;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容