## 资源
### stg
- sid 351

180.184.61.244:18085/store/match?uid=ODYzNGY4NDRkZGM0Y2YxOTkyNWM3NGJmNDNjOTVmOGQyZWUwMjJkMWQ1NTQ2ZjFmNjhlODY1NDYxYzJlZTA3Mw==&sid=351&lan=zh&nt=&dis=1080x2546&original=&db=Samsung&dt=SM-F7310&dos=33&gps=&keywords=&apps=&force=1&timestamp=1702349726596&vc=4.5.65.1&oaid=a92be8cba2318be7c2024b69cea41daf9f335407f26a23e7e9257bdbcddc2ca1&rec=1&os_bit=64&ip=39.144.103.187&debug=1&imei=cchhxmeenn

活动ID：37870

### prd
- sid 1221

## TODO
- avro 加 zzy 返回的 ecpm
- match log 到 kafka

## 疑问
- 排序，二价？

## 流程
- 旧预测里，摘出ocpx的活动
- 独立ocpx模块
- ocpx提供 cvr 以及价格

## 代码数据
- avro 
 - 增加 cvr 和 ocpxstage
 - dealPrice strategyPrice 注意这两个字段
- 价格计算
 - 赋值到 ppt->m_deal_price
 - zzy 返回的 ecpm /ctr /cvr
 - zzy ctr cvr 异常时
- 排序系数
 - zzy 返回的 ecpm 

## 代码规划
- 目前只有1家ocpx预测
- 只有走zzy预测的广告位，且包含ocpx的活动，才会走ocpx预测
  - DISTRIBUTE_TO_YOUYI_RELATED
  - DISTRIBUTE_TO_YOUYI
  - DISTRIBUTE_TO_YOUYI_CPC
  - DISTRIBUTE_TO_ZHIZIYUN_KEYWORDS 
  - DISTRIBUTE_TO_RECOMMEND
## 旧代码作用
- 预测后，数据都扔给了 MatchContext 的三个成员:
 - mCtrSource mAdPosCtrClass mCtrData

### mCtrSource
 `记录走 外部预测通道 的广告位，以及走 鹏泰自己预测通道 的广告位`
- MatchContext::getCtrSource() 匹配广告时，分类匹配
- MatchContext::getCtrSource(int posID) 不被使用，可删掉
- MatchContext::getAdPos(int source) 匹配时的分类

### mAdPosCtrClass
 `广告位获取到的预测模型ID，避免ID超出规定的友商ID范围，这个模型ID做了适当修正`
- MatchContext::getCtrClass(int adPosid) 不被使用，可删掉
- 从代码分析，这个数据无作用。
- 实际需要这个功能，数据放到了 ppt (publish_parameter_t) 里
- 参与功能：广告位分组，排序、筛选时的特殊处理，
- 一般 ctr class 为 CTR_CLASS_ZHIZIYUN_KEYWORDS 时，需要特殊处理。

### mCtrData
- 活动的ctr值，排序时用
