Skip to content

Rayna-RRR/gamelytics-dashboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

游戏运营数据看板

这是一个数据分析项目。

不是线上生产系统,是一个基于真实处理结果整理出来的运营分析样例。重点工作是把数据口径、基础判断和解释边界说明白。

项目目的

这个仓库最早更接近一个前端展示页。重做时,保持了技术栈和 UI,主要做了两件事:

  1. 让页面上的指标来自真实聚合结果,而不是固定示例数据。

  2. 让看板更像一个可以拿去面试讨论的运营分析作品,而不是一个纯展示 demo。

这个项目主要想回答几个比较基础、但在游戏运营中很常见的问题。

  1. 新用户留存是不是有明显流失点?

  2. 活跃用户结构偏不偏轻,哪些人群更值得优先运营?

  3. 收入是不是过度集中在少数高价值用户?

  4. 当前 A/B 样本能不能支持明确判断?

项目作用

它主要能说明下面几件事:

  1. 指标口径说清楚。

  2. 用数据解释留存、活跃和收入结构。

  3. 区分“数据结果”“分析解释”和“运营假设”。

  4. 在证据不足时明确说边界,而不是硬下结论。

数据来源

本项目使用的数据来自 Kaggle 公共数据集 Gamelytics: Mobile Game Analytics Challenge

数据集地址:https://www.kaggle.com/datasets/debs2x/gamelytics-mobile-analytics-challenge

仓库中的 data/raw/Gamelytics/ 是这套公开数据集的本地副本。本项目基于这套公开数据完成了预处理、聚合和看板分析。

当前使用的原始文件包括:

reg_data.csv:注册数据,100 万用户。

auth_data.csv:登录数据,960 万+ 行。

ab_test.csv:A/B 变现实验样本,404,770 用户。

预处理与数据链路

由于 auth_data.csv 体量较大,页面不直接读取原始 CSV,而是先离线处理,再由前端读取轻量结果文件。

离线处理脚本:scripts/prepare_dashboard_data.py

页面直接读取的结果:data/dashboard-metrics.json

另外还保留了一组便于核对的处理结果。

data/processed/daily_metrics.csv

data/processed/cohort_retention.csv

data/processed/activity_segments.csv

data/processed/ab_test_summary.json

data/processed/dashboard_payload.json

这里没有做复杂的数据工程,主要是因为大体量登录日志不适合直接丢给前端,作品集页面上的数字也应该能回溯到具体聚合结果。

看板主要展示什么

页面沿用现有结构,主要分成几块。

总览:DAU、D1 / D7 留存、实验样本付费率、ARPU、ARPPU。

留存分析:D1 / D3 / D7 / D14 / D30 留存、完整留存曲线、月度 cohort。

营收分析:实验样本口径下的总营收、付费率、收入结构和付费层级。

A/B 样本结果:A / B 两组的样本内付费率、ARPU 和基础显著性结果。

洞察与建议:把结果整理成适合讨论的风险信号和候选方向。

其中“洞察”和“建议”需要分开理解。洞察里的数字来自聚合结果,建议是基于当前结果提出的运营假设,不是已经验证完成的方案。

核心指标与口径

DAU

定义:按自然日去重的登录用户数。

页面展示:近 7 日平均 DAU,以及 2020 年周均 DAU 趋势。

留存

定义:定点留存(exact-day retention),不是滚动留存。

解释:Dn 表示用户是否在注册后第 n 个自然日登录。

处理方式:对尚未成熟的窗口,分母按可观测用户计算。

这也意味着留存曲线不一定单调下降,D7 高于 D1 不自动代表计算错误。这里的留存更适合拿来找流失节点和节奏信号。

Cohort

定义:按注册月份聚合的留存 cohort。

页面主展示:2020 年注册 cohort。

页面主展示聚焦 2020 cohort,主要是为了让近期样本更集中、页面更容易读。更早月份的完整结果仍保留在 data/processed/cohort_retention.csv

变现指标

付费率:实验样本中付费用户占比。

ARPU:实验样本总收入 / 实验样本总用户数。

ARPPU:实验样本总收入 / 实验样本付费用户数。

这些指标只代表 ab_test.csv 样本,不代表全部注册用户。

A/B 样本结果

页面展示的是 A / B 两组样本用户数、样本内付费率差异、样本内 ARPU 差异和基础显著性结果。

这里的定位是“样本结果解读”,不是完整的实验评审结论。

这个项目能支持哪些运营判断

从运营分析角度看,这个项目比较适合支撑几类基础判断。

新用户首日和首周留存哪里掉得比较明显。

近期 cohort 之间有没有明显差异。

活跃用户结构里,沉默用户、中层活跃、核心活跃分别占多少。

收入是不是过度依赖少数高价值用户。

A/B 样本里有没有值得继续验证的趋势,或者有没有明显不能直接推广的风险。

这些判断都比较基础。这个项目的重点不是把分析做复杂,而是把口径、结果和边界讲清楚。

局限与边界

这个项目有几条需要直接说明的限制:

全量活跃/留存分析和 A/B 变现实验分析不是同一用户母体。

所以不能把全量留存和实验样本 ARPU 直接拼成一个完整经营漏斗。

变现相关结论只代表 ab_test.csv 样本。

当前数据没有提供实验起止时间、分流规则、曝光口径,也没有版本、活动、渠道等上下文。

因此 A/B 模块只能做样本结果解读,不能当成完整上线结论。

页面里的建议属于候选方向,仍然需要进一步验证。

本地运行

生成聚合结果:

python3 scripts/prepare_dashboard_data.py

启动本地静态服务:

python3 -m http.server 8000

浏览器打开:

http://127.0.0.1:8000/

补充说明:页面通过 fetch() 读取 JSON,不建议直接双击打开 index.html。预处理脚本依赖 pandas

项目结构

index.html:页面结构。

gamelytics-dashboard.css:页面样式。

gamelytics-dashboard.js:前端渲染逻辑。

scripts/prepare_dashboard_data.py:离线处理脚本。

data/dashboard-metrics.json:页面直接读取的聚合结果。

data/processed/:便于核对的处理输出。

把页面里的建议进一步改成“运营假设 + 验证方式”。

给 cohort 增加样本量或可观测用户说明,减少误读。

给 A/B 补一张更完整的说明卡片,明确样本范围和结论边界。

把活跃分层再往运营表达上收一层,比如更清楚地区分召回对象和深化对象。

About

a gamelytics dashboard

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors