LU-AS模块

总的模块架构:

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模块:

•set_para()
•内文流量逻辑
•数据拷贝build()
•过滤词语filter_all()
•对特征词进行扩展:expand_all_kw()
•获取词的核心词:get_kernel_word()
•计算第一次ctr:get_s1pctr()
•获取多方cpm:get_multi_mid_cpm()
•预估cpm:predict_cpm()
•排序:rank()
•个数控制和筛选:select_kw()
•补余:append()
•乱序:shuffle()
•页面去重:put_dup_in_page()

5.style_preselect_mod模块:
6.recognize_mod模块: recognize userdemand and express by lu internal keywords
7.recommend_mod模块:

通过上游传递的用户及站点特征生成一系列内部使用的前链词,分为以下几个步骤:

(1)  根据特征簇生成关键词;

(2)  对关键词进行业务逻辑、媒体保护、隐私等过滤;

(3)  从关键词中选择内容词(一期由于原生流量不会走新流程,因此此功能可忽略);

(4)  对关键词进行扩展;

(5)  对未过滤的关键词进行第一次ctr预估;

(6) 增加粗选
8.dsp_mod模块:

本模块进行psdsp与BA的通信,涉及到请求数据封装;rpc访问;返回数据处理;本模块通信使用异步方式,发出rpc请求后继续往下处理module;

请求BA时需要将同一个buyer service的外部dsp请求打包到一起发给BA(这个逻辑adx也有,但是由adx进行打包,并将信息传递给Lu,对于内部接口有冲击,所以由lu-as处理);

BA与psdsp的推荐词的数据填充一样,由BA来控制词的哪些信息可以发送给外部dsp

9.midcpm_mod模块:负责内部各导流方的出价,为每个关键词在各种样式下计算个导流方的acp和ctr,进一步得算每个关键字的cpm

10.internal_auction_mod模块:对前链词进行竞价;包含内部词的auciton以及内外部词的auction;最终确定每个词的去向

11.internal_select_mod模块:对所有前链词进行配图,根据配图结果以及cpm排序来选择词数;如果词数不够,补充热门词(热门词需要进行内部导流的pk,这与目前逻辑一致);之后对词进行shuffle

12.final_auction_mod模块:通过select后的词的cpm计算广告块的整体cpm;这里需要涉及到cpm的各种矫正(外部dsp竞价成功的词不需要矫正);为了支持样式池功能,本module还需要根据各样式下的整体cpm选择最终样式

13.response_mod模块:主要是将KeywordRecommedModule中保存的推词结果的成员变量封装到proto::LuAsResponse结构。

你可能感兴趣的:(LU-AS模块)