7.6 KiB
7.6 KiB
| 1 | rule_id | system | sample_implementation | launch_rule | dev_config | required_telemetry | acceptance_criteria |
|---|---|---|---|---|---|---|---|
| 2 | MON-001 | 骰子与局内随机 | 样本存在好地块、开局装备、回合点数、首领防御和监狱脱出等付费或广告道具 | 已经生成的骰子结果不可付费重掷或暗改;辅助道具只在开局前选用,单局每类最多 1 个,均有免费获取路径 | commerce.allow_midroll_offer=false; run_booster.max_per_type=1 | run_booster_offer; run_booster_use; dice_roll_committed | 同一 seed 和输入在付费与非付费账户上得到相同骰子序列;掷骰动画开始后不出现购买弹窗 |
| 3 | MON-002 | 体力 | 样本每局消耗 5,10 分钟恢复 1,上限 40,VIP 增加 20 上限 | 失败重试不重复扣体力;首日给予至少 12 局体验量;付费只加速,不封锁主线结局 | energy.cost_per_run=5; energy.regen_sec=600; energy.base_cap=40; energy.retry_grace_sec=120 | energy_flow; run_start; run_abort; energy_cap_reached | 断线或 120 秒内技术性退出可恢复扣除;自然恢复时间由服务端时间计算 |
| 4 | MON-003 | 奖励广告 | 样本商品表含 22 条 AD_WATCH 行,运行时奖励广告已加载 | 仅设置结算加倍、每日免费体力、AFK 加速、商店免费刷新四类自愿入口;启动版本每日完整奖励最多 6 次 | ad.rewarded.daily_cap=6; ad.rewarded.cooldown_sec=30; ad.rewarded.placements=result_double,energy,afk,shop_refresh | ad_offer; ad_start; ad_complete; ad_fail; reward_grant | 关闭广告不损失原基础奖励;失败时不扣次数;奖励发放幂等且可补发 |
| 5 | MON-004 | 插屏广告 | 样本含插屏管理与去广告商品,运行时插屏库存已加载 | 只允许在返回大厅后的自然断点展示;至少完成 3 局且间隔 10 分钟;失败结算、首局、购买前后和教学期禁用 | ad.interstitial.min_runs=3; ad.interstitial.cooldown_sec=600; ad.interstitial.tutorial_disabled=true | interstitial_eligible; interstitial_show; interstitial_close; session_run_count | 任何局内、战斗、骰子结果和失败页面均不弹插屏;频控跨重启保存 |
| 6 | MON-005 | 去广告 | 样本存在 1.99 美元配置的 remove_interstitial_package 与 forceAdRemove 道具 | 一次性去除强制插屏;奖励广告入口保留且完全自愿;商品描述必须明确不移除奖励广告 | entitlement.remove_forced_ads=lifetime | purchase_start; purchase_success; entitlement_grant; ad_suppressed | 跨设备恢复购买后立即生效;拥有权益的账户 100% 不触发插屏请求 |
| 7 | MON-006 | 抽卡与保底 | 样本 23 个抽取动作,其中 7 个广告、1 个免费;装备保底 20/50,坐骑保底 400 | 公开每档概率、重复品转换和保底规则;保底进度服务端保存且跨卡池规则明确;首次上线不设置超过 80 抽的大保底 | gacha.probability_version=v1; gacha.pity_hard_cap<=80; gacha.server_authoritative=true | gacha_view; gacha_pull_start; gacha_pull_result; pity_change; duplicate_convert | 概率表和客户端展示一致;模拟至少 1000 万抽后误差在统计置信区间内;断线不会重复扣款 |
| 8 | MON-007 | 通行证 | 样本 normal pass 含日/周/挑战任务、免费与高级经验上限,并声明多个 pass 商品 | 首发只保留免费轨和一个高级轨;赛季 28 天;高级奖励以外观、便利和可追赶资源为主,不售 premium-plus | pass.duration_days=28; pass.premium_tiers=1; pass.catchup_week=3 | pass_xp_gain; pass_tier_unlock; pass_purchase; pass_reward_claim | 赛季最后 7 天提供任务追赶;未领取奖励在赛季结束后自动邮件补发 |
| 9 | MON-008 | 每日购买奖励 | 样本表按购买点数 0/1/2/4/7/10/13 累进发奖 | 首发移除按当日消费额累进的额外奖励,改为非付费日常活跃里程碑 | daily_spend_ladder.enabled=false; daily_activity_track.enabled=true | daily_activity_progress; daily_activity_claim | 不出现要求继续消费才能保住进度的 UI;所有日常奖励可由玩法完成 |
| 10 | MON-009 | 阶段/失败触发礼包 | 样本声明大量 stage-clear 与 trigger 商品族 | 礼包只在成功通关后的大厅庆祝区展示,每个里程碑最多一次;失败后 30 分钟内不展示付费挽回弹窗 | offer.post_failure_disabled=true; offer.stage_clear.max_impressions=1; offer.cooldown_sec=1800 | offer_eligible; offer_impression; offer_dismiss; offer_purchase | 连续失败不会提高价格、缩短倒计时或改变概率;关闭一次后本里程碑不再弹 |
| 11 | MON-010 | 角色/装备/宠物/遗物/坐骑 | 样本现金商品可直接投向装备、宠物、遗物、坐骑等战力系统,部分价格配置最高 119.99 美元 | 所有战斗属性均可稳定免费获得;付费只缩短时间;同赛季付费加速形成的有效战力差控制在 15% 内 | power.paid_advantage_cap=0.15; power.exclusive_paid_stats=false | power_snapshot; item_source; progression_velocity; payer_cohort | 无现金专属战斗词条;免费玩家在一个赛季内可达成全部关键玩法门槛 |
| 12 | MON-011 | 价格梯度 | 样本现金配置 343 条,0.99–119.99 美元,中位数 8.99 美元 | 首发 SKU 不超过 12 个;建议档位 0.99/2.99/4.99/9.99/19.99/49.99,暂不启用 99.99 或 119.99 | store.launch_sku_cap=12; store.price_ceiling_usd=49.99 | store_view; sku_impression; purchase_start; purchase_success; purchase_fail | 商店首屏不超过 6 个付费 CTA;价格从平台本地化接口读取,不硬编码 |
| 13 | MON-012 | 订阅/VIP | 样本声明 subscription/VIP 商品,并可增加体力上限 | 首发最多一个月卡;权益为每日货币、去插屏与便利,不提供现金专属关卡、伤害或掉率 | subscription.max_plans=1; subscription.combat_bonus=0 | subscription_view; subscribe; renew; cancel; entitlement_expire | 过期后只停止未来权益,不回收已领取资产;取消路径在两次点击内可达 |
| 14 | MON-013 | 猪猪存钱罐与累积价值 | 元数据存在 PigBankView 和购买入口 | 首发关闭;若后续开启,只累积展示价值,不截留玩家本应获得的基础掉落,且无损失倒计时 | piggy_bank.enabled=false | piggy_accumulate; piggy_view; piggy_purchase | 关闭功能不改变基础掉落;不得用即将清空的威胁推动购买 |
| 15 | MON-014 | AFK 收益 | 样本离线收益最长 1440 分钟,快速 AFK 360 分钟,每日 3 次,消耗 15 体力,广告快速 AFK 每日 1 次 | 保留 24 小时上限;广告加速每日 1 次;快速收益不可同时收取体力和现金 | afk.max_min=1440; afk.quick_min=360; afk.ad_daily_cap=1; afk.cash_cost_enabled=false | afk_open; afk_claim; afk_quick_claim; afk_multiplier | 服务器重算离线时长;修改本机时间不能增加收益;显示领取前的确定数值 |
| 16 | MON-015 | 交易与回执 | 样本使用 Unity IAP/Google Play Billing,当前 Google Play Games 会话有多项商品 unavailable | 商品可用性与目录版本分离;服务端校验回执、发货幂等、支持恢复购买与延迟订单 | purchase.receipt_server_verify=true; purchase.idempotency_key=platform_transaction_id | purchase_start; platform_result; receipt_verify; grant_result; restore_purchase | 重复回调只发一次货;网络恢复后可重试;不可用商品隐藏而不是显示可点击空壳 |
| 17 | MON-016 | 随机与价格披露 | 样本资源表可恢复保底,但客户端是否完整展示无法由本轮确认 | 所有概率、保底剩余、价格、有效期、内容物和重复品规则在确认付款前可见 | compliance.prepurchase_disclosure=true | disclosure_open; purchase_confirm_view; gacha_probability_view | QA 截图可证明每个随机付费入口在付款前两步内可达概率页 |