大咖直播-鸿蒙原生开发与智能提效实战!>>> 了解详情
写点什么

前亚马逊工程师:广告系统架构解密

  • 2020-11-30
  • 本文字数:3152 字

    阅读完需:约 10 分钟

前亚马逊工程师:广告系统架构解密

一、无处不在的广告


广告的形式分为线上和线下模式。


线上广告以互联网的高速发展作为媒介,在 pc 端和移动端有着多种多样的发展模式:



线下广告以传统方式,以公交站牌、门头、交通等媒介的发展模式。


在当今社会的发展趋势下,线上广告占的比重越来越大。


二、什么是广告



广告的基本组成单位:广告主、媒介、受众。


广告的基础概念:流量。对于互联网来讲,如何更好地引流、吸引更多的群体,和如何精准地向特定人群推送广告主的广告,是互联网广告的关键。


三、互联网广告的发展趋势



  • 互联网广告的行业规模越来越大;

  • 移动端的快速发展,给人们带来了更多的方便,广告产业比重越来越多;

  • 广告模式越来越多;

  • 互联网广告依托互联网媒介的发展,在各类平台广告的比重,有着正相关的影响。


好的互联网产品更够带来更多的广告推广和盈利模式。


四、互联网广告的本质



以 CPC(按照点击计费)为例,收入可分解成下面这个公式:



其中,PV 表示系统的访问量,PVR 和 ASN 表示广告的填充率,CTR 表示广告的点击率,ACP 表示广告的平均点击价格。


上述各个指标都可以通过一系列的广告策略来提升。比如填充率可通过开发更多的广告主来实现,CTR 可通过 AI 算法做到精准投放来提升,ACP 可通过精准流量溢价或者提升广告主 ROI 来完成。


掌握上面这个收入分解公式,对于理解广告业务至关重要,任何业务上的动作几乎都能关联到这个公式的某个指标上。


五、互联网的结算方式



广告业务发展了几十年,广告费用的结算方式也诞生了很多种,我们最常见的有以下几种:


  • CPT: 按时间计费,独占性包时段包位置

  • CPM: 按照每千次曝光计费

  • CPC: 按照点击计费

  • CPA: 按照行为计费(比如下载、注册等)


不同的广告平台适合自己的结算方式:


如以信息流为主的 cpm,搜索软件为主的 cpc 等,根据广告推广的直接效果,而进行的结算模式变革。


六、互联网广告的初始形态



自己引流,开发广告主,具有一定的局限性,只依靠自己的流量,不具有受众的广泛性和多样性,开发广告主的过程中具有一定的限制。


七、后期广告的发展



广告的核心就是流量,联盟广告的出现,确保在受众的多样性和广告平台的多样性,具有更高的曝光率和广告模式的收益。为此此项广告模式,也就要求平台具有多样的资源整合能力,对平台技术的稳定性要求也越来越高。


八、电商广告




对互联网平台来说,初期一般都是采用「 自营的竞价广告网络 」来实现商业变现,简单理解:就是利用平台自有的流量以及自主开发的广告主来实现业务闭环。本文所分享的广告架构主要针对这种业务形态,它的核心业务流程如上图所示。


  • 广告主先通过投放平台发布广告,可设置一系列的定向条件,比如投放城市、投放时间段、人群标签、出价等。

  • 投放动作完成后,广告会被存放到广告库、同时进入索引库,以便能被广告检索引擎召回。

  • C 端请求过来后,广告引擎会完成召回、算法策略、竞价排序等一系列的逻辑,最终筛选出 Top N 个广告,实现广告的千人千面。

  • 用户点击广告后,会触发广告扣费流程,这时候平台才算真正获得收益。


上面是广告业务的核心流程,随着平台流量以及广告主规模进一步增大,往往会从「自营型竞价网络」逐渐向「联盟广告以及 RTB 实时竞价」方向发展,类似于阿里妈妈、腾讯广点通、头条巨量引擎,此时业务复杂度和技术架构会再上一个台阶,本文不作展开,后续再跟大家详细分享。


随着电商模式的发展,B2C、C2C 等模式的开展,卖家和买家都在疯狂的增长,电商平台也为此带来的更多的便利性。对于电商,由于买家和买家的准确性,电商广告具有一定的精准性,广告收益比相对较高,效果更好。好的广告排名往往带来更多的效益,对于电商平台而言,也带来的更多的挑战,平台的维护成本和大数据的处理优化。


九、电商广告面临的技术挑战



由于广告主->平台->受众,平台在为广告主和受众提供更好的服务和用户体验性,同时在追求更好的广告效果,需要各个系统之间的系统运转,保证整个平台的流畅性。


广告平台技术挑战


对广告业务有了初步了解后,再来看下广告系统面临的技术挑战:


1、高并发 :广告引擎和 C 端流量对接,请求量大(平峰往往有上万 QPS),要求实时响应,必须在几十毫秒内返回结果。


2、业务逻辑复杂 :一次广告请求,涉及到多路召回、算法模型打分、竞价排序等复杂的业务流程,策略多,执行链路长。


3、稳定性要求高 :广告系统直接跟收入挂钩,广告引擎以及计费平台等核心系统的稳定性要求很高,可用性至少要做到 3 个 9。


4、大数据存储和计算 :随业务发展,推广数量以及扣费订单数量很容易达到千万甚至上亿规模,另外收入报表的聚合维度多,单报表可能达到百亿级别的记录数。


5、账务的准确性 :广告扣费属于金融性质的操作,需要做到不丢失、不重复,否则会损害某一方的利益。另外,如果收入数据不准确,还可能影响到业务决策。


下面着重介绍平台设计的几个关键点:


广告检索平台的性能设计



计费平台的方案


计费平台也是一个核心系统,主要完成实时扣费功能。比如 CPC 结算方式下,广告主设置的预算是 50 元,每次点击扣 1 元,当扣费金额达到预算时,需要将广告及时下线。


除此之外,计费平台还需要支持 CPM、CPT 等多种结算方式,以及支持反作弊、余额撞线处理、扣费订单的摊销和对账等功能。


计费平台的特点是: 并发高、数据量大、同时可用性要求高,需要做到不少扣,不重复扣。 下面以 CPC 实时点击扣费为例,详细说下技术方案。



CPC 实时扣费流程


首先,整个扣费流程做了异步化处理,当收到实时扣费请求后,系统先将扣费时用到的信息缓存到 Redis,然后发送 MQ 消息,这两步完成后扣费动作就算结束了。


这样做的好处是:能确保扣费接口的性能,同时利用 MQ 的可靠性投递和重试机制确保整个扣费流程的最终一致性。


为了提高可用性,针对 Redis 和 MQ 不可用的情况均采用了降级方案。Redis 不可用时,切换到 TiKV 进行持久化;MQ 投递失败时,改成线程池异步处理。


另外,每次有效点击都需要生成 1 条扣费订单,面临大数据量的存储问题。目前我们采用的是 MySQL 分库分表,后期会考虑使用 HBase 等分布式存储。另外,订单和账务系统之间的数据一致性,采用大数据平台做天级别的增量抽取,通过 Hive 任务完成对账和监控。



OLAP 海量数据报表方案


数据报表是也是广告平台的核心业务,它是广告主、平台运营人员进行投放优化、业务决策的依据。先来看下广告数据仓库的分层结构:


  • 源数据层 :对应各种源数据,包括 HDFS 中实时采集的前后端日志,增量或者全量同步的 MySQL 业务数据表。

  • 数据仓库层 :包含维度表和事实表,通常是对源数据进行清洗后的数据宽表,比如行为日志表、推广宽表、用户宽表等。

  • 数据集市层 :对数据进行轻粒度的汇总表,比如广告效果表、用户行为的全链路表、用户群分析表等。

  • 数据应用层 :上层应用场景直接使用的数据表,包括多维分析生成的各种收入报表、Spark 任务产出的算法模型特征和画像数据等。


采用这样的分层结构,和软件分层思想类似,提高了数据的维护性和复用性。


再来看应用层报表部分面临的挑战:聚合维度多,需要分时、分广告位、分推广等几十个维度;单表最大达到百亿级别;支持时间范围的实时查询。


这部分由公司的大数据部门维护,采用了开源的技术方案,离线部分使用 Kylin,数据存储在 HBase 中;实时部分使用 Flink 和 Spark Streaming,数据存储在 Druid 中。




  • 对于平台而讲,在确定需求后,首先需要明确自己的发展模式,更具模式,确定系统,从而明确各个系统的功能、协同性、以及各个系统的压力点。进行倒推,确定平台系统的架构和技术方案。

  • 好的系统架构,需要以系统的可用性为基础,进行系统升级和拓展。

  • 对于互联网广告业务来讲:好的产品往往带来革命性的变革,这个社会缺乏沉淀和创意。优秀的产品思路决定着广告行业的风向。

  • 小问题:百度为何衰落的呢?是电商的冲击还是微信的崛起呢?


作者介绍


骆俊武,前亚马逊工程师,现 58 转转技术总监


本文转载自公众号技术琐话(ID:TheoryPractice)。


原文链接


前亚马逊工程师:广告系统架构解密


2020-11-30 14:058997

评论 1 条评论

发布
用户头像
清晰明了,挺不错的
2020-11-30 20:49
回复
没有更多了
发现更多内容

还在靠人工死磕转化?天润融通Agent客服助力私域转化效率翻倍

天润融通

从零开始学MCP(6) | MCP 与大型语言模型(LLM)深度集成

测吧(北京)科技有限公司

炎酷全域旅游景区导览系统详细介绍

微擎应用市场

AWS Builder Center:开发者社区新家园,一站式技术资源与协作平台

qife122

云计算 AWS

大模型工具的 “京东答案”

京东零售技术

小间距LED屏报价,有“标准答案”吗?

Dylan

品牌 LED LED display LED显示屏 LED屏幕

Playwright进阶篇 (5) | 网络请求拦截与Mock

测吧(北京)科技有限公司

手把手带你用 OxyGent 实现智能体的构建、部署与进化

京东零售技术

国密认证!星环科技Transwarp ArgoDB通过商用密码产品认证

星环科技

实验室管理系统(源码+文档+讲解+演示)

深圳亥时科技

报告解读 | 永续引擎持续加速,谁在叩响建筑科技的 “未来之门”

极客天地

跨境卖家如何与 TikTok 达人合作?这四种方式最有效

Wolink

海外社媒营销 海外营销推广 达人营销

TEM on 腾讯云 Step by step 丝滑体验

TiDB 社区干货传送门

TEM 试用

智慧健康管理系统:依托微擎生态,开启智慧健康新时代

微擎应用市场

Step by Step 平凯数据库敏捷模式部署

TiDB 社区干货传送门

敏捷模式

KWDB 分布式架构探究——数据分布与特性

KaiwuDB

数据库 分布式架构 KWDB开源数据库

精彩回顾 | 全链路可观测落地能源行业,博睿数据首度公开实战细节!

博睿数据

TapData vs Kafka ETL Pipeline:竞争?共存?——企业实时数据策略的正确打开方式

tapdata

kafka v Kafka vs TapData 实时数据,数据同步

大白君的奇思妙想:与 AI “辩经”,在质疑中探索 AI 能力的边界

盈米AI开放平台

AI Model-Mutator 人工智能 aiinfra

浅谈故障复盘

天翼云开发者社区

安全 安全加速

用通义灵码渐进式开发 0->1 实现高考志愿规划项目题文档

阿里巴巴云原生

阿里云 云原生 通义灵码

用通义灵码渐进式开发 0->1 实现高考志愿规划项目题文档

阿里云云效

阿里云 通义灵码

从数据到决策:赋能汽车行业的指标体系与AI应用实战方案

袋鼠云数栈

AI 数据 企业数字化转型 指标 汽车行业

邀请函 I 金秋九月,邀您共赴矩阵起源产品发布会

MatrixOrigin

技术文档 | Pulsar 中的消息保留、过期及积压机制解析(下)

AscentStream

数智先锋 | 从 “故障难寻” 到 “全链可控”,Bonree ONE 跨越式提升中国铁塔业务监测效能

博睿数据

绝了!分享一个超赞的UI框架!

王磊

荣耀正式加入移动智能终端生态联盟!

荣耀开发者服务平台

荣耀开发者服务平台 荣耀HONOR 金标联盟

谷歌重新定位 Gemini AI :超越对话,让 AI贯穿系统且主动;Nexa AI 发布 NPU x 端侧 AI 方案丨日报

声网

基于微擎系统的扫码签到 | 会议签到系统:全流程智能会务解决方案

微擎应用市场

深度解析:腾讯 BiFang 如何借助 Apache Pulsar 引领湖流一体新潮流

AscentStream

前亚马逊工程师:广告系统架构解密_移动_骆俊武_InfoQ精选文章