工程与管理量化广告系统交易

广告计费四视角 → 交易盈亏四视角:CPM / CPC / OCPC / OCPX 的同构映射

广告计费模型经历了四次进化:CPM → CPC → OCPC → OCPX。每一次进化,都是把更多的决策权从人交给模型。

交易系统的盈亏拆解完全同构——同样的四级演进,同样的逻辑。


四视角总览

视角广告:优化什么交易:优化什么核心变化
CPM展示级计费信号级拆解按量计价,不管效果
CPC点击级计费交易级拆解按效果计价,人定出价
OCPC模型动态调价模型动态调仓模型预估转化率,自动调出价/仓位
OCPX深度目标优化组合目标优化优化深层目标(LTV/Sharpe),而非表层指标

视角一:CPM — 按展示计费 vs 按信号计价

广告:3 种 CPM 拆法

① 消费 = PV × CPM₁
② 消费 = PV × PVR × CPM₃
③ 消费 = PV × PVR × ASN × CPM₂

越拆越细:流量(PV) → 展示率(PVR) → 广告位数(ASN)。消费下降时,能定位是流量跌了、展示率低了、还是广告位变少了。

交易:3 种信号级拆法

① PnL = Capital × Return
② PnL = Signals × E[PnL_per_signal]
③ PnL = Signals × TriggerRate × E[PnL_per_trade]

同构映射:机会(Signals) → 触发率(TriggerRate) → 单笔期望。亏钱时定位:是机会变少了、触发率低了、还是单笔期望恶化了。

CPM 视角的映射

广告交易本质
PV(流量)Signals(信号数)系统看到多少机会
PVR(展示率)TriggerRate(触发率)机会转化为动作的比例
ASN(广告位数)PositionSize(仓位)每次动作的规模
CPM(千次展示成本)E[PnL_per_signal](单信号期望)每单位流量的价值

CPM 视角的局限:只看量,不看质。广告不知道展示带来了多少点击和转化,交易不知道信号带来了多少胜率和盈亏比。


视角二:CPC — 按点击计费 vs 按交易计价

广告:3 种 CPC 拆法

④ 消费 = PV × CTR₁ × ACP
⑤ 消费 = PV × PVR × CTR₃ × ACP
⑥ 消费 = PV × PVR × ASN × CTR₂ × ACP

引入了点击率(CTR)和点击均价(ACP),开始按效果付费。

交易:3 种交易级拆法

④ PnL = Signals × TriggerRate × PositionSize × E[Return_per_unit]
⑤ PnL = Signals × TriggerRate × PositionSize × (WinRate × AvgWin% - LossRate × AvgLoss%)
⑥ NetPnL = GrossPnL - Trades × (Commission + Slippage + Spread)

引入了胜率(WinRate)和盈亏比(AvgWin/AvgLoss),开始按交易质量拆解。

CPC 视角的映射

广告交易本质
CTR(点击率)WinRate(胜率)动作转化为正结果的比例
ACP(点击均价)AvgWin - AvgLoss(盈亏差)每次正结果的价值
无效点击/退费Commission + Slippage摩擦成本

CPC 视角的进步:知道了”效果”,可以诊断问题在哪一层。

检查广告交易
转化率下降CTR 下降 → 创意/匹配问题WinRate 下降 → 策略失效
单价异常ACP 飙升 → 竞争加剧AvgLoss 放大 → 止损太晚
成本侵蚀无效点击占比高手续费+滑点吃掉利润

CPC 视角的局限:出价是人定的。广告主凭经验出 2 块钱一个点击,交易者凭感觉开 10% 仓位——都是拍脑袋。


视角三:OCPC — 模型调价 vs 模型调仓

OCPC 是广告系统的一次质变:出价不再由人定,而是由模型根据预估转化率动态调整

广告:OCPC 的核心公式

Bid = base_bid × (pCVR / targetCVR)
  • pCVR:模型预估的转化率(这个用户点击后购买的概率)
  • targetCVR:广告主的目标转化率
  • 转化概率高的流量,系统自动加价抢
  • 转化概率低的流量,系统自动降价或不竞价

本质:用模型的预估能力替代人的出价判断。广告主只需设定 CPA 目标(每个转化愿意花多少钱),系统自动分配预算到高价值流量。

交易:模型驱动的动态仓位

PositionSize = basePS × f(pWinRate, pEdge)
  • pWinRate:模型预估的胜率(当前市场状态下这笔交易盈利的概率)
  • pEdge:模型预估的边际(预期盈亏比)
  • 高胜率+高边际的信号,自动加仓
  • 低胜率或低边际的信号,自动减仓或跳过

OCPC 视角的映射

广告 OCPC交易 OCPC本质
pCVR(预估转化率)pWinRate(预估胜率)模型对”这次动作能否成功”的预判
targetCVR(目标转化率)targetWinRate(目标胜率)系统运行的基准线
动态出价动态仓位模型替代人做规模决策
CPA 约束(每转化成本)单笔最大亏损约束风控红线
两阶段:先 CPC 积累数据 → 再 OCPC 自动调价两阶段:先固定仓位积累数据 → 再模型驱动调仓冷启动一样需要人工介入

关键相似点:两阶段启动

OCPC 不是从第一天就能用。广告系统要求先跑 CPC 积累转化数据,模型学到足够的 pCVR 信号后才切换到 OCPC。

交易系统一样:先用固定仓位跑够样本量,模型学到市场状态→胜率的映射后,才能可靠地做动态仓位管理。

过早切换 = 模型在噪音上拟合 = 亏钱。


视角四:OCPX — 深度目标优化 vs 组合目标优化

OCPX 是广告系统的又一次进化:不再优化表层指标(点击、转化),而是优化深层业务目标(付费、留存、LTV)

广告:OCPX 优化什么

OCPC:优化转化数(注册、下载)
OCPX:优化深度转化(首次付费、7日留存、LTV)
  • 一个用户注册了但从不付费 → OCPC 算成功,OCPX 不算
  • 一个用户 LTV 很高 → OCPX 给这类用户更高出价
  • 目标从”有多少人来”变成”来的人值多少钱”

OCPX 的核心变化:优化目标从单次事件变成了用户生命周期价值

交易:组合级目标优化

CPC 视角:优化单笔 PnL
OCPC 视角:优化单笔仓位分配
OCPX 视角:优化组合级目标(Sharpe、Calmar、最大回撤)
  • 一笔交易赚了 5% 但让组合回撤了 15% → 单笔看是好交易,组合看是坏交易
  • Sharpe 2.0 但最大回撤 40% → 收益好但风险不可接受
  • 目标从”这笔赚不赚”变成”整个组合健不健康”

OCPX 视角的映射

广告 OCPX交易 OCPX本质
LTV(用户生命周期价值)组合长期收益从单次到全局的价值衡量
7 日留存 / 付费率Sharpe / Calmar Ratio质量指标,不只是数量指标
多目标联合优化多策略组合优化子目标之间有取舍
归因窗口(7天/30天)评估周期(月度/季度)看得越远,优化越难
模型需要深度转化数据模型需要足够长的交易历史数据稀疏是核心挑战

OCPX 的核心难题:延迟反馈

广告系统的痛点:用户今天点了广告,30 天后才付费。模型怎么学?

交易系统一样:策略今天开仓,可能持仓 2 周后才平仓。在这 2 周里,你不知道这笔交易的最终结果。

解法也类似:

广告交易
预估 LTV 模型(不等真实数据,用预估值训练)预估 PnL 模型(用 MAE/MFE 路径预估最终收益)
分层归因(付费、留存分别建模)分层评估(胜率、盈亏比、回撤分别建模)
增量实验(A/B test 衡量增量 LTV)控制实验(Shadow Mode 对比策略增量贡献)

四视角的演进脉络

CPM  → 按量计价     → 信号级拆解     → "有多少机会"
CPC  → 按效果计价   → 交易级拆解     → "效果怎么样"
OCPC → 模型动态调价 → 模型动态调仓   → "模型替人决策"
OCPX → 深度目标优化 → 组合目标优化   → "优化全局目标"

每一级进化的本质:把更多的决策权从人交给模型,把优化目标从局部推向全局

这就是量化指标体系的底层逻辑——不是看单个数字好不好,而是要清楚你在优化哪一级的目标。


一句话总结

广告系统从 CPM 进化到 OCPX,是把计费粒度从”展示”推进到”用户生命周期价值”。交易系统的同构演进,是把盈亏粒度从”信号”推进到”组合健康度”。同一条路,同一个方向:让模型替代人做越来越深层的决策。