# 《铜钱弹江湖》测试验收、埋点与测款纪律

> 版本：v0.1 · 2026-07-10  
> 原则：先证明好玩与留存，再开 IAA，再开 IAP；买量测款严格串行，一次只动一个变量

---

## 1. 测试结论如何产生

这份文档不是“上线前找 Bug 清单”，而是决定项目是否继续投钱的证据协议。任何数字必须附平台、版本、日期、样本、归因窗口、实验桶与置信区间；没有这些上下文的“付费率高”“留存不错”不进入拍板。

### 1.1 决策顺序

1. 物理手感与核心理解；
2. 无商业化留存；
3. 激励视频单变量；
4. 首充单变量；
5. 月卡/战令逐项；
6. 小额买量 ROI；
7. 放量与 90 天运营。

前一层没过，后一层的数据无权“救”项目。尤其禁止用广告密度、强卡点、礼包弹窗增加短期收入来掩盖留存失败。

---

## 2. 阶段决策门

| 阶段 | 构建内容 | 样本建议 | 主指标 | GO | STOP/回炉 |
|---|---|---:|---|---|---|
| 手感内测 | 3 次弹射、2 名队友、1 Boss | 20–30 人可用性 | 首三次路径理解、发射成功、碰撞顺序复述 | 理解 ≥80%；发射成功 ≥95%；低端机同 seed 结果一致 | 轨迹/反馈未懂就只改手感 |
| 素材预检 | 5 实装方向，各 3 首帧 | 同账户等额投放 | CTR、3 秒/完播、落地→首局 | 至少 1 方向进历史综合前 25% | 只换题材/首帧；需要假玩法即停 |
| 无商业化留存 | 完整首 10 分钟+7 日 meta | 每平台首轮 ≥3,000 新用户 | 教程、首局、D1、D7、D3目标理解 | 教程 ≥80%；首局 ≥70%；D1 ≥45%；D7 ≥15% | 优先修核心/目标；不开变现 |
| IAA 1 | 只开 near-miss 首次激励复活 | 基线/实验各 ≥2,000 | 广告渗透、人均激励、D1/D7 差 | 3–5 次/活跃日；D1 下降 <3pp | 改频次/自然断点 |
| IAA 2 | 新增体力/战利品翻倍场景 | 同上 | 4 场景使用分布、留存 | 无单场景过半；总留存仍过线 | 禁止继续加密度 |
| IAP 1 | 只开 ¥6 首充 | 触达用户 ≥2,000 | 触达转化、到账、D7、退款投诉 | 触达转化 ≥5%；链路 0 重复发货；留存无显著伤害 | 改欲望物/价值表达 |
| IAP 2 | 新增 ¥30 月卡 | 付费触达 ≥1,000 | 月卡渗透、权益使用、7/30日累计 | 付费用户中渗透目标 ≥20%；成长链被使用 | 不靠加体力痛点逼购 |
| IAP 3 | 战令+轮换礼包 | 1 个完整周赛 | 付费深度、赛季参与、榜生态 | ¥1000 路径第2周不断；榜各区有人 | 调奖励/匹配，不伪造真人 |
| 小额买量 | 固定产品+素材胜者 | 预算按账户基线 | 7日ROI、LTV:CAC、留存保真 | ROI ≥1.0；LTV:CAC ≥2:1；留存≥基线90% | 停放量，定位单变量 |

所有阈值是立项门槛/估算，不是行业事实或收入承诺。样本量按实际基准率、最小可检测效应与统计功效重新计算。

---

## 3. 核心漏斗

```text
素材曝光
 → 点击/进入
 → 2秒首操作
 → 首次有效发射
 → 首次碰撞队友
 → 首次技能链
 → 首房击败/near-miss
 → 撤离或深入
 → 结算到账
 → 花铜铢升级
 → 侠力 +X 可见
 → D1欲望物预览
 → D3宗门协作
 → D7试剑周榜
 → D30/D90赛季与收集
```

每一级都能定位掉点，禁止只看总留存猜原因。

### 3.1 理解题

在 D0、D3 访谈中不提示地询问：

1. 你刚才怎么让队友出招？
2. 下一次最想得到什么？在哪里看见的？
3. 你现在主要在提升什么？提升后能做什么？
4. 为什么会选择撤离/深入？失败失去多少？
5. 第 7 天回来想参加什么？

合格答案必须出现“碰撞顺序/技能链”“侠力/更深房间/试剑榜/具体欲望物”。若多数用户只答“瞄准更准、分数更高”，D1/D2 失败。

---

## 4. 事件字典

### 4.1 公共字段

所有事件携带：

`event_id, event_name, event_version, client_ts, server_ts, session_id, player_id_hash, install_id_hash, platform, channel, campaign, creative_id, app_version, content_version, config_version, experiment_ids, device_tier, fps_bucket, network_type, age_band, consent_version, days_since_install`

金额以分为单位整数；资源变化同时写 `before/delta/after/reason/ref_id`；事件 ID 全局唯一，服务端去重。

### 4.2 启动与教程

| 事件 | 触发 | 关键属性 | 回答 |
|---|---|---|---|
| `app_open` | 进入前台 | cold_start, load_ms | 启动与回流 |
| `bootstrap_ready` | 可操作 | total_ms, cache_used | 2 秒门槛 |
| `tutorial_step` | 步骤展示/完成/跳过 | step_id, action, elapsed_ms | 教程掉点 |
| `first_input` | 首次拖动 | time_to_input_ms | G1 |
| `launch_aim` | 开始/取消/发射 | drag_px, angle, power, assist_mode | 输入可用性 |
| `first_ally_hit` | 首撞队友 | launch_index, ally_id, elapsed_ms | 技能链理解入口 |
| `tutorial_complete` | 首个结算+升级结束 | duration_ms, retries | 教程完成率 |

### 4.3 战斗与撤离

| 事件 | 触发 | 关键属性 |
|---|---|---|
| `battle_ticket_issued` | 服务端发票据 | ticket_id, room_set, seed_hash, power_snapshot |
| `room_start` | 房间进入 | room_index, enemy_set, hp, expected_power |
| `coin_launch` | 每次发射 | launch_index, angle_bucket, power_bucket, preview_bounces |
| `ally_chain` | 技能链结算 | ordered_ally_ids, chain_len, damage, readable_ms |
| `enemy_hit` | 合并上报伤害 | enemy_id, hit_count, damage, source |
| `near_miss_shown` | 符合 near-miss | boss_hp_pct, launches_left, predicted_gap |
| `continue_choice` | 双通道选择 | choice=ad/jade/free_exit, offer_id, desire_id |
| `room_clear` | 房间完成 | duration, launches, hp_left, loot_rarity |
| `depth_choice` | 撤/深入 | choice, secured_loot, risk_preview, next_room_rarity |
| `battle_fail` | 失败 | room_index, retained_ratio, reason |
| `battle_claim` | 服务端结算 | claim_status, reward, latency, duplicate |
| `settlement_view` | 结算展示 | secured/retained/lost, pass_xp, coop, season_score |
| `retry` | 一键重开 | from=near_miss/fail/settlement, stamina_delta |

### 4.4 成长与欲望

| 事件 | 触发 | 关键属性 |
|---|---|---|
| `power_view` | 侠力组件曝光 | power, context |
| `dimension_view` | 五维页 | dimension, level, next_cost, next_power |
| `upgrade_intent` | 点升级 | dimension, cost, currency_before, preview_power |
| `upgrade_result` | 服务端升级 | status, power_before, delta, power_after |
| `desire_impression` | 欲望物曝光 ≥1s/50% | desire_id, day_anchor, visibility_mode, gap, channel |
| `desire_preview` | 主动打开预览 | desire_id, skill_viewed, source |
| `codex_view` | 百侠谱 | collected, total, next_missing |
| `codex_unlock` | 首次入谱 | entry_id, permanent_power, duplicate_conversion |
| `streak_change` | 签到/断签/补签 | before, after, protection_channel |

### 4.5 社交与赛季

| 事件 | 触发 | 关键属性 |
|---|---|---|
| `coop_view` | 木人王页 | group_id_hash, personal, group, milestone_gap |
| `coop_contribution` | 经结算贡献 | source_claim, delta, milestone |
| `league_view` | 试剑榜 | group_size, tier, rank, promoted_zone |
| `league_score` | 成绩写入 | verified_score, rank_before/after, source_claim |
| `league_overtaken` | 被超提示 | rank_delta, rival_power_bucket |
| `season_reward_claim` | 领取 | final_rank, reward_id, inherited_tier |
| `share_intent` | 点分享 | type=help/taunt, reward_optional=true |
| `share_return` | 好友有效回流 | attribution_id, self_invite_blocked |

### 4.6 广告、商店与支付

| 事件 | 触发 | 关键属性 |
|---|---|---|
| `ad_offer` | 激励入口曝光 | scene, desire_id, alternative_free/pay, cooldown |
| `ad_start/result` | 开始/结果 | scene, network, result, duration, reward_claim |
| `shop_view` | 商店/SKU曝光 | tab, sku_ids, age_restricted |
| `sku_impression` | SKU有效曝光 | sku, price_cent, power_delta, desire_id, discount_basis |
| `purchase_intent` | 发起购买 | sku, price_cent, desire_id, power_delta |
| `order_created` | 服务端下单 | order_id_hash, sku, limit_state |
| `payment_result` | 客户端结果 | order_id_hash, platform_result; **不表示发货** |
| `delivery_result` | 服务端发货 | order_id_hash, status, latency, duplicate, ledger_id |
| `refund_result` | 退款/撤回 | sku, reason, reversal_status |
| `probability_view` | 概率/保底页 | pool_version, pity_before |

---

## 5. 指标定义

| 指标 | 定义 |
|---|---|
| 首操作率 | `first_input` 用户 / `bootstrap_ready` 用户 |
| 首三次理解率 | 可用性测试中正确复述“碰撞顺序=技能顺序”人数 / 完成前三次发射人数 |
| 首局完成率 | 首次 `settlement_view` 用户 / 首次 `room_start` 用户 |
| 深入率 | 选择 continue 的 `depth_choice` / 全部 `depth_choice` |
| 深入失败 rage quit | 深入失败后 5 分钟内不重试且会话结束 / 深入失败用户 |
| 成长闭环率 | 首次结算后 10 分钟内成功升级并看见侠力变化用户 / 首局完成人数 |
| 欲望识别率 | 访谈中可说出具体欲望物及差距人数 / 受访人数 |
| Dn 留存 | 安装/首次登录口径在第 n 个自然日活跃；平台回流口径单列 |
| 广告渗透 | 当日完成 ≥1 次激励视频用户 / DAU |
| 首充触达转化 | 首充成功发货用户 / 有效曝光首充用户 |
| 7/30日累计付费 | cohort 安装后 7/30 日内累计 IAP；不能用首日替代 |
| 赛季参与 | 当周有 ≥1 个经校验成绩用户 / D7+活跃用户 |
| LTV:CAC | 同 cohort 净收入 LTV / 获客成本；分成、退款、激励按财务口径 |

素材归因从 `creative_id → first_input → first settlement → D1/D7 → payer` 保持贯通；禁止只用 CTR 选“标题党”素材。

---

## 6. 串行实验计划

| 顺序 | 只改变 | 对照 | 主要观测 | 最短窗口 |
|---:|---|---|---|---|
| 1 | 轨迹预览长度：1 vs 2 次反弹 | 当前基线 | 理解、发射取消、战斗差异 | 达样本且 ≥3 天 |
| 2 | 首房发射次数 4 vs 5 | 胜者 | 首局、near-miss、rage quit | ≥3 天 |
| 3 | 同为失败保留 70%：先展示“带回明细” vs 先展示“损失明细” | 胜者 | 保留率理解、深入率、重试、D1 | ≥7 天 |
| 4 | 只开首次 near-miss 激励 | 无广告基线 | D1/D7、广告渗透 | ≥7 天 |
| 5 | 新增体力广告入口 | 上一胜者 | 人均广告、会话、留存 | ≥7 天 |
| 6 | 首充触点：空位差一步 vs 结算后 | 无 IAP 基线 | 触达转化、D1/D7 | ≥7 天 |
| 7 | 首充价值表达：侠力差分 vs 内容列表 | 上一胜者 | 预览→购买、理解 | ≥7 天 |
| 8 | 月卡权益组合 | 首充胜者 | 月卡渗透、7/30日累计 | ≥30 天 |
| 9 | 战令奖励密度 | 月卡胜者 | 赛季参与、付费深度 | 完整 28 日季 |

同一时间不做素材题材、难度、广告、礼包四项大改。紧急 Bug 修复记录为实验污染并重新计算窗口。

---

## 7. 功能/E2E 验收

### 7.1 Demo 必过

- [ ] `demo.html` 可 `file://` 打开，无 CDN、无父目录依赖、无网络请求。
- [ ] 320×568 无水平滚动；390×844 与桌面视口主流程完整；触控目标 ≥44×44。
- [ ] 鼠标/触摸能真实改变发射角度与结果；不是预录动画。
- [ ] 侠客印与至少两名队友发生真实碰撞，并按顺序触发不同技能。
- [ ] 90 秒内出现可变奖励；战后可撤离或深入。
- [ ] 可触发 near-miss；广告/玉符/免费退出三通道都可选；失败保留 70%，一键重开无重罚。
- [ ] 结算只到账一次，刷新/重复点击不重复发奖；战令、协作、榜分至少各推进一个。
- [ ] 花铜铢升级后侠力精确 `+X`，HUD 与成长页一致。
- [ ] D1 欲望物先预览后首充；模拟购买只发一次并真实解锁“铁算盘·阿策”与 `+3200`。
- [ ] 月卡、战令、体力/复活双通道、表达商品及其榜单展示可见。
- [ ] 训练对手明确标 AI；规则展示 50 人、7 日、升保降、独占奖励。
- [ ] localStorage key 独立；刷新保留；重置只删除本游戏；损坏存档回到安全默认。
- [ ] 概率公示、未成年限制、可选分享、广告标识、Demo 无真实支付说明可达。
- [ ] `window.__COIN_DEMO__` 提供状态读取与测试动作；`node tools/demo-smoke.mjs` 通过。

### 7.2 正式版 P0

- 支付重复回调、客户端伪成功、金额/SKU/用户不符、超时、补单、退款、对账。
- 升级/结算重复请求、并发 revision、负余额、账本与资产不一致。
- 战斗票据重复 claim、过期、篡改 seed/阵容/侠力、异常伤害、断网重试。
- 赛季锁榜与重复结算、分组不足、跨段位、异常分隔、奖励邮件幂等。
- 实名/年龄态切换、未成年消费限额、禁玩时段、游客不可付费。
- 限时 SKU 服务端到期、客户端改时钟、配置回滚与签名失败。

---

## 8. 数值回归

每次数值表改动必须运行：

```bash
node tools/economy-simulator.mjs
```

验收：

- ¥0/¥30/¥328/¥1000 至少四档跑满 90 天；本项目另跑 ¥36 与 ¥5000。
- 任一资源 D90 前无“持续溢出且无处花”；货币累计 sink 容量 > source。
- 付费领先但免费持续成长，免费玩家每周有明确下一欲望物。
- ¥1000/30 日与 ¥5000/90 日消费表累计金额精确，第二周/第二三季不断粮。
- 付费战力优势不能让免费玩家失去主线通路；分段匹配避免跨量级碾压。
- 输出 `simulation-results.csv/json` 与 `simulation-diff.json`；任何断言失败 CI 失败。

人肉试玩用于轨迹、震感和可读性，不用于拍脑袋定经济。

---

## 9. 自动化矩阵

| 层 | 工具/触发 | 覆盖 |
|---|---|---|
| 静态 | 每提交 | HTML/JS 语法、断链、无 CDN、危险支付文案、CSV 列数/必填 |
| 单元 | 每提交 | 固定步物理、稳定碰撞排序、伤害、侠力、保底、价格、幂等键 |
| 数值 | 改配置/每日 | 六档 90 日、基线 diff、双路径、欲望窗口 |
| E2E | PR/每日多视口 | 教程、战斗、撤离、near-miss、成长、首充、月卡、榜、存档 |
| API契约 | PR | schema、鉴权、revision、错误码、服务端时间 |
| 支付沙箱 | 每日/发版 | 下单、回调、重复、退款、对账 |
| 回放 | 每日/引擎改动 | 基准 seed × 设备档的碰撞/结算哈希 |
| 性能 | 每日/发版 | FPS、内存、启动、包体、API P95 |
| 合规 | 每提交/发版 | 概率入口、未成年开关、广告标识、强制分享、限时/折扣、AIGC台账 |

---

## 10. 兼容、性能与可访问性

### 10.1 设备矩阵

- 微信/抖音当前支持的最低基础库与最新稳定版；安卓低/中/高档、iOS 主流近四代。
- 320×568、360×800、390×844、430×932、平板、PC 小游戏窗口。
- 弱网 200ms/5% 丢包、断网、前后台切换、系统来电、低电量、内存回收。

### 10.2 性能门

- 中端机首屏可操作目标 ≤2 秒；低端战斗逻辑 ≥30fps。
- 同一 seed+输入的结算哈希跨帧率一致。
- 10 局连续战斗内存不持续上升；后台恢复不重复扣体力/发奖励。
- 粒子降级后敌我、队友碰撞顺序、轨迹和按钮仍可读。

### 10.3 可访问性

- 重要语义不只靠颜色；技能顺序有编号、形状和文本。
- 提供动态降低、震动开关、瞄准辅助、文字缩放安全区、左手模式。
- 焦点顺序与屏幕阅读器名称覆盖商店、概率、合规与核心导航。

---

## 11. 合规机器门

- 未成年态出现付费抽取、超限 SKU 或无适龄提示：P0。
- 概率/保底入口超过一级导航或配置与服务端不一致：P0。
- 客户端发货、改时钟延长限时、重复“最后一天”：P0。
- 无替代路径的强制分享、广告关闭伪装、插屏盖住操作：P0。
- 素材展示不存在的轨迹/掉落/角色/倍率：素材拒发。
- AI 资产缺来源/许可证/生成记录，或相似性审查失败：资产拒入库。
- “铜钱”被包装成下注、赔率、奖金池、现金兑换或老虎机/pachinko：G9 一票否决。

---

## 12. 最终停止线

以下任一项连续两轮单变量修正仍不过，项目停止，不进入更重商业化：

1. 前三次弹射技能链理解 <80%。
2. 玩家长期目标仍是“练准度/更高分”而不是侠力、觉醒、收集或赛季。
3. 无商业化 D1 <45% 或 D7 <15%。
4. 同侠力操作长期差 >30%，或手动与自动无差，皮骨任一边失效。
5. 深入失败 rage quit 无法在 70%保留、明确风险预览下收敛。
6. 真实素材无方向进入账户历史前 25%，只有假玩法有点击。
7. 支付幂等、未成年保护、概率公示或榜单反作弊无法达 P0。
8. ¥1000 第 2 周或 ¥5000 第 2/3 季无真实欲望物承接。

项目只在“留存、变现与合规同时成立”时放量；任何一个维度的好数据都不能抵消另一个维度的硬失败。
