把广告业务抽象成大模型可理解的本体语义层,原料通常有三样:指标体系、数仓数据、业务规则。前两样有现成形态——指标目录和物理表,难的是第三样:业务规则是最隐性的知识,散在产品文档、投放后台和老人的脑子里。
我的做法是先给规则做”总目录”:六个域 × 四种类型,分完型,每条规则的本体落点就自动出来了。
总纲:六域 × 四型
事实规则 约束规则 计算规则 运行时规则
(是什么) (不允许什么) (怎么算) (引擎执行参数)
A 交易计费 计费模式 底价过滤 win_price 账期/返点
B 竞价分配 瀑布流结构 优先级/黑名单 eCPM 折算 超时/pacing
C 出价成本 学习期状态 成本容忍度 oCPX 出价式 预算曲线
D 归因反作弊 归因关系 窗口值域 归因优先级 排重/回传
E 指标口径 事件类型 对账容忍度 全部指标公式 T+1 切分
F 合规信任 授权链路 黑名单/准入 —— 审核流
↓ ↓ ↓ ↓
类+关系 公理→DQC MetricDef 策略配置+拓扑绑定
一句话:**事实进图、约束进公理、计算进 MetricDef、运行时进策略配置。**规则清单,就是本体需求清单。
下面六个域各展开几条有代表性的规则。
A. 交易与计费(钱怎么算)
- 计费模式规则:CPM/CPC/CPA/CPT;oCPM/oCPC = 按曝光/点击计费但按转化优化——计费事件与优化目标是分离的两个东西,这条最容易被混淆。本体里:计费模式做枚举类挂 Campaign,计费与优化的分离关系要显式建。
- 一价/二价计价:二价(GSP)按第二高价结算;行业已整体转向一价。关键认知:win_price ≠ bid——排序看出价、结算看成交价,两套价。收入指标必须用 win_price。
- 底价规则:开底/闭底、瀑布流分层底价梯度、动态底价。本体落点:底价是 SlotLevel 属性;闭底不进向量化索引——给 LLM 的元数据要做可见性控制,这是语义层特有的治理问题。
- 双边记账:平台计费日志 vs 第三方监测(秒针/AdMaster)两套账,计费以谁为准、差异怎么补——口径冲突的典型现场,落成对账关系+差异容忍度公理。
- 扣量与退款:IVT 无效流量不计费;
计费收入 − IVT − 退款 − 返点是一条收入扣减链,应该进 MetricDef 的派生关系,而不是散落在几十条 SQL 里。
B. 竞价与流量分配(流量给谁)
- eCPM 统一折算:
eCPM = bid × pCTR (× pCVR) × 1000,是不同计费模式报价可比化的桥梁。pCTR/pCVR 是预测值属性,与实测值严格区分(见 E 域)。 - 瀑布流:按历史 eCPM 排序串行请求,前一层无填充或超时才请求下一层。注意:瀑布流是有序关系,层序是图结构不是列表——本体建模时最容易丢的就是”顺序”语义。
- In-App Bidding:全渠道并发请求、统一竞价(预算 200ms),最高 eCPM 胜出;“Bidding 优先于瀑布兜底”是优先级公理。
- 超时规则:SDK 总预算 2s、平台竞价预算 200ms;超时 = 无填充(不是无请求)——fill rate 分母含超时请求。
- 优先级序:PDB/PD > PMP > OA > 兜底,是一条全序约束;PMP 的 Deal 关系(媒体↔广告主授权)是图的关键边。
- 保量规则(PDB):承诺量 ≤ 历史供给 × 安全系数——基数公理的经典例子,入图前校验。
- 频控与黑名单:频控参数是策略配置;黑名单落成 disjoint 类(负向关系)。
C. 出价与成本控制(花得多稳)
- oCPX 出价:出价 = 目标转化成本 × pCVR;学习期→稳定期是实例状态演化,本体要有版本/时间戳来承载。
- 学习期:转化量过阈值(行业经验约 20 个/周)才过学习期;学习期数据是否进报表,本身是口径规则。
- 预算与 pacing:日预算按分小时曲线平滑消耗;预算曲线是策略配置对象,消耗预测与预测系统天然缝合。
- 成本约束:实际成本超目标×(1+容忍度)自动降量——容忍度是约束规则,自动暂停是运行时规则。
D. 归因与反作弊(算谁的功)
- 归因窗口:行业默认点击 7 天/曝光 1 天,窗口值域用公理约束;换窗口 = 口径变更,历史数据要重述。
- 归因优先级:默认 Last Click;同一次转化在一种口径下有且仅有一条主归因边——基数公理。
- 设备识别:device ID 体系(IMEI/OAID/IDFA/CAID)+ 缺失降级 + 跨设备 OneID;OneID 本质是实体对齐的键推理。
- 反作弊:GIVT(规则可判)/SIVT(需模型);GIVT 可直接编译成数据质量规则,SIVT 分值是概率属性——概率值≠事实值。
- 回传与去重:归因结果 S2S 回传;幂等键防重复回传。
E. 数据与指标口径(本体岗最核心的一域)
- 事件口径:请求/曝光/点击各有三套账——平台计费口径、第三方监测口径、客户端口径;可视化曝光(MRC:≥50% 像素、展示≥1s/视频≥2s)≠ 计费曝光。落法:事件类型类层级 + 口径变体(
Impression下分BillingImpression/ViewableImpression)——同名不同义的标准解法。 - 分母规则:fill rate 的分母是总请求还是有效请求?CTR 的分子是有效点击、分母是计费曝光?每个比率指标必须显式声明分子/分母,结构化字段,不是一句注释。
- 预测值/实测值分离:pCTR/pCVR(预测)、SIVT 分值(概率)、实测事件——不同性质的数据不能混在同一指标里。
- 时间口径:请求时间/曝光时间/计费时间;分钟级实时大盘与 T+1 财务对账双口径并存,每个事件属性都要说清”哪个时钟”。
- 收入与对账:总收入 = 计费收入 − IVT − 退款 − 返点;平台账 vs 监测账差异容忍度(如 ±5%),超限进对账流程——双边一致性校验。
F. 合规与信任(能不能做)
- 广告内容规则:行业准入(医疗/金融资质)落成类约束——无资质的投放关系不允许存在;审核是状态机。
- 隐私规则:个保法/GDPR 同意管理;“无同意不采集”这类法律约束编译成数据质量规则,是本体治理的高光点。
- 流量信任:ads.txt / Sellers.json / SupplyChain object——授权链是图上可推理的供应链路径,
supplyUpstreamOf传递公理,“验证 sellers.json”本质上是一次图遍历。 - 品牌安全:内容分类屏蔽 = 负向定向(disjoint 的运营版)。
规则 → 本体构件映射总表
| 规则类型 | 本体构件 | 工程形态 |
|---|---|---|
| 事实规则 | 类 + 关系(层级/包含/顺序/授权链) | 图的节点边 |
| 约束规则 | 公理(hasKey/基数/disjoint/值域/传递) | 编译成数据质量规则:入图前校验 + 入图后巡检 |
| 计算规则 | MetricDef(分子/分母/去重键/过滤/派生链) | 指标目录 + SQL 模板,逻辑一份物理多份 |
| 运行时规则 | 策略配置对象(超时/pacing/频控/容忍度)+ 拓扑绑定 | 配置表,版本化,变更走影响闭包 |
三条设计原则
- 规则要”分型落位”,不能一锅炖——把 pacing 写成公理、或把口径写成注释,都是本体烂尾的起点;
- 约束型规则的终点是数据质量规则——公理不是装饰,可执行才值钱;
- 计算型规则的终点是 MetricDef——口径是指标定义的一部分,不是报表的脚注。
这套目录我用来回答一个问题:当有人说”把业务规则沉淀到语义层”时,沉淀的到底是哪些东西、落在哪些构件上。答案是:六域的规则,四种落位,一个都不少。