用途:为游戏提供与品类无关的玩法分析能力,覆盖玩家事件追踪、留存(D1/D7/D30)、参与漏斗、会话分析与 A/B 测试埋点。存储使用 Drizzle ORM + PostgreSQL,Redis 用于高吞吐事件缓冲。
主要能力:事件追踪(noun_verb 命名,如 level_completed、item_purchased、match_ended);会话显式追踪(session_started、session_heartbeat、session_ended,服务端 5 分钟空闲超时关闭孤儿会话);按注册日期分组的队列留存分析(区别于 DAU);可配置的有序漏斗与逐步流失统计;通过事件属性 experimentId 与 variant 做 A/B 测试标记。
使用方式:依赖 postgres-game-schema 与 redis-game-patterns。安装:bun add drizzle-orm @neondatabase/serverless ioredis 与 bun add -d drizzle-kit。复制 boilerplate/analytics-schema.ts 与 boilerplate/analytics-client.ts,生成并运行迁移:bunx drizzle-kit generate、bunx drizzle-kit migrate。初始化 AnalyticsClient({ redis, db }) 后,在游戏代码中调用 analytics.track(...)(fire-and-forget,不在游戏循环中 await),会话用 analytics.trackSession('start'|'heartbeat'|'end')。事件先 LPUSH 到 Redis 列表,再由 worker 批量 flush 写入 PostgreSQL。留存查询与事件目录见 templates/retention-dashboard.md 与 templates/event-catalog.md。
适用场景:需要测量玩家行为、留存与漏斗,并希望分析写入不阻塞游戏逻辑的团队。
限制与注意:每个事件必须带 userId、sessionId、timestamp、version、platform 五个字段;分析表与玩法表分离,事件表 append-only;需规划事件量(如 10K DAU 约 500K 事件/天),按 createdAt 分区、归档 90 天以上数据、用物化视图或预聚合表;避免事件爆炸、事件中携带 PII、把留存与 DAU 混淆、在游戏循环中同步写库、硬编码漏斗步骤;大规模下需采样策略。具体收费、平台与效果资料暂未提供。