广告系统代码阅读笔记

链路1:终端mq ---> starrocks(大数据)-->mq-->过计费服务(生成revenue信息)-->mq-->落starrocks
链路2:终端mq  ---> holo(我们自己处理(无revenue信息))

//

AdPaymentBillingService计费服务: 
消息队列offset位置,和计费的mysql余额等表做成事务保证消息不丢失,不重复的话id打到对应实例去,内存去重和redis去重

//

AdFastLinkService服务:
定时任务定时从mysql表拉数据写入缓存
接口:
1、通过country从缓存获取所有快链广告信息
2、for循环 decode出素材
3、生成clickid(里面带adid等信息,上报后可以归因)
4、缓存中存一份short clickid 到 long clickid的映射
5、通过clickid和素材的clickurl生成深度事件url
6、返回处理好的下发素材和深度事件url等

AdBrandIndex服务:
通过country、scene、revenuetype召回n个,4个入参,数据在一个syncMap中。有个定时任务,从mysql表拉取品牌且非快链数据后,再通过开始结束时间过滤单子,按country、scene、revenuetype生成索引后放入syncMap中,有排序逻辑,按品牌广告开始时间顺序排,这是它初始化做的,然后监听事件:定时事件到时同步,版本号被更新时同步。

AdBrandProcesser服务:
有个接口,支持快链的批量上单和下线:如果是上单,校验账户和钱包,正常后插入(初始状态为unfrozen和enable),若是关闭订单就disable,如果是上单就插入到一个mysql表中t_ad_brand_order_item这张表,是专门做冻结相关的事情

一、冻结定时任务
拉取所有账户的所有未冻结/冻结失败/冻结失败因为账户预算/冻结中的单子,冻结成功的不冻了,冻结中的也是,拉取账户可用余额,开始冻结,如果不行,就挑几个小的单子冻结,完了更新状态。

二、扣冻结费、解冻定时任务
定时拉closed的ad进行解冻,投放时间未到的都能进行解冻,再看之前是不是冻结状态,是就解冻;定时拉deliverying的ad进行扣费,先看看扣费没有(生成到今天为止的所有扣费记录和实际已经扣费的记录做比较),因为cpt是每天扣一次,调用AdPaymentBillingService扣费。

三、定时更新品牌广告状态到订单表
payment的冻结分为 : 冻结未知/冻结失败/冻结中/冻结成功,获取订单在payment的状态,用它更新ad的状态。

//
AdBoolIndex服务:

构建过程:
1、通过原子变量保证只有一个构建任务在执行
2、mysql拉取投放中的ad
3、两层索引构建

ad1,ad2,ad3,ad4定向条件为a and b, c and d and e, a and b ,f
构建conjunction,把定向条件完全相同的作为一个conjunction_id,如conjunction1对应ad1和ad3,conjunction2对应ad2,conjunction的size为属于的个数(不属于不算),当一个用户信息来时,如果用户只有2个标签,那么size=3的广告都不会被返回,
size       条件          属于的conjunctionid
1           hh=2           1
2           xx=3           2
             hh=2           3
3           hh=2           4,5
	         xx=3           4,5,6    
             tt=4             4
             yy=7           4,5,6
             
直接从第一级的布尔索引去拉取数据(用match函数),获取conjunctionid,再从第二层索引去取具体的ad数组,第一次全量构建,增量构建:定时时间到了或者版本号更新了都会触发。如果用户是两个特征,k=2看能命中哪些(感觉就是多个满足的取交集),k=1看能命中哪些,然后一起返回对应的ad。

///

AdRecallProxy服务: todo

AdRankProxy服务:todo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yo_fake_jay

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值