巨量本地推广告平台(https://localads.chengzijianzhan.cn) 是抖音本地生活商家进行广告投放的需求方平台,包括开户、抖音号授权、创编、审核、推广管理、数据披露、消息通知等多个复杂模块。截至2024年4月底,平台上线抖音来客、PC、抖音三端,日均消耗1855万,累计消耗63亿。
1)独立负责广告视频、门店、商品、广告计划、广告创意、广告组等列表视图和管理能力,投后数据的披露与下载能力。此模块为广告主操作的必要功能,随着业务量的上涨也带了很多的技术挑战,让我对业务发展的技术规划能力有较大提升,以下技术难点的攻克让我获得了部门的问题解决之星奖项。
技术难点1:接入影响计划状态计算的触发源,通过设立单独集群、错误兜底、积压报警和容灾切换机制保证健壮性;将计划状态的实时计算切换为预计算,并通过整理es冗余字段,并行调用下游等方式,优化计划列表拉取的p99(723ms -> 192ms)。
技术难点2:将视频id存储方式从redis存储 -> redis缓存+es存储(接口p99 1.2s)-> bcache缓存+mongodb存储(接口p99 600ms);使用两个date作分片键切换,全量数据天级别按35k qps导入,增量数据实时双写入,支持视频量级4.5亿。
技术难点3:多门店计划在打包侧下发离用户最近门店时,提供40w qps接口服务,采用两级本地缓存+分布式缓存+异步修改+预缓存的设计,同时下沉经纬度过滤逻辑到接口中,将接口延时控制在20ms内。
技术难点4:列表视图存在接口慢和数据库慢查询等问题,通过优化查询语句,包括指定字段、分批并行、联合索引、覆盖索引等方式解决业务问题。
技术难点5:创建计划和创意双写表时,通过监听处理binlog方式,解决了接口调用超时但写入成功带来的数据不一致问题。
技术难点6:针对投后数据查询的通用性,参与千策sdk的开发与接入,统一查询接口,实现了对不同数据集查询的模块拆分与组装,提高研发效率50%。
2)负责本地推自动化托管能力的建设,包括平台全模块、全链路的改造,母/子计划、管家项目组等新概念的引入,与策略团队的配合交互,投放状态与抖音号授权、落地页变更、托管素材库的关系映射。此项目对我来说是一个较大挑战,让我的项目管理能力有较大提升,项目上线后,广告投放决策可由广告主转移到平台,既节省了广告主时间,也让平台消耗增加了70万/天。
3)独立负责本地推的站内信能力建设,支持30余种(账户余额、合同资质、赠款退款、资产状态等)消息通知;收敛了所有消息的入口,并通过flink前置过滤和udf将qps减少98%(1.7w->350);此模块提供了平台与广告主的实时触达能力,让广告主更实时获取投放反馈。
4)针对广告投放的素材,搭建了元素粒度的管理、供给和交易平台,用AIGC增加素材供给;并打通元素的投放数据链路,用数据反哺生产,提高AIGC生成质量。包括:i、主导元素库的上线,完成视频贴片、数字人、背景图等10余种元素接入,业务上支持即创平台(https://aic.oceanengine.com),投放上接入推荐生成侧和派生侧,并为运营提供元素管理平台,自助化其元素管理能力。技术难点:通过
imageX,tos等对象存储对不同元素实体存储;接入检索服务,通过异构方式将多个数据来源打平成宽表,解决多表检索时内存溢出等性能问题。ii、打通元素和素材的关联关系,通过元素唯一标识将投放数据按元素粒度拆分,目前已打通数字人、音乐的数据链路。iii、独立完成元素撮合市场项目的设计及开发,赋予元素商品和交易的属性,在即创平台上接入纵横/方舟账户体系进行营利模式验证。