这是《小游戏开发实战》五卷本的第四卷。卷一回答了「做什么、给谁做、怎么算账」,卷二回答了「怎么把它做出来,并且做得手感对、跑得动」,卷三回答了「怎么上线、怎么变现、怎么活得久」,这一卷回答最后、也最容易被跳过的问题:钱花出去之后后台长什么样、账怎么对、资质怎么办、这一摊子怎么收尾。它不讲 3D、不讲原生发行、不讲引擎 API、不讲服务端架构,它讲的是把一款已经上线的小游戏当成一门生意来经营,每一步都对应一个能跑出来的产物或一份能核对的清单。
卷四《商业运营实战》回答四个问题:钱怎么花出去、怎么判断花得值(第 1–4 章),钱怎么收回来、广告位怎么配(第 5–8 章),渠道、商务、资质这些非技术的事怎么落地(第 9–12 章),账怎么算、怎么收尾、怎么交给下一卷(第 13–16 章)。贯穿全书的仍是虚构的轻度小游戏 《合成小岛》(merge-island:合成 + 放置 + 关卡 + 装扮)与工具链 pebble(config/ + sim/ Python + core/ TypeScript + web/ 单文件 HTML)。卷三目录
把游戏推上线、算成一门生意,这一卷把它真正经营起来。
这套书与站内既有内容的分工
站内已经有不少相邻内容,写清楚分工比重复写一遍更有价值。下面七处边界是本卷最容易混淆的,务必分清:
- 卷三《上线、变现与长线运营》 是本卷最大的撞车源(51 篇)。它讲变现模型、买量渠道机制与素材设计框架;本卷不重做这些,只做投放后台实操、广告聚合 SDK、移动归因、资质办理、结算与现金流。卷三第 5 章讲「买量在买什么、漏斗公式怎么推」,本卷第 1–2 章接着讲「后台的账户层级怎么建、出价怎么调、什么时候关停」。
- 游戏广告变现设计清单 是一篇清单式短文,列的是广告形态与频控要点。本卷第 5–6 章做的是可跑的聚合架构与 eCPM 分层模型:同一份广告位配置,能算出一层该配多少底价、填充率掉在哪一环。
- 游戏产业专题(game/industry) 有 81 篇覆盖客服、社区、团队、外包、排期、复盘。本卷只在 13.2 一节外链它并写明分工,不展开;13.1 与 13.3 只写「与投放变现联动」的那部分。
- 独立游戏发行合同谈判指南 是合同范本与行业惯例口径。本卷第 10 章不重写范本,只做 H5 小游戏口径的条款清单化与齐备性校验。
- Defold 广告接入:IAP 与广告 讲的是单引擎的 SDK 接入与瀑布流。本卷第 5 章做的是多平台聚合对比与配置模型:同一份配置怎么落到穿山甲、优量汇、AdMob 三家不同的接入形态上。
- H5 游戏产业全景 是产业综述口径,横着讲技术栈、生态、政策与联运分成。本卷第 9 章把它拆成可对接的渠道分级与可跑的分成模型。
- 小游戏服务平台(saas/minigame) 与 创作平台(saas/game-engine) 讲的是做平台 / 做工具。本卷是「在平台上把一款游戏经营起来」,不关心平台怎么建,只关心我这一个游戏怎么投、怎么收、怎么办证、怎么结算。
一句话:本卷做的是「一款已经上线的小游戏怎么被当成一门生意来经营」,不是「做一个平台」或「做一个引擎」,也不是「行业趋势报告」。
明确不在本卷范围内
为了让边界清楚,下面这些这一卷不讲:
- 3D 渲染与美术管线(模型、骨骼、shader、美术生产流程)。
- 原生 App / 主机 / Steam 发行(站内已有 Steam 发行专题 ,那是 PC 平台口径,与本卷的小游戏平台口径不同)。
- Cocos / Godot / Defold 等引擎的 API 教程(站内已有专书)。
- 服务端架构(房间服、匹配、跨服;站内已有 《MMO 服务器开发》四卷本 )。
- 做「小游戏平台 / 创作工具」本身(站内已有 game-engine 与 minigame 两个专题)。
- 真实投放后台数据、真实版号审批结果、真实结算单、真实合同文本(X,需真实业务环境,命令行不可复现,正文每处显式标注)。
- 具体法律意见(合规章只给可核对的规则清单与自查项,不代替律师意见)。
可运行性口径
本卷与前三卷用同一套六档标注,代码块头部注释里写着它属于哪一档:
| 层 | 含义 | 怎么验证 |
|---|---|---|
| S 仿真层 | Python 数值仿真:出价与放量、冷启动期、素材测试矩阵与衰减、归因窗口偏差、瀑布流 eCPM、联运分成与结算周期、现金流、资质倒排、单用户全链路账 | /opt/homebrew/bin/python3 sim/<name>.py --config config/ --out out/,产出 JSON + CSV + SVG |
| P 内核层 | TypeScript 配置驱动逻辑内核:广告位配置下发与校验、订单回调与补单、渠道包差异化配置、结算对账、清单生成器 | node --test 'core/test/o<章号>_*.test.ts'(Node 26 原生跑 TS,零依赖) |
| W 网页层 | 单文件 HTML 原型:联运分成与结算周期计算器(第 9.2 节) | node web/build_o09_calculator.mjs 产出 HTML,再 NODE_PATH=/opt/homebrew/lib/node_modules node web/verify_o09_calculator.mjs web/dist/o09.html 无头验收 |
| D 静态层 | 账户层级、聚合架构、广告位体系、资质清单、合同条款、SOP 模板 | 仅 schema / lint 校验 |
| X 不可复现 | 真实投放后台、真实版号结果、真实结算单、真实合同 | 正文每处显式标注「需真实业务环境,命令行不可复现」 |
| B 基准 | 对账一致性、归因偏差、模型稳定性 | 产出 JSON,软告警不硬失败 |
本卷延续前三卷的两条核心主张:一份 config,三种消费(Python 仿真、TS 内核、浏览器原型读同一份数字,故 config/ 里禁浮点、TS 侧幂运算用 BigInt、除法一律整数地板除);一份逻辑,两种宿主(逻辑只依赖 Host 抽象,mock 宿主与真机宿主逐帧一致,故 core/ 里禁用 Math.random(),随机数一律可播种)。
两条纪律同样适用:不编造平台后台数字——所有真实平台侧数字(后台留存、后台流水、审批时长、结算条款)一律标 X,正文不虚构具体数值;仿真数字只作「同机相对量级」——所有 S 层结果来自本机实跑,只用于比较同一台机器上不同参数配置的相对高低,禁止写成「提升 N 倍」或「必然回本」这类断言。
卷四结构总览(16 章)
| 章 | 主题 | 可运行性层级 |
|---|---|---|
| 1 | 投放后台与账户结构 | D + S |
| 2 | 出价与放量 | S + B |
| 3 | 素材工业化 | D + S |
| 4 | 移动归因 | D + S + X |
| 5 | 广告聚合平台 | D + S |
| 6 | 广告位配置与调优 | P + S |
| 7 | 内购与支付通道 | P + S |
| 8 | 变现合规 | D + P + S |
| 9 | 渠道与联运 | D + S + P + W |
| 10 | 代理发行与商务 | S + D + X |
| 11 | 版号与资质办理 | D + P + X |
| 12 | 结算与财务 | S + B + X |
| 13 | 运营机制与协作 | D + P |
| 14 | 从投放到变现的完整账 | S + B |
| 15 | 案例与失败模式 | D + S + X |
| 16 | 操盘收官 | S + P + B |
全书目录
前置
| 篇目 | 核心内容 |
|---|---|
| 目录 | 本页:定位、七处分工、可运行性口径与全书结构 |
| 附录 E:全书公式、参数与数据集索引 | pebble/ 全部文件索引、o<章号>_ 命名约定与六层复现命令 |
第一部分:投放操盘(第 1–4 章)
第 1 章 投放后台与账户结构——先把「钱花在哪个层级」这件事讲清楚
- 1.1 账户、计划、广告组与创意层级 :投放后台的账户层级与结构(D+P)
- 1.2 出价方式与预算分配 :出价方式与预算分配的可跑模型(S)
- 1.3 冷启动期与学习期 :冷启动期与学习期的仿真与基准(S/B)
第 2 章 出价与放量——本卷的 S + B 主线
- 2.1 oCPM、CPA 与 ROI 出价的选择 :三种出价方式的选择模型(S)
- 2.2 放量节奏与预算爬坡 :放量节奏与预算爬坡(S)
- 2.3 止损线与关停规则 :止损线与关停规则(S/B)
第 3 章 素材工业化——素材设计框架在卷三,这里只做工业化与数据判定
- 3.1 素材生产线与批量产出 :素材生产线与批量产出(D+P)
- 3.2 素材测试矩阵与优胜劣汰 :素材测试矩阵与优胜劣汰(S)
- 3.3 素材衰减与疲劳替换 :素材衰减与疲劳替换(S/B)
第 4 章 移动归因——从点击到安装之间那条看不见的链
- 4.1 归因窗口、点击与展示归因 :归因窗口与点击/展示归因(D+S)
- 4.2 ATT、IDFA 与 SKAdNetwork 链路 :ATT/IDFA/SKAdNetwork 链路(D+P+X)
- 4.3 三方归因与渠道数据对账 :三方归因与渠道数据对账(S/B)
第二部分:变现对接(第 5–8 章)
第 5 章 广告聚合平台——一次接入,多家填充
- 5.1 聚合架构:SDK、适配器与瀑布流 :广告聚合的 SDK/适配器/瀑布流架构(D+P)
- 5.2 穿山甲、优量汇与 AdMob 接入差异 :三大广告网络接入差异(D+P)
- 5.3 瀑布流与竞价配置 :瀑布流与竞价配置(S/B)
第 6 章 广告位配置与调优——把广告位当成一份可下发的配置
- 6.1 广告位 ID 体系与配置下发 :广告位 ID 体系与配置下发(P)
- 6.2 eCPM 分层与流量分组 :eCPM 分层与流量分组(S)
- 6.3 填充率与展示率诊断 :填充率与展示率漏斗诊断(S/B)
第 7 章 内购与支付通道——钱进来的另一条路
- 7.1 平台内购通道与虚拟支付 :平台内购通道与虚拟支付(D+P)
- 7.2 订单、回调与补单 :订单状态机、回调与补单(P)
- 7.3 退款、风控与对账 :退款、风控与对账(S+P)
第 8 章 变现合规——能收钱,也得能过关
- 8.1 广告内容合规与审核 :广告内容合规与审核(D+P)
- 8.2 未成年人广告与防沉迷联动 :未成年人广告与防沉迷联动(D+S)
- 8.3 广告数据与隐私 :广告数据与隐私的工程落点(D+P)
第三部分:渠道、商务与资质(第 9–12 章)
第 9 章 渠道与联运——一条游戏,多条分销
- 9.1 渠道分级与对接清单 :渠道分级与对接清单(D+S)
- 9.2 联运分成与结算周期 :联运分成与结算周期(S+W)
- 9.3 渠道包与差异化配置 :渠道包与差异化配置(P)
第 10 章 代理发行与商务——自己发还是交给别人发
- 10.1 自发行 vs 代理发行的决策 :自发行与代理发行的决策模型(S)
- 10.2 分成谈判的筹码与底线 :分成谈判的筹码与底线(D+S+X)
- 10.3 合同关键条款清单 :合同关键条款清单(D+P+X)
第 11 章 版号与资质办理——上线前绕不过的那道门
- 11.1 版号申请材料与时间线 :版号申请材料与时间线(D+P+X)
- 11.2 出版物号、文网文与软著 :出版物号、文网文与软著(D+P+X)
- 11.3 资质倒排与上线前置 :资质倒排与上线前置(S)
第 12 章 结算与财务——账上的钱和到手的钱
- 12.1 平台分成与结算周期 :平台分成与结算周期(S)
- 12.2 现金流与收入确认 :现金流与收入确认(S/B)
- 12.3 税务、发票与跨境收款 :税务、发票与跨境收款(D+S+X)
第四部分:运营机制、完整账与收官(第 13–16 章)
第 13 章 运营机制与协作——把日常动作固定成节奏
- 13.1 运营 SOP 与例会机制 :运营 SOP 与例会机制(D+P)
- 13.2 客服、社区与舆情的分工边界 :客服、社区与舆情的分工边界(D+P)
- 13.3 团队、外包与远程协作 :团队、外包与远程协作(D+P)
第 14 章 从投放到变现的完整账——本卷的核心
- 14.1 单用户全链路账:CAC → ARPDAU → LTV → 回本 :单用户全链路账(S)
- 14.2 月度经营账与现金流 :月度经营账与现金流(S/B)
- 14.3 止损与再投入决策 :止损与再投入决策(S)
第 15 章 案例与失败模式——把踩过的坑写下来
- 15.1 《合成小岛》投放与变现复盘 :投放与变现复盘(D+S+X)
- 15.2 投放、结算与资质的典型失败 :投放、结算与资质的典型失败(S+X)
- 15.3 关键决策对照表 :关键决策对照表(D+P)
第 16 章 操盘收官——把这一摊子收成一份手册
- 16.1 装配成一份操盘手册 :装配成一份操盘手册(D+P)
- 16.2 全链路对账与仿真验收 :全链路对账与仿真验收(S+P+B)
- 16.3 交付物与卷五衔接 :交付物与卷五衔接(D+S)
附录
| 篇目 | 核心内容 |
|---|---|
| 附录 E:全书公式、参数与数据集索引 | 本卷公式与参数索引、o<章号>_ 命名约定、六层复现命令 |
三条阅读路径
路径 A:投放课(第 1–4 章顺序读)
从投放后台的账户层级开始,经出价方式与预算分配、放量节奏与止损、素材工业化,到移动归因与三方对账。这条路径回答「钱怎么花出去、怎么判断花得值」。读完你能说清一次投放的账户结构、给出一组出价与止损参数,并解释后台数字和归因报表为什么对不上。
路径 B:变现课(第 5–8 章顺序读)
从广告聚合架构开始,经三大广告网络接入差异、广告位配置与 eCPM 分层、内购通道与订单补单,到变现合规。这条路径回答「钱怎么收回来、广告位怎么配」。读完你能画出一张聚合与广告位配置图,并用一段可跑的仿真解释底价与填充率的关系。
路径 C:商务收官课(第 9–16 章顺序读)
从渠道分级与联运分成开始,经代理发行与合同条款、版号与资质、结算与现金流、运营 SOP、全链路账,到失败复盘与操盘手册装配。这条路径回答「渠道、资质、结算怎么落地,账怎么算、怎么收尾」。读完你能拿出一份可执行的操盘手册,并用全链路对账证明它自洽。
常见问题速查
| 你想解决的问题 | 看哪节 |
|---|---|
| 投放后台的账户结构怎么建? | 1.1 |
| 出价方式怎么选、预算怎么分? | 1.2 、2.1 |
| 冷启动期怎么过、多久算学会? | 1.3 |
| 什么时候该放量、什么时候该关停? | 2.2 、2.3 |
| 素材怎么批量产、怎么测、什么时候换? | 3.1 、3.2 、3.3 |
| 归因窗口怎么设、后台和报表为什么对不上? | 4.1 、4.3 |
| iOS 隐私新政之后归因怎么办? | 4.2 |
| 聚合 SDK 怎么接、瀑布流怎么配? | 5.1 、5.3 |
| 三家广告网络接入有什么区别? | 5.2 |
| 广告位怎么配、底价怎么定? | 6.1 、6.2 |
| 填充率 / 展示率掉了怎么查? | 6.3 |
| 内购订单丢了、回调没到怎么办? | 7.2 |
| 退款和风控怎么处理? | 7.3 |
| 广告内容和未成年人合规要注意什么? | 8.1 、8.2 |
| 渠道怎么分级、分成怎么谈? | 9.1 、9.2 |
| 自己发还是找代理发? | 10.1 |
| 合同里哪些条款最关键? | 10.3 |
| 版号、文网文、软著要哪些、要多久? | 11.1 、11.2 |
| 什么时候必须先把资质办下来? | 11.3 |
| 平台什么时候结算、账期多长? | 12.1 、12.2 |
| 税务和跨境收款怎么走? | 12.3 |
| 每天的运营动作怎么固定下来? | 13.1 |
| 一个用户到底赚不赚钱? | 14.1 、14.2 |
| 什么时候该止损、什么时候该加投? | 14.3 |
| 别人是怎么失败的? | 15.1 、15.2 |
| 怎么把这一卷收成一份手册? | 16.1 、16.2 |
卷四工具链命名约定
本卷所有 pebble/ 文件一律用 o<章号>_ 前缀(如 config/o02_bid.json、sim/o02_bid.py、core/src/o02/、core/test/o02_*.test.ts、web/build_o09_calculator.mjs),因为卷一的 ch 前缀、卷二的 e 前缀、卷三的 l 前缀已被占用。这样 node --test 'core/test/o02_*.test.ts' 只会命中本卷第 2 章的测试,不会交叉匹配前三卷的 ch*.test.ts、e*.test.ts 与 l*.test.ts。四卷共用同一套 config/ 约定:禁浮点、整数地板除、随机数可播种,故卷四的投放模型与卷三的收入模型、卷一的市场模型可以放进同一个工作区一起跑。
注意前缀不要写成裸 o*:node --test 接收的是 glob 而非目录,且 economy 等文件名也以 e 开头,故必须写全 o<章号>_*.test.ts(如 o02_*.test.ts)。
完整文件索引、逐层复现命令与排错顺序见附录 E 。
在进入正文之前,先用下面这段 S 层环境自检脚本确认运行时齐备——它同时适用于卷一至卷四,是整套书稿的第一条可运行命令。把它保存为 pebble/sim/ch00_env_check.py 后运行 /opt/homebrew/bin/python3 sim/ch00_env_check.py,会打印解释器路径、numpy / pandas 版本与 Node 版本,任一不满足即非 0 退出。
# file: sim/ch00_env_check.py
# tier: S
# verify: /opt/homebrew/bin/python3 sim/ch00_env_check.py
"""环境自检:确认《小游戏开发实战》三卷需要的运行时都在,并打印 pebble 的能力阶梯。
本机有两个 python3,不要混:
/opt/homebrew/bin/python3 = 3.14.6(带 numpy / pandas / PIL),S 层仿真一律用它;
/usr/bin/python3 = 3.9.6(系统自带,无 numpy/pandas),只能跑最朴素的脚本。
"""
from __future__ import annotations
import os
import shutil
import subprocess
import sys
EXPECT_PY = "/opt/homebrew/bin/python3"
def main() -> int:
ok = True
# /opt/homebrew/bin/python3 是符号链接,比较时解析到真实二进制再判断
real = os.path.realpath(sys.executable)
print(f"python {sys.version.split()[0]} ({real})")
if real != os.path.realpath(EXPECT_PY):
print(f" 注意:正文脚本一律用 {EXPECT_PY},当前解释器不同")
try:
import numpy
import pandas
print(f"numpy {numpy.__version__}")
print(f"pandas {pandas.__version__}")
except ImportError as e: # noqa: BLE001
ok = False
print(f"FAIL 缺依赖:{e}(S 层需要 numpy 与 pandas)")
node = shutil.which("node")
if not node:
ok = False
print("FAIL node 未安装(P 层需要 Node 26 或更高)")
else:
ver = subprocess.run([node, "-v"], capture_output=True, text=True).stdout.strip()
major = int(ver.lstrip("v").split(".")[0])
note = "" if major >= 26 else " (低于 26,原生 TypeScript 不可用)"
print(f"node {ver}{note}")
ok = ok and major >= 26
print("pebble 能力阶梯:S 仿真 / P 内核 / W 网页 / D 静态 / X 不可复现 / B 基准")
print("OK 环境就绪" if ok else "FAIL 环境不满足")
return 0 if ok else 1
if __name__ == "__main__":
raise SystemExit(main())
这段脚本与卷一同源,是整套书稿的第一条可运行命令;卷四的 o<章号>_ 脚本都建立在它验证过的同一套运行时之上。完整文件索引与逐层复现命令见附录 E
。
继续阅读
探索更多技术文章
浏览归档,发现更多关于系统设计、工具链和工程实践的内容。