互联网广告平台系统架构设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
@独孤大虾方兵
调度中心从监测缓存服务器读取广告投放计数,计算下一投 放周期应投放的量后写入投放缓存服务器
计算周期在配置文件中设置,可以根据需要调整 ADDispatchEngine负责从各数据源读取数据并调用各相应
的计算器 ADDispatchCalculator为抽象类,根据不同投放方式(包
@独孤大虾方兵
@独孤大虾方兵
权限管理模块采用可扩展开放设计 需要进行权限管理的模块提供
BusinessObjectProvider,实现统一的 IProvideBusinessObject接口 权限管理模块根据配置文件读取相应组件的接口从 而获得受托管权限点
@独孤大虾方兵
@独孤大虾方兵
Leabharlann Baidu
@独孤大虾方兵
采用独立的、组件化的日志模块设计 Log Filter根据配置文件的规则对日志进行过滤 Trace Source根据配置文件的规则对日志进行分类
处理 根据不同的分类采用不同的Trace Listener进行存
储处理,写入数据库、发邮件等等 Log Formatters用于对日志信息进行格式化,以提
@独孤大虾方兵
@独孤大虾方兵
@独孤大虾方兵
ETL服务定期从各个数据库中收集数据,进行清洗 后写入数据仓库
ETL数据来源包括但不限于
◦ 业务数据 ◦ 投放数据 ◦ Cookie数据 ◦ 监测数据
性能特点
定时自动运行 运算复杂 数据量大
@独孤大虾方兵
@独孤大虾方兵
@独孤大虾方兵
流量、快速消耗、平均消耗、平滑消耗)开发不同的计算器 这里的设计采用策略模式 ADDispatchEngine使用依赖注入模式加载所需计算器 ADScheduleDBAccesser为独立的数据库访问适配器,以
适应将来扩展及升级更新数据库的需要 性能特点:
◦ 自动定时计算,处理算法复杂 ◦ 内存数据量较小
投放引擎根据请求的广告位选择合适的投放策略 通过过滤管线对待投广告进行过滤 通过排序器选择最有价值的广告 投放引擎定时从投放缓存中读取投放计划信息,读取间
隔可根据需要配置 系统中保存多个管道配置,每个广告位对应一个配置 每个配置定义多个过滤器及排序器
@独孤大虾方兵
投放策略包括但不限于:
◦ 按视频时长投放 ◦ 按用户观看时长投放
过滤器包括但不限于:
◦ 排除过滤(竞品排除,重复广告排除) ◦ 广告时长过滤 ◦ 定向条件过滤 ◦ 投放优先级过滤 ◦ 售卖方式过滤 ◦ 频次优化过滤 ◦ 排序过滤
用于排序的匹配度计算器包括但不限于:
◦ 定向条件匹配度计算(地域定向、类别定向、节目定向等) ◦ 广告主等级 ◦ 收益计算 ◦ 紧急程度计算
ADMonitor从广告引擎及广告客户端接收监测数据 请求,然后批量写入ADMonitorCache
ADMonitor由多台服务器构成 ADMonitorCache定期批量将监测数据写入数据库,
并提供正在执行的广告投放的计数信息 性能特点:
◦ 大量请求,但处理算法简单 ◦ 内存数据量大
Engine中未储存的活动不频繁的Cookie Cookie Cache定时批量向数据库写入已发生更改的
Cookie CookieDBAccesser为独立的数据库访问适配器,以适
应将来扩展及升级更新数据库的需要 性能特点:
◦ 大量请求,但处理算法简单 ◦ 内存数据量大
@独孤大虾方兵
@独孤大虾方兵
2012.5 @独孤大虾方兵
@独孤大虾方兵
@独孤大虾方兵
@独孤大虾方兵
@独孤大虾方兵
整个广告系统在物理上由多台服务器组成的群集构 成
客户端(网页、播放器和客户端)通过Proxy访问 广告投放前端机
◦ 提高广告投放前端安全性 ◦ 减少服务器客户端往返 ◦ 解决广告屏蔽问题
对于访问较频繁的服务,采用缓存结构
高可读性,不同的分类和不同的存储处理方式可使 用不同的Formatter 使用依赖注入方式加载以上不同组件
@独孤大虾方兵
@独孤大虾方兵
@独孤大虾方兵
BI模块由多个部分组成:
◦ 数据监测 ◦ ETL ◦ BI分析 ◦ 报表展示 ◦ Excel插件
@独孤大虾方兵
@独孤大虾方兵
@独孤大虾方兵
@独孤大虾方兵
@独孤大虾方兵
@独孤大虾方兵
播放器向Proxy发送请求,Proxy分别请求视频信息和 广告信息后打包返回
TemplateSerializer负责根据不同的语言(例如html、 xml等)将返回的信息与模板进行合并并序列化
Proxy承担的职能为信息的转发和打包转发并保护提供 复杂应用的服务器的安全
返回,因此数据客户端可以是播放器统一的数据客 户端,客户端广告引擎访问其接口即可 广告引擎对接收到的数据进行解析
@独孤大虾方兵
@独孤大虾方兵
@独孤大虾方兵
客户端广告引擎根据配置文件及返回的广告信息使 用PresenterLoader和ViewLoader加载相应的展示 器和视图(皮肤)
BIEngine定时从数据仓库中读取数据并进行分析, 生成相应报表,将报表结果写入报表数据库
ADReport负责从报表数据库中读取报表结果进行 展示,并提供Excel插件的API接口
用户使用报表有三种方式:
◦ 使用Web界面查看已预生成的报表 ◦ 使用Excel插件进行自助数据分析 ◦ 通过广告产品部进行Case by Case的数据分析
BusinessDatabase 采用工作流引擎控制有关涉及审批等的业务流程 采用独立可扩展的权限管理和日志管理模块
@独孤大虾方兵
@独孤大虾方兵
@独孤大虾方兵
可采用JAVA开源工作流引擎,或自己开发简单的工 作流引擎
采用装饰器模式建立业务对象与工作流项之间的关 系
@独孤大虾方兵
户端向服务器上报监测数据
@独孤大虾方兵
@独孤大虾方兵
◦ Cookie服务 ◦ 广告投放 ◦ 广告监测
@独孤大虾方兵
@独孤大虾方兵
@独孤大虾方兵
广告引擎
◦ Cookie Server ◦ 广告调度 ◦ 投放引擎
业务管理
◦ 业务模块 ◦ 工作流 ◦ 权限管理 ◦ 操作日志
商业智能
◦ 监测采集 ◦ ETL ◦ 报表及数据分析
广告播放前端
@独孤大虾方兵
过滤器及排序器实现统一接口 使用依赖注入加载策略引擎、过滤器及排序器 采用策略模式根据广告位选择应使用的处理管线 性能特点:
◦ 大量请求,处理算法逻辑复杂 ◦ 内存数据量小
@独孤大虾方兵
@独孤大虾方兵
@独孤大虾方兵
@独孤大虾方兵
采用传统MVC模式设计 投放数据写入ADDeliveryDatabase 业务数据(客户、合同、主计划等)写入
不同的广告形式有不同的展示器和视图(皮肤), 即不同的行为和不同的视觉效果
展示器负责广告的行为 视图(皮肤)负责广告的视觉效果 开发新广告形式只需要开发新的展示器和视图(皮
肤)并更新配置文件即可
@独孤大虾方兵
@独孤大虾方兵
@独孤大虾方兵
不同广告形式有不同的监测数据上报规则和频率 由各广告形式对应的展示器负责调用统一的监测客
@独孤大虾方兵
@独孤大虾方兵
@独孤大虾方兵
广告客户端由以下部分组成
◦ 广告请求 ◦ 广告展示 ◦ 监测发送
各组件采用依赖注入方式加载
@独孤大虾方兵
@独孤大虾方兵
@独孤大虾方兵
广告请求由客户端广告引擎调用数据客户端访问服 务器完成
数据客户端负责建立信道发送请求并接收返回数据 本系统由Proxy服务器将视频信息和广告信息打包
◦ 广告展示 ◦ 监测数据发送
@独孤大虾方兵
@独孤大虾方兵
@独孤大虾方兵
@独孤大虾方兵
@独孤大虾方兵
采用Memcache缓存技术 Cookie Engine由多台服务器构成,按照一定的规则分
别储存一定时间内(例如最近一天活动)的Cookie Cookie Cache负责与数据库交互并缓存Cookie