互联网广告投放引擎架构设计_第1页
互联网广告投放引擎架构设计_第2页
互联网广告投放引擎架构设计_第3页
互联网广告投放引擎架构设计_第4页
互联网广告投放引擎架构设计_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、互联网广告投放引擎架构设计广告业务简介广告系统架构广告引擎优化实践广告链路优化引擎性能优化用户体验优化广告业务简介投放媒体:优酷、土豆、阿里数娱、闲鱼、虾米、UC广告类型:前贴、中插、后贴、暂停、角标、开屏、信息流、播放页banner、常规页面等数十种广告类型,以贴片广告为主。业务规模:日曝光量数十亿。收入构成:以品牌广告为主,效果广告为辅。广告业务特点售卖方式:CPM、CPC、CPD,等,以CPM为主定向方式:用户(地区、人群标签等),内容(视频组、视频时长、频 道、关键字、清晰度等)、客户端(设备类型、操作系统、客户端类型、 版本号等),共数十种定向方式频控方式:整周期N次频控、每M天(小

2、时)N次频控、多屏打通频控其它特点:广告时长、个数限制广告系统架构系统架构说明:uSSP :优酷SSP( Sell-Side Platform,供应方平台)uADX:优酷Ad ExchangeuATM:优酷品牌广告引擎uSmartVideo:优酷效果广告引擎(InnerDSP)uOutterDSPs:对接优酷ADX的外部DSPuClient:客户端,直接发送广告请求或通过其后台服 务间接发送广告请求uCDN: 内容分发网络,视频正片和广告素材的存储 服务SSPADXATMSmartVideoOutter DSPs47ClientCDN185656AdPlatform23109ATM系统架构Co

3、unterDispatcherStoreCacherSynerATMDBATMLOGDBUserCacheAdSearcherAdCacheAdServerCenter广告引擎优化实践 视频广告常见问题问题描述:广告加载太慢,播放窗口小圆圈一直转 优化思路:u 修条新路 - 广告链路优化u 老路提速 - 引擎性能优化广告链路优化- 广告加载流程分析问题诊断:u 广告加载分两阶段:一、向广 告系统请求广告代码,二、根 据代码中的URL从CDN加载广 告素材u 加载广告素材加载耗时过长, 导致用户跳出或跳转播放页比 例高ClientSSPCDN1234广告链路优化 广告缓存推荐原理基本原理:uuu

4、通过缓存推荐服务ADP提前下载广告素材到本地将用户在线观看过的广告素材也缓存到本地播广告时先查本地缓存,未命中时才从CDN加载优化前后链路对比:uuuu无缓存推荐:1-2-5-6缓存推荐命中:1-2-3-4缓存推荐未命中:1-2-3-4-5-6新增一条独立的缓存推荐链路:1-2-3-4SSPCDN12563ADP124LocalCacheAPP43Client广告链路优化 ADP的缓存推荐接口ClientADPip : 202.109.13.121,os_type : Android, cached_ad: 101,103,105,.to_download_ad:123,246, to_del

5、ete_ad:101,105,.广告链路优化 - 缓存推荐相关规则广告推荐模式:基于定向条件粗筛+算法预判模式广告推荐时机:APP启动完成后本地缓存大小:考虑机器硬件差异广告缓存推荐 - 广告加载速度的提升效果如下图:每条曲线对应一个APP版本在某个时间范围内(x轴)完成广告素材加载的比例(y轴),左图为 iPhoneApp端,右图为AndroidApp端。iOS端1秒内完成广告加载的比例提升约35倍。广告缓存推荐 贴片曝光率提升效果优化效果:iOS端,优化后的版本(V5.5.1和V5.5.2)比优化前的版本(V5.5)曝光 率提升明显,其中V5.5.2比V5.5提升约3.75% 。广告缓存推

6、荐 踩过的“坑”Q:Android使用了缓存推荐,为嘛有时广告的损耗反而增加了?A:原因:Android端文件下载失败几率相对iOS高,客户端尝试播放错 误的缓存文件会增大损耗比例。解决办法:下载完后添加文件完整性校 验功能。广告链路优化 - 广告异步加载问题描述:某些APP上开屏广告加载的耗时过长 优化思路:改变“出行”模式 使用异步加载模式,颠倒广告请求和展现 的顺序,先展现本地缓存的广告,再请求广告和下载广告素材广告链路优化 - 广告异步加载流程广告加载链路(红色):u 广告展现:1-2u 异步请求:3-4-5-6独立的广告缓存推荐链路(绿 色):1-2-3-4SSPCDN34651AD

7、P1234LocalCacheAPP2Client广告异步加载 遇到的“坑”及解决办法Q:如何避免广告投放初期缓存命中率低导 致曝光量过低A:提前设置广告排期,提前返回N(常数) 天后投放的广告,供客户端提前缓存,同时 再结合缓存推荐机制,增大预缓存比例。Q:如何将已缓存到客户端的广告素材的及 时下线A:基于推送服务实时通知或提高缓存推荐 接口的调用频率Q:如何解决CPM售卖时的超量 投放问题A:提前分配每日预缓存比例, 要为投放当天预留适当比例,投放当天再做实时精准控量,且前后两次重复推送时,需将剩余量 计数器中扣掉的量加回来引擎性能优化 优化前广告检索服务各模块耗时x轴:时间(单位:分钟)

8、,y轴:广告接口RT(单位:ms),每条曲线为一个处理模块的耗时曲线引擎性能优化 异步写优化优化思路:u异步埋点(buryingNode)u异步写cookie(writeLunboCookie)u异步写日志(writeLog)优化效果:广告请求接口内部耗时相比优化前降低 23.8%ProcessNode1ProcessNode2ProcessNodenEndburyingNode1buryingNode2writeLunboCookiewriteLog.StartBuryingNodenAdSearcher threadAsynchronous threads.引擎性能优化 - 延迟读优化优化

9、思路:对性能影响较大,且不 是每次请求都需要的属 性,可以延迟到需要使 用时再读(右图示例:Redis中的人群标签等)优化效果:广告请求接口内部耗时 相比优化前降低12.3%从请求头中获取请求参数从Redis中获取用户标签返回广告代码End开始根据请求参数和用户标签筛选 出广告列表从请求头中获取请求参数从Redis中获取用户标签根据用户标签进一步筛选广告列表返回广告代码Y开始根据请求参数筛选出广告列表存在人群定向广告EndN引擎性能优化 - 索引结构优化优化思路:树形索引结构改为倒排索 优化效果:u索引创建耗时降低到之前 的1%u广告检索耗时降低到之前 的15%以内u索引数据占用内存大小降 低

10、到之前1%以内K21K22K23K26K27K24K25A2,A5A1,A2,A3A1,A4,A5K11K12A7A4,A5,A6A7,A8,A9K1NA3,A8,A9A0A1A2A3A4A5A6A7A8A9110111100011001101101001011101K3K3K3Key引擎性能优化 阶段性优化实践效果注:X轴:时间轴,y轴:ATM广告接口99%分位的RT(单位:ms)用户体验优化问题描述:u 用户吐槽:广告太长、太多u 客户要求:广告投放量有明确要求, 不允许少投。优化目标:在不减少广告绝对投放量的前提下, 让用户“少看”广告,提升用户体验。用户体验优化 广告时长和个数控制简单

11、粗暴的控制方法:建立“视频时长(分钟) 最大广告 时长(秒) 最大广告个数”间的映射关 系,根据映射关系控制广告时长和个数。映射原则:u 长视频长广告u 短视频短广告u 超短视频无广告中国 + 移动APP中国大陆 + PC。视频时长最大广告时长最大广告个数1,5)1615,10)32210,30)4831,3)1613,10)32210,20)483。视频资源30,+)64420,+)644视频时长最大广告时长最大广告个数视频时长最大广告时长最大广告个数注:下图仅为示例,非真实线上规则用户体验优化 时长与个数控制效果优化效果:杜绝了网友经常吐槽的“一 个才X分钟的短视频上竟然出了Y秒钟的长的广

12、告”的现象。遗留问题:前一个贴位容量未充分使用,便开始大量使用后个一贴位的容量,导致出现多贴广告比例 过高。78/13072/12060/100第前90/150第前 第三前 第四前 示例:假设广告容量为1000CPM,预定曝光量 为600CPM时,各贴容量的使用量(蓝色)如下用户体验优化 广告贴位前移方法:u 以小时为单位,按流量曲线分配 任务,小时内每分钟平均分配。u 新任务分配给第一帖,上一分钟 未完成的任务分配给第二贴, 上(N-1)分钟未完成的任务分 配给第N贴。u N分钟前未完成的任务,留待剩 余的小时分配。Task(t+2)Task(t+1)Task(t)AdSearcherAdS

13、erverTask(t+3)Distributed Cache2 找第一前帖 32 找第二前帖3找第三前帖2314用户体验优化 广告贴位前移效果优化效果:u 靠前的贴位使用率显 著增长著降低u 用户看到多贴广告的 比例显著降低72/12060/1000/1005020/120第三贴第四贴第一贴90/150第一贴150/1u 靠后的贴位使用率显第二贴78/130第二贴130/130第三贴第四贴优化前各贴位使用率优化后各贴位使用率示例:假设广告容量为1000CPM,预定曝光量为600CPM时,各贴容量的使用量(蓝色)如下用户体验优化 贴位前移方法遗留的问题长视频容量未充分利用时,便开始使用短视频容

14、量。300/500180/30072/12048/8030,+)10,30)5,10)1,5)用户体验优化 资源分级优化目标:u 将广告尽可能向长视频和靠前的贴位倾斜u 能根据广告投放任务的紧张程度自动扩大或缩小使用的资源范围 方法:u 视频资源分级(level)u 为广告设置资源使用范围(range)u 新增adRangeFilter处理模块,动态调节广告的资源使用范围。用户体验优化 视频资源分级资源级别视频时长广告位130,+)第一前贴210,30)第一前贴35,10)第一前贴430,+)第二前贴530,+)第三前贴610,30)第二前贴730,+)第四前贴85,10)第二前贴910,30

15、)第三前贴101,5)第一前贴分级原则:u根据用户的广告容忍度高低对视频资 源分级,容忍度越高,级别越小。u视频越长,级别越小u贴位越靠前,级别越小注:右图为10级分级表示例(仅用于原 理解释,非线上真实情况)用户体验优化 资源分级优化原理resLevel=getResLevel(vLen,adPos)adRange = getAdRange(aid)reduceDeliverCount(aid)adRange = resLevelEndStartAdRangeTaskDCTaskResourceLevelTaskresLevel123.aidadRangeA11A210A38.aiddcA1

16、100A2250A3300.adRangeFilterresourceLevel vLenadPos30,+)P110,30)P25,10)P3.TimedTaskYremove(aid)NrangeMapdcMapadRangeFilter: 实时控制广 告的资源使用范围ResourceLevelTask:定时 同步资源级别AdRangeTask:定时调整广 告range值DCTask:定时分配新广告投 放任务用户体验优化- 资源分级优化rangeMap更新规则:u 若前N(指定常数)个连续周期的任 务未完成,则range+u 若前N个连续周期的任务均完成,则 rangeu 1 = rang

17、e =MAX_RANGE(指定 常数)A2:0A3:0A4: 900A1 : 3A2 : 3A3 : 1A4 : 10rangeMapA1: 350A1:160A2:0A3:0A4:906A1 : 4A2 : 2A3 : 1A4 : 10rangeMapA1:15A2:0A3:0A4:897A1:5A2:1A3:1A4:10rangeMap示例:当N=1,MAX_RANGE=10时 t0t0+ Tt0+ 2T dcMapdcMapdcMap资源分级优化 效果优化效果:实现了广告向长视频和靠前的 贴位资源倾斜的目标效果示例:如右图(仍旧以从1000CPM中 分出600CPM使用量为例)资源级别视频时长广告位容量使用率趋势130,+) 1.00+0.4210,30) 1.00+0.435,10) 1.00+0.4430,+) 1.00+0.4530,+) 1.00+0.4610,30) 0.1-0.5730,+) 0-0.685,10) 0-0.6910,30) 0-0.6101,5) 0-0.6资源使用优化 优化效果

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论