基於百萬數據解讀遊戲新用戶

基於百萬數據解讀遊戲新用戶

來自專欄猴子聊數據分析4 人贊了文章

本次分析基於一款在全球範圍上線的SLG手游2018年二月新註冊用戶的相關數據。數據來源於一個競賽平台 DC競賽。競賽中要求利用用戶在註冊前七天的相關數據和付費情況,預測用戶在前45天內的付費金額。

本文中,我們從另一個角度出發。基於百萬數據,利用SQL進行數據分析,解讀二月份新用戶的概況,探究每日導入的流量如何,新用戶活躍度怎樣以及玩家的付費情況。

分析報告:

gonerkong:手游新用戶分析報告?

zhuanlan.zhihu.com圖標

分析過程:

一、數據理解

從平台獲取到的數據分為訓練集和測試集。訓練集642MB,共有2,288,007條記錄,其中包含了完整的二月份的新註冊用戶的數據,我們利用這個數據集進行分析。

數據集中包含的欄位有109個之多,這裡只呈現一些重要的欄位。其他眾多的欄位都是關於玩家在資源、建築、科研以及加速方面的遊戲角色相關數據。

需要注意的是這些數據都是玩家在註冊後七日之內的匯總數據。

PS:600多兆的數據導入MySQL資料庫,如果個人PC的配置不是很好的話,只是導入數據都有可能花上十幾個小時。我的解決方法是將數據導入Linux雲伺服器,親測不到兩分鐘就搞定!

二、數據分析

整個分析過程結合所擁有的數據集的特性,按照AARRR分析模型的相關環節並結合遊戲領域的相關行業指標進行,分析框架如下。

我們可以先創建二月數據的視圖,方便後續的分析。

CREATE VIEW tapfun_feb ASSELECT * FROM tapfunWHERE DATE(register_time) BETWEEN DATE(2018-02-01) AND DATE(2018-02-28);

用戶獲取

遊戲行業獲取用戶的成本較高,需要廣告投放等等。我們希望導入足夠的流量,並結合相關指標從平台、時間、渠道等維度去評價導入流量的能力和質量,為後續的用戶獲取制訂策略。鑒於本例中我們所擁有的數據,主要從下面幾點進行用戶獲取方面的分析。

1、二月總註冊用戶數

SELECT COUNT(?user_id)FROM tapfun_feb;

二月總註冊用戶數為163萬,可見這款遊戲的流量還是比較大的。

2、周註冊人數

單獨從總註冊用戶數來看,我們並不能得出更多詳細的信息。從時間維度去拆解用戶能讓我們更加清楚各個時間段的註冊用戶數,下面我們從周的維度進行分析。

利用對比分析法,計算每周環比增長,更直觀的顯示出每周新註冊用戶數的變化趨勢。

SELECT week1, week2, CONCAT(ROUND(((week2-week1)/week1)*100,2),%) "環比1", week3, CONCAT(ROUND(((week3-week2)/week2)*100,2),%) "環比2", week4, CONCAT(ROUND(((week4-week3)/week3)*100,2),%) "環比3"FROM(SELECT COUNT(CASE WHEN DATE(register_time) BETWEEN DATE(2018-02-01) AND DATE(2018-02-07) THEN register_time ELSE NULL END) week1, COUNT(CASE WHEN DATE(register_time) BETWEEN DATE(2018-02-08) AND DATE(2018-02-14) THEN register_time ELSE NULL END) week2, COUNT(CASE WHEN DATE(register_time) BETWEEN DATE(2018-02-15) AND DATE(2018-02-21) THEN register_time ELSE NULL END) week3, COUNT(CASE WHEN DATE(register_time) BETWEEN DATE(2018-02-22) AND DATE(2018-02-28) THEN register_time ELSE NULL END) week4 FROM tapfun_feb) week_data;

第二周流量的導入不如第一周,第三周有所回暖,但第四周又再次下降。總體來說第一周的表現較好。

3、日新增用戶數DNU

DNU(Daily New Users):每日註冊並登陸遊戲的用戶數

在遊戲行業,DNU是衡量獲取用戶的能力,即流量導入能力的指標。數據集中只有用戶七天內的平均在線時長,我們可以認為平均在線時長不為0的用戶為註冊並登陸了的用戶,這樣算其實存在一定的誤差,但限於我們的數據只能這樣粗略的計算。

SELECT DATE(register_time) day, COUNT(*) FROM tapfun_feb WHERE avg_online_minutes != 0GROUP BY DATE(register_time)

二月大部分時候的DNU都在40k-60k的範圍內。19日的DNU異常的高,這可能與這一天有某種活動有關。如果我們知道數據的其他欄位,如用戶導入渠道,我們就可以從這些維度去分析不同渠道的新增用戶數量,對渠道的轉化質量做出評價。

4、每周註冊到登陸轉化率

註冊到登陸轉化率可以告訴我們註冊的人中有多少真正登陸了遊戲,如果這個轉化率太低,就需要對登陸環節做出一定的調整。同樣我們可以計算出每周的註冊到登陸轉化率(並不能計算出日轉化率或者月轉化率,因為我們只知道前七天的平均在線時間,七天內的每一天的登陸情況以及之後的登陸情況我們無法得知)

SELECT CONCAT(ROUND(SUM(CASE WHEN (DATE(register_time) BETWEEN 2018-02-01 AND 2018-02-07) AND avg_online_minutes != 0 THEN 1 ELSE 0 END)/ SUM(CASE WHEN (DATE(register_time) BETWEEN 2018-02-01 AND 2018-02-07) THEN 1 ELSE 0 END)*100, 2), "%") rate1, CONCAT(ROUND(SUM(CASE WHEN (DATE(register_time) BETWEEN 2018-02-08 AND 2018-02-15) AND avg_online_minutes != 0 THEN 1 ELSE 0 END)/ SUM(CASE WHEN (DATE(register_time) BETWEEN 2018-02-08 AND 2018-02-015) THEN 1 ELSE 0 END)*100, 2), "%") rate2, CONCAT(ROUND(SUM(CASE WHEN (DATE(register_time) BETWEEN 2018-02-16 AND 2018-02-22) AND avg_online_minutes != 0 THEN 1 ELSE 0 END)/ SUM(CASE WHEN (DATE(register_time) BETWEEN 2018-02-16 AND 2018-02-22) THEN 1 ELSE 0 END)*100, 2), "%") rate3, CONCAT(ROUND(SUM(CASE WHEN (DATE(register_time) BETWEEN 2018-02-23 AND 2018-02-28) AND avg_online_minutes != 0 THEN 1 ELSE 0 END)/ SUM(CASE WHEN (DATE(register_time) BETWEEN 2018-02-23 AND 2018-02-28) THEN 1 ELSE 0 END)*100, 2), "%") rate4FROM tapfun_feb

從數據上看登陸這個環節沒有什麼問題。

用戶活躍

DAU(Daily Active Users)日活躍用戶數,定義為每日登陸過遊戲的用戶數。DAU是遊戲領域解讀活躍用戶的關鍵指標。例如DAU結合DNU,即DNU/DAU,可以客觀反映核心用戶的規模。用戶在線時長也可以反應用戶的活躍度。同樣結合我們的數據,這一節中我們主要基於在線時長對新增用戶的活躍進行分析。

1、平均在線時長

SELECT ROUND(AVG(avg_online_minutes), 2)FROM tapfun_febWHERE avg_online_minutes != 0

二月份新註冊並且登陸了的用戶在前七天內的平均在線時長為9.79分鐘

2、周平均在線時長

同樣我們從時間的維度對平均在線時長進行分割。

SELECT ROUND(week1, 2), ROUND(week2, 2), CONCAT(ROUND(((week2-week1)/week1)*100,2),%) "環比1", ROUND(week3, 2), CONCAT(ROUND(((week3-week2)/week2)*100,2),%) "環比2", ROUND(week4, 2), CONCAT(ROUND(((week4-week3)/week3)*100,2),%) "環比3"FROM(SELECT AVG(CASE WHEN DATE(register_time) BETWEEN DATE(2018-02-01) AND DATE(2018-02-07) THEN avg_online_minutes ELSE NULL END) week1, AVG(CASE WHEN DATE(register_time) BETWEEN DATE(2018-02-08) AND DATE(2018-02-14) THEN avg_online_minutes ELSE NULL END) week2, AVG(CASE WHEN DATE(register_time) BETWEEN DATE(2018-02-15) AND DATE(2018-02-21) THEN avg_online_minutes ELSE NULL END) week3, AVG(CASE WHEN DATE(register_time) BETWEEN DATE(2018-02-22) AND DATE(2018-02-28) THEN avg_online_minutes ELSE NULL END) week4 FROM tapfun_feb WHERE avg_online_minutes != 0) week_data;

我們看到第二周和第三周的用戶在線時長都在下降,為什麼呢? 其實仔細看一下具體日期我們就知道原因了——第二周是臨近春節前的一周,而第三周第一天開始正好是除夕!所以這樣來看用戶在線時長減少也說得通了(雖然是一款多國範圍了上線的遊戲,但其實中國的玩家還是居多的)

3、用戶在線時長分布

SELECT a "0-10m", CONCAT(ROUND((a/(a+b+c+d))*100 ,2) ,"%") perc_1, b "11-30m", CONCAT(ROUND((b/(a+b+c+d))*100 ,2) ,"%") perc_2, c "31-60m", CONCAT(ROUND((c/(a+b+c+d))*100 ,2) ,"%") perc_3, d ">60m", CONCAT(ROUND((d/(a+b+c+d))*100 ,2) ,"%") perc_4FROM (SELECT COUNT(CASE WHEN avg_online_minutes BETWEEN 0 AND 10 THEN avg_online_minutes ELSE NULL END) a, COUNT(CASE WHEN avg_online_minutes BETWEEN 11 AND 30 THEN avg_online_minutes ELSE NULL END) b, COUNT(CASE WHEN avg_online_minutes BETWEEN 31 AND 60 THEN avg_online_minutes ELSE NULL END) c, COUNT(CASE WHEN avg_online_minutes > 60 THEN avg_online_minutes ELSE NULL END) dFROM tapfun_feb WHERE avg_online_minutes != 0) online_time_distribution;

由上圖運行結果可見,87%的玩家在線時長在十分鐘以下,在線時長大於一個小時的玩家僅佔3.59%。對於新用戶我們可以針對在線時長較長的那部分玩家進行相關的活動,讓他們能留下來,增加留存率,更有效的獲取用戶,提高活躍。

4、高活躍用戶數

這裡定義高活躍玩家為七天內的總在線時長大於或者等於12小時的玩家。高活躍的新用戶很可能在之後轉化為核心用戶,我們可以簡單了解一下。

SELECT COUNT(*) num, CONCAT(ROUND(COUNT(*)/(SELECT COUNT(*) FROM tapfun_feb WHERE avg_online_minutes != 0)*100,2),"%") percentageFROM tapfun_febWHERE avg_online_minutes*7 > 12*60;

5、付費維度看在線時長

付費用戶與非付費用戶的在線時長區別有多大?

SELECT CASE WHEN pay_count = 0 THEN "非付費用戶" ELSE "付費用戶" END pay_or_not, ROUND(AVG(avg_online_minutes), 2) online_timeFROM tapfun_febGROUP BY pay_count = 0

付費用戶的在線時長几乎是非付費用戶的18倍之多。付費用戶的平均在線時長能達到兩小時。針對新增的付費用戶,促進他們對充值物品或者虛擬幣的消耗很重要,這樣才能促使玩家下一次的充值。

用戶留存

留存率是指新增用戶在一段時間內再次登陸遊戲的比例。留存率實際也是轉化率的一種體現。通常有日留存率、周留存率、月留存率。比如次日留存率是指某一天的新增用戶在第二天登陸過的比例。

新增用戶的留存率可以用來衡量獲取用戶的質量,產品對用戶的吸引力、黏性等。由於我們所擁有的數據是七日內的匯總數據,我們並不能計算出留存率,這裡只是簡單介紹一下。

用戶付費

用戶付費的關鍵指標為付費率,ARPPU,ARPU。針對新增用戶我們可以從這些指標結合不同維度來衡量新用戶的質量。

1、月總收益

先來看一下這個月的新增用戶帶來的收益

SELECT ROUND(SUM(pay_price)) total_revenueFROM tapfun_feb WHERE pay_count != 0

2、每周新增用戶付費率

付費率(PUR,Pay User Rate):統計周期內,付費賬號數占活躍賬號數的比例

新增用戶的付費率是衡量新增用戶質量的重要指標之一。

在手游市場,因為用戶的生命周期短,更加關心的是日付費率。這裡基於我們的數據只能計算出每周的新增用戶付費率,因為數據恰好是註冊七天內的匯總數據。

SELECT CONCAT(ROUND(SUM(CASE WHEN (DATE(register_time) BETWEEN 2018-02-01 AND 2018-02-07) AND pay_count != 0 THEN 1 ELSE 0 END)/ SUM(CASE WHEN (DATE(register_time) BETWEEN 2018-02-01 AND 2018-02-07) THEN 1 ELSE 0 END)*100, 2), "%") PUR1, CONCAT(ROUND(SUM(CASE WHEN (DATE(register_time) BETWEEN 2018-02-08 AND 2018-02-15) AND pay_count != 0 THEN 1 ELSE 0 END)/ SUM(CASE WHEN (DATE(register_time) BETWEEN 2018-02-08 AND 2018-02-015) THEN 1 ELSE 0 END)*100, 2), "%") PUR2, CONCAT(ROUND(SUM(CASE WHEN (DATE(register_time) BETWEEN 2018-02-16 AND 2018-02-22) AND pay_count != 0 THEN 1 ELSE 0 END)/ SUM(CASE WHEN (DATE(register_time) BETWEEN 2018-02-16 AND 2018-02-22) THEN 1 ELSE 0 END)*100, 2), "%") PUR3, CONCAT(ROUND(SUM(CASE WHEN (DATE(register_time) BETWEEN 2018-02-23 AND 2018-02-28) AND pay_count != 0 THEN 1 ELSE 0 END)/ SUM(CASE WHEN (DATE(register_time) BETWEEN 2018-02-23 AND 2018-02-28) THEN 1 ELSE 0 END)*100, 2), "%") PUR4FROM tapfun_febWHERE avg_online_minutes != 0

遊戲中只有2%的付費玩家並不奇怪,多數玩家只是嘗試一下遊戲就離開了。可以看見,第二周和第三周的付費率有所下降,這可能與這兩周新用戶的導入渠道有關,也有可能與上文中提到的時間有關,因為這兩周正是春節時期。

3、細分付費用戶

遊戲行業通常將付費用戶按照付費額度細分為鯨魚用戶(大R)、海豚用戶(中R)以及小魚用戶(小R)。這樣分群體去分析付費情況可以避免多數的付費用戶被「平均」了的情況,特別是計算ARPPU(平均每付費用戶收入)的時候。

因為主要針對新用戶,這裡我們按照以下定義區分付費玩家:

小R:充值金額小於100元 ,中R: 充值金額大於等於100元小於500元,大R:充值金額大於等於500元

SELECT small_R, CONCAT(ROUND((small_R/total)*100, 2), "%") percentage1, middle_R, CONCAT(ROUND((middle_R/total)*100, 2), "%") percentage2, large_R, CONCAT(ROUND((large_R/total)*100, 2), "%") percentage3FROM (SELECT SUM(CASE WHEN pay_price < 100 THEN 1 ELSE 0 END) small_R, SUM(CASE WHEN pay_price BETWEEN 100 AND 499 THEN 1 ELSE 0 END) middle_R, SUM(CASE WHEN pay_price >= 500 THEN 1 ELSE 0 END) large_R, COUNT(*) total FROM tapfun_feb WHERE pay_count != 0 ) pay_data;

可以看到新增用戶中僅有5%左右的玩家是中R和大R。

我們再來看看總收入的構成情況

SELECT ROUND(small_R), CONCAT(ROUND((small_R/total)*100, 2), "%") percentage1, ROUND(middle_R), CONCAT(ROUND((middle_R/total)*100, 2), "%") percentage2, ROUND(large_R), CONCAT(ROUND((large_R/total)*100, 2), "%") percentage3 FROM ( SELECT SUM(CASE WHEN pay_price < 100 THEN pay_price ELSE 0 END) small_R, SUM(CASE WHEN pay_price BETWEEN 100 AND 499 THEN pay_price ELSE 0 END) middle_R, SUM(CASE WHEN pay_price >= 500 THEN pay_price ELSE 0 END) large_R, SUM(pay_price) total FROM tapfun_feb WHERE pay_count != 0 ) pay_data;

雖然有95%的玩家是小R,但是其只佔了總收入的29%。而遊戲中44%的收入來自於只佔付費玩家數1%的大R玩家。所以在一定程度上我們需要細分付費玩家,避免平均數」惹禍「。

4、ARPU

ARPU(Average Revenue Per User)即每用戶平均收入,ARPU=付費金額/活躍人數

ARPU從某種程度上能衡量遊戲的盈利能力。同樣新增用戶七天內的ARPU也可以作為衡量新用戶的核心指標之一。

SELECT (SELECT SUM(pay_price) FROM tapfun_feb WHERE pay_count != 0) / COUNT(*) ARPUFROM tapfun_feb WHERE avg_online_minutes != 0

可以看到,理論上二月份每一個新用戶進入遊戲在一周內可以帶來0.53元的收益。

5、ARPPU

ARPPU(Average Revenue per Paying User)即平均每付費用戶收入

ARPPU=付費金額/付費人數,ARPPU反映了每個付費用戶的平均付費額度。

接下來我們先看一下全部付費用戶群所帶來的ARPPU,再從細分付費用戶的角度解讀ARPPU

SELECT ROUND(SUM(pay_price)/COUNT(*), 2) ARPPUFROM tapfun_feb WHERE pay_count != 0

每個付費用戶平均可以帶來31.49元的收益。

這個結果對於小R來說肯定被拉大了,對大R來說又被拉小了,那麼我們接下來就具體看一下每個小R、中R和大R的平均付費額度。

SELECT ROUND(small_R/small_R_num, 2) samll_R_ARPPU, ROUND(middle_R/middle_R_num, 2) middle_R_ARPPU, ROUND(large_R/large_R_num, 2) large_R_ARPPUFROM ( SELECT SUM(CASE WHEN pay_price < 100 THEN pay_price ELSE 0 END) small_R, SUM(CASE WHEN pay_price < 100 THEN 1 ELSE 0 END) small_R_num, SUM(CASE WHEN pay_price BETWEEN 100 AND 499 THEN pay_price ELSE 0 END) middle_R, SUM(CASE WHEN pay_price BETWEEN 100 AND 499 THEN 1 ELSE 0 END) middle_R_num, SUM(CASE WHEN pay_price >= 500 THEN pay_price ELSE 0 END) large_R, SUM(CASE WHEN pay_price >= 500 THEN 1 ELSE 0 END) large_R_num FROM tapfun_feb WHERE pay_count != 0 ) pay_data;

結果證實之前的ARPPU被「平均」了。從這個細分的結算結果我們可以知道每一位小R玩家的平均付費額度為9.6元,每一位中R玩家的平均付費額度位207.64元,而每一位大R玩家的平均付費額度則高達1295.28元。

遊戲收入的大部分來自於極少數的大R玩家,對大R玩家的持續關注與調研是保證遊戲營收的主要手段之一。

總結

1、二月份總註冊人數為1632463人,每周有30-40多萬人註冊。二月DNU保持在4萬以上,19日DNU在本月突破性的達到了12萬。

2、新用戶二月平均在線時長9.8分鐘。第二周、第三周因為受到春節假期的影響,新用戶平均在線時長一度下降到7.36分鐘,不過在之後的一個周回暖,甚至超過了第一周的平均在線時長。

3、新用戶中有87%的用戶平均在線時長低於10分鐘,有3.59%的用戶平均在線時長超過1小時。付費用戶的在線時長是非付費用戶的18倍

4、二月份新用戶帶來的收入達854576元,每周的付費率都不超過2%。

5、有95%的玩家是小R,但是其只佔了總收入的29%。而遊戲中44%的收入來自於只佔付費玩家數1%的大R玩家。

6、二月新用戶ARPU為0.53元,ARPPU為31.49元。細分付費用戶來看,小R的ARPPU為9.6元,中R的ARPPU為207.64元,大R的ARPPU可以達到1295.28元。


推薦閱讀:

TAG:手機遊戲 | SQL | 數據分析 |