总的模块架构:
static const char*MODULES[] = {
"request_check_mod",
"expfw_mod",
"request_adapter_mod",
"keyword_recommend_mod",
"style_preselect_mod",
"recognize_mod",
"recommend_mod",
"dsp_mod",
"midcpm_mod",
"internal_auction_mod",
"internal_select_mod",
"final_auction_mod",
"response_mod"
};
1.request_check_mod模块:处理ui发送来的请求,设置实验环境。fill_req_into_env函数
2.expfw_mod模块:触发实验环境
3.request_adapter_mod模块:ct,qt,hct这些特征词是通过请求参数携带的,需要一个适配转换模块将请求中的参数解析存储
4.keyword_recommend_mod模块:
通过上游传递的用户及站点特征生成一系列内部使用的前链词,分为以下几个步骤:
(1) 根据特征簇生成关键词;
(2) 对关键词进行业务逻辑、媒体保护、隐私等过滤;
(3) 从关键词中选择内容词(一期由于原生流量不会走新流程,因此此功能可忽略);
(4) 对关键词进行扩展;
(5) 对未过滤的关键词进行第一次ctr预估;
(6) 增加粗选本模块进行psdsp与BA的通信,涉及到请求数据封装;rpc访问;返回数据处理;本模块通信使用异步方式,发出rpc请求后继续往下处理module;
请求BA时需要将同一个buyer service的外部dsp请求打包到一起发给BA(这个逻辑adx也有,但是由adx进行打包,并将信息传递给Lu,对于内部接口有冲击,所以由lu-as处理);
BA与psdsp的推荐词的数据填充一样,由BA来控制词的哪些信息可以发送给外部dsp