利用SQL语句对某网游的部分数据进行提取和计算,利用excel进行可视化,并进行新增用户、活跃度和付费情况的分析。
某网游2018年3月7日到2018年3月22日的用户部分数据
字段 | 字段解释 |
---|---|
user_id | 玩家唯一ID |
pay_price | 付费金额 |
register_time | 玩家注册时间 |
avg_online_minutes | 在线时长 |
SELECT COUNT(DISTINCT user_id) AS 新增玩家数量
FROM tap_fun_test;
得到新增玩家数量为828934
SELECT COUNT(DISTINCT user_id) AS 新增付费玩家数量
FROM tap_fun_test
WHERE pay_price>0;
得到新增付费玩家数量为19549
计算可以得到付费玩家占比为2.36%
SELECT DATE(register_time) AS 日期,
COUNT(DISTINCT user_id) AS 当日新增玩家
FROM tap_fun_test
GROUP BY 日期;
SELECT DATE(register_time) AS 日期,
COUNT(DISTINCT user_id) AS 当日新增付费玩家
FROM tap_fun_test
WHERE pay_price>0
GROUP BY 日期;
利用excel进行数据可视化
每日新增玩家在3月10日有一次大高锋增长,在3月13日有一次小高峰增长,可能是因为这两次时间点举办了游戏活动,但是活动一过,后续新玩家注册量并没有显著提升,可见这两次活动并没有给游戏的人气带来实质性的帮助,后续建议加大活动力度或频次,提高游戏的热度。
SELECT AVG(avg_online_minutes) AS 全部玩家平均在线时长
FROM tap_fun_test;
得到全部玩家平均在线时长为11.7分钟
SELECT AVG(avg_online_minutes) AS 付费玩家平均在线时长
FROM tap_fun_test
WHERE pay_price>0;
得到付费玩家平均在线时长为135.8分钟
使用箱线图来分析在线时长的总体特征,先求出最大值、最小值、中位数和上下四分位数
– 全部玩家人数的下四分位数、中位数、上四分位数
SELECT ROUND(COUNT(DISTINCT user_id)/4) AS 下四分位数,
ROUND(COUNT(DISTINCT user_id)/2) AS 中位数,
ROUND(COUNT(DISTINCT user_id)/4*3) AS 上四分位数
FROM tap_fun_test;
SELECT MIN(avg_online_minutes) AS 最小值,
(SELECT avg_online_minutes
FROM tap_fun_test
ORDER BY avg_online_minutes
LIMIT 207233,1) AS 下四分位数,
(SELECT avg_online_minutes
FROM tap_fun_test
ORDER BY avg_online_minutes
LIMIT 414466,1) AS 中位数,
(SELECT avg_online_minutes
FROM tap_fun_test
ORDER BY avg_online_minutes
LIMIT 621700,1) AS 上四分位数,
MAX(avg_online_minutes) AS 最大值
FROM tap_fun_test;
SELECT ROUND(COUNT(DISTINCT user_id)/4) AS 下四分位数,
ROUND(COUNT(DISTINCT user_id)/2) AS 中位数,
ROUND(COUNT(DISTINCT user_id)/4*3) AS 上四分位数
FROM tap_fun_test
WHERE pay_price>0;
– 付费玩家的在线时长的最值、下四分位数、中位数、上四分位数
SELECT MIN(avg_online_minutes) AS 最小值,
(SELECT avg_online_minutes FROM tap_fun_test
WHERE pay_price>0 ORDER BY avg_online_minutes
LIMIT 4886,1) AS 下四分位数,
(SELECT avg_online_minutes FROM tap_fun_test
WHERE pay_price>0 ORDER BY avg_online_minutes
LIMIT 9774,1) AS 中位数,
(SELECT avg_online_minutes FROM tap_fun_test
WHERE pay_price>0 ORDER BY avg_online_minutes
LIMIT 14661,1) AS 上四分位数,
MAX(avg_online_minutes) AS 最大值
FROM tap_fun_test
WHERE pay_price>0;
利用excel制作箱线图并分析
全部玩家的在线时长箱线图向下压缩的很厉害,全部玩家在线时长上四分位数为5, 75% 的玩家平均在线均低于5 分钟,可见玩家流失的情况还是比较严重的。
付费用户的在线时长箱线图中,下四分位数为31,中位数为 85,上四分位数191,也就是说,付费用户中,75%以上的的用户在线时长都超过了30分钟。
关键指标:
AU(Active Users):活跃用户,这里定为游戏时长达15分钟的为活跃用户。
PU ( Paying User):付费用户
APA(Active Payment Account):活跃付费用户数
ARPU(Average Revenue Per User) :平均每个活跃用户的收入,即可通过总收入/AU 计算得出。
ARPPU (Average Revenue Per Paying User): 平均每个活跃付费用户收入,可通过总收入/APA 计算得出。
PUR(Pay User Rate):付费比率,可通过 APA/AU 计算得出
SELECT COUNT(DISTINCT user_id) AS AU,
(SELECT SUM(pay_price) FROM tap_fun_test) AS 总收入,
(SELECT SUM(pay_price) FROM tap_fun_test)/COUNT(DISTINCT user_id) AS ARPU
FROM tap_fun_test WHERE avg_online_minutes>=15;
SELECT COUNT(DISTINCT user_id) AS APA,
(SELECT SUM(pay_price) FROM tap_fun_test) AS 总收入,
(SELECT SUM(pay_price) FROM tap_fun_test)/COUNT(DISTINCT user_id) AS ARPPU
FROM tap_fun_test
WHERE avg_online_minutes>=15 AND pay_price>0;
SELECT COUNT(DISTINCT user_id) AS APA,
(SELECT COUNT(DISTINCT user_id)
FROM tap_fun_test WHERE avg_online_minutes>=15) AS AU,
COUNT(DISTINCT user_id)/(SELECT COUNT(DISTINCT user_id)
FROM tap_fun_test WHERE avg_online_minutes>15) AS PUR
FROM tap_fun_test
WHERE avg_online_minutes>=15 AND pay_price>0;
该游戏人均付费率ARPU很低,说明游戏的收入表现较差,但是对比ARPU,平均每个付费用户收入ARPPU很高,是ARPU的6倍有多,那就说明收费玩家的付费能力很强,针对这一点,我们可以做一些付费功能调整和优化,让氪金玩家体验更好。
付费率只有2.70%,可以开展一个首充活动,比如充1元可获得价值50元的大礼包,就能够很好地提高游戏的付费率了。