本文为课程笔记,课程地址:计算广告学
参考资料:《计算广告 互联网商业变现的市场与技术》
广告的目的与效果
广告的定义 广告是由已确定的出资人通过各种媒介进行的有关产品(商品、服务和观点)的,通常是有偿的、有组织的、综合的、劝服的非人员的信息传播活动
广告的主体 出资人(sponsor)即广告主(advertiser),媒介(medium),受众(audience)
广告的本质功能 是借助某种有广泛受众的媒介的力量,完成较低成本的用户接触(reach)(相对于人员接触成本更低)
品牌广告 创造独特良好的品牌或产品形象,目的在于提升较长时期内的离线转化率
效果广告 有短期内明确用户转化行为诉求的广告。用户转化行为例如:购买(电商)、注册、投票(大选)、捐款等
广告的有效性模型
- 曝光阶段:流量的性质决定了广告效果的上限
- 关注阶段:用户的当前行为和广告的性质不能冲突(根据上下文来投广告);让用户觉得广告推送的合理;满足用户的需求,提升效果
- 理解阶段:让用户能够明白广告在说什么(不玩游戏的人看到游戏广告无法理解);什么样的媒体什么样的理解门槛(广告创意的复杂程度和用户关注的时间关系)
- 信息接受阶段:广告位认可度(大型网站广告看似更可信,低质量流量看似不可信)
- 保持:品牌广告关注艺术性,可能对于点击率相反,因此更适合品牌广告
- 购买:怎么设置价格的区间?用户人群划分(对价格敏感、对价格不敏感)
在广告的有效性模型中,前面阶段对点击率影响更大,后面阶段对于转化率影响更大。
一些广告策略的效果
阶段反向的效果不一定对于最终的优化目标有负面作用
广告与营销的区别
广告
- 目的:通过媒介传播某种企业形象或产品信息
- 效果:某种特定人群的有效到达(reach),多渠道综合的ROI
- 目标:潜在用户
销售
- 目的:提升产品销量,从而提高企业收益
- 效果:收入和利润
- 目标:有较明确需求者
不同渠道的广告/销售特质: 硬广、SEM、导航网站、淘宝直通车、返利网
精准广告不等于营销或CRM,也不仅仅是“把你的客户卖给你”或“把竞争对手的客户卖给你”(应该回归广告的本质)。
在线广告的特点
技术和计算导向
- 数字媒体的特点使在线广告可以进行精细的受众定向
- 技术使得广告决策和交易朝着计算驱动的方向发展
可衡量性
- 广告的点击是效果的直接收集途径
- 从98年到今天,Banner广告的点击率从10%降至0.1,是广告的效果下降了两个数量级吗?(点击不只是效果的直接衡量)
标准化
- 技术投放和精准定向促进了在线广告的标准化
“媒体概念”的差异化
在线广告市场
借用网上的图,广告市场主要指需求方(Demand)、供给方(Supply)
在线广告市场结构示意
-
ADX(AD Exchange,广告交易平台), 聚合各媒体的剩余流量并采用实时竞价方式为他们变现的产品形态
-
ADN(AD Network,广告网络),理解为媒体的代理商, 批量地运营媒体的广告位资源,按照人群或上下文标签售卖给需求方,并用竞价的方式决定流量分配
-
事实上,如果我们把 ADN 的交易方式想象成场外交易市场(over-the-counter market),那么 ADX 与股票交易所确实有着类似的作用
-
DSP(Demand Side Platform,需求方平台): 是一个系统,也是一种在线广告平台,汇集了各种广告交易平台的库存; 通过实时竞价的方式,按照定制化的人群标签购买广告
-
SSP(Supply Side Platform,供给方平台):为媒体选择收益最大的广告,代表媒体利益
-
ATD:(Automatic Trading Desk, 自动交易终端):面向多个广告网络或媒体按人群一站式采买广告,并优化投入产出比的需求方产品(非实时)
-
需求方(Demand): 包括广告主(advertiser)、代表广告主利益的代理商(agency)、其它技术形态的采买方
计算广告核心问题和挑战
计算广告核心挑战需要转化为数学上可以优化的目标才能利用计算技术来解决。把它用下面的最优化问题来表达:
其中i代表从第1次到第T次之间的某一次广告展示。优化的目标就是在这T次展示上的总收入(r)与总成本(q)的差,即广告活动的利润。当某次广告活动的预算一定,即 是一个常数时,很容易验证优化公式 与优化另一个广告中更常见的目标投入产出比,即 也是一致的。
进一步考虑收入与成本具体依赖的因素,上面的优化问题可以写成
表达式中的 a、u、c 三个变量,分别代表广告、用户与环境,即广告活动的三个参与主体,显然,广告展示的收入或成本与这三个因素都有关系。
从优化的角度来看
- 特征提取:受众定向
- 微观预测:CTR预测
- 宏观优化:竞价市场机制
- 受限优化:在线分配
- 强化学习:探索与利用
- 个性化重定向:推荐技术
从系统角度来看:
- 候选查询:实时索引
- 特征存储:No-sql技术
- 离线学习:Hadoop
- 在线学习:流计算
- 交易市场:实时竞价
在线广告计算的主要挑战
-
大规模
- 百万量级的页面,十亿量级的用户,需要被分析处理
- 高并发在线投放系统(例:Rightmedia每天处理百亿次广告交易)
- Latency的严格要求(例:ad exchange要求竞价在100ms内返回)
-
动态性
- 用户的关注和购物兴趣非常快速变化
-
丰富的查询信息
- 需要把用户和上下文中多样的信号一起用于检索广告候选
-
探索与发现
- 用户反馈数据局限于在以往投放中出现的(a, u, c)组合,需要主动探索未观察的领域,以提高模型的准确性
广告、搜索与推荐的比较
| 搜索 | 搜索广告 | 显示广告 | 推荐 | |
|---|---|---|---|---|
| 首要准则 | 相关性(relevence) | ROI | ROI | 用户兴趣 |
| 其他需求 | 各垂直领域独立定义 | 质量、安全性(safety) | 质量、安全性(safety | 多样性(diversity)、新鲜度(freshness) |
| 索引规模 | 十亿级 | 百万级--千万级 | 百万级 | 百万级--亿级 |
| 个性化 | 较少的个性需求 | 较少的个性需求 | 亿级用户规模上的个性化 | 亿级用户规模上的个性化 |
| 检索信号 | 较为集中 | 较为集中 | 较为丰富 | 较为丰富 |
| downstream优化 | 不适用 | 不适用 | 不适用 | 适用 |
互联网上展示广告创意的产品形式称为展示广告(display advertising),也叫显示广告
推荐和广告比较大的区别是:推荐进行的是同质化的推荐,比如在买商品的时候推荐商品,在看新闻的时候推荐其它新闻。推荐还有优化流(downstream)的概念,比如用户在看新闻时,会根据推荐跳到另一个新闻页面,而在这个新闻页面上可以继续推荐,优化流是指优化整个根据推荐看新闻过程的点击率。而对于广告来讲,推荐出的广告点击后,就跳到目标页面了,就不可能有优化downstream的机会了。
投资回报(ROI)分析
在线广告系统的ROI
投入(investment):#X x CPX
产出(return): 其中u为点击率,和广告、用户、环境相关;v为点击价值,和广告、用户相关。
不同的分解对应不同的市场形态
- CPM市场:固定eCPM(对媒体有利,无风险;品牌广告会使用,不好考核效果)
- CPC市场:动态CTR,固定click value(广告网络来估计CTR)
- CPA/CPS/ROI市场:动态CTR与click value(点击率如果估计?点击机制如何估计?对广告系统来说用风险,广告主存在作弊行为;广告主存在骗展示,贵东西没人买)
在线广告系统结构
广告投放引擎
-
广告投放机(ad server)。这是接受广告前端 Web 服务器发来的请求,完成广告投放决策并返回最后页面片段的主逻辑。广告投放机的主要任务是与其他各个功能模块打交道,并将它们串联起来完成在线广告投放决策。一般来说,为了扩展性的考虑,我们都采用类搜索的投放机架构,即先通过倒排索引从大量的广告候选中得到少量符合条件的或相关的候选,再在这个小的候选集上应用复杂而精确的排序方法找到综合收益最高的若干个广告。对广告投放机来说,最重要的指标是每秒查询数(Query per Second,QPS)以及广告决策的延迟(latency)。
-
广告检索(ad retrieval)。这部分的主要功能在线时根据用户标签(user attributes)与页面标签(page attributes)从广告索引(ad index)中查找符合条件的广告候选。实际 上,倒排索引技术的重要性体现在所有 Web 规模的技术挑战上,也同样是大规模计算广告系统的基础。广告检索得到的候选将被送入广告排序模块。
-
广告排序(ad ranking)。这部分是在线高效地计算广告的 eCPM,并进行排序的模块。eCPM 的计算主要依赖于点击率估计,这需要用到离线计算得到的 CTR 模型和特征(CTR Model&Features),有时还会用到流计算得到的实时点击率特征(real-time features)。在需要估计点击价值的广告产品(如按效果结算的 DSP)中,还需要一个点击价值估计的模型。
-
收益管理(yield management)。我们用这部分来统一代表在各种广告系统中将局部广告排序的结果进一步调整,以全局收益最优为目的做调整的功能,如 GD 系统中的在线分配、DSP 中的出价策略等。这部分一般都需要用到离线计算好的某种分配计划来完成在线时的决策。
-
广告请求接口。实际系统中,根据前端接口形式的不同,广告请求可能来自于基于 HTTP 的 Web 服务器,也可能来自于移动 App 内的 SDK,或者其他类型的 API 接口。不论哪种接口,只要能够提供用户唯一的身份标识 ID 以及其他一些上下文信息,从逻辑上讲与标准的 HTTP 请求就没有本质区别,因此我们都用 Web 服务器来表示。程序化交易市场中的广告请求接口与上面有所不同,它包括作为需求方时使用的RTBS以及作为供给方时使用的 RTBD。这一接口可以采用 IAB 建议的 OpenRTB 协议或者其他主要 ADX 规定的接口形式。
-
定制化用户划分(customized audience segmentation)。由于广告是媒体替广告主完成用户接触,那么有时需要根据广告主的逻辑来划分用户群,这部分也是具有鲜明广告特色的模块。这个部分指的是从广告主处收集用户信息的产品接口,而收集到的数据如果需要较复杂的加工,也将经过数据高速公路导入受众定向模块来完成。
数据高速公路
- 数据高速公路完成的功能是将在线投放的数据准实时传输到离线分布式计算平台与流计算平台上,供后续处理和建模使用,它非常类似于人体的循环系统。由于在进行受众定向建模时需要用到广告系统以外的其他用户产品日志或者第三方提供的数据,因此,数据高速公路也担负着收集这些数据源的任务。
离线数据处理
计算广告最具挑战的算法问题大多都集中在离线数据处理的部分。离线数据处理有两个输出目标:一是统计日志得到报表、dashboard 等,供决策人进行决策时作为参考;二 是利用数据挖掘、机器学习技术进行受众定向、点击率预估、分配策略规划等,为在线的机器决策提供支持。为了对大规模数据进行分布式的处理加工,我们一般会选用Hadoop这样的分布式存储和 MapReduce 计算框架。离线数据处理有下面几个主要模块。
-
用户会话日志生成。从各个渠道收集的日志需要先整理成以用户 ID 为键的统一存储格式,这样的日志称为用户会话日志(session log)。这样整理的目的是为了让后续的受众定向过程更加简单高效。
-
行为定向(behaviorial targeting)。这部分功能完成挖掘用户日志,根据日志中的行为给用户打上结构化标签库(structural label base)中的某些标签,并将结果存储在用户标签的在线缓存中,供广告投放机使用。这部分是计算广告的原材料加工厂,也因此在整个系统中具有非常关键的地位。
-
上下文定向(contextual targeting)。这部分包括半在线页面抓取(near-Line page Fetcher)和上下文页面标签的缓存,与行为定向互相配合,负责给上下文页面打上标签,用于在线的广告投放中。这里的抓取系统比搜索系统要简单,但也有不太一样的需求。
-
点击率建模(click modeling)。它的功能是在分布式计算平台上训练得到点击率的模型参数和相应特征(click model&features),加载到缓存中供线上投放系统决策时使用。
-
分配规划(planning)。这部分为在线的收益管理模块提供服务,它根据广告系统全局优化的具体需求,利用离线日志数据进行规划,得到适合线上执行的分配方案(allocation plan)。
-
商业智能(business intelligence,BI)系统。这部分包括 Extract-Transform-Load(ETL)过程、dashboard 和 cube,这些是所有以人为最终接口的数据处理和分析流程的总括,担负着对外信息交流的任务。由于实际的广告运营不可能完全通过机器的决策来进行,其间必然需要有经验的运营者根据数据反馈对一些系统设置及时调整。因此,实现一个功能强大、交互便利的 BI 系统是非常重要的。
-
广告管理系统。这部分是广告操作者,即客户执行(Account Execute,AE)与广告系统的接口。AE 通过广告管理系统定制和调整广告投放,并且与数据仓库交互,获得投放统计数据以支持决策。一般来说,广告系统中只有这部分是面向用户的产品。根据对操作对象开放程度的不同,这一系统有时又有开放自助的需求,在这种情况下,还需要包含相应的财务结算功能。
在线数据处理
在线数据处理基本上可以认为是离线数据处理的镜像功能,它是为了满足广告系统对实时数据反馈的要求,解决那些离线分布式计算平台无法快速响应的计算问题。为了组织下面一些在线时前后有依赖关系的数据流加工过程,我们经常选用流式管理平台作为基础设施。在线数据处理主要包括以下模块。
-
在线反作弊(anti-spam)。实时判断流量来源中是否有作弊流量,并且将这部分流量从后续的计价和统计中去除掉,是广告业务非常重要的部分。此模块是所有后续在线数据处理必须经过的前置模块。
-
计费(billing)。这部分同样是计算广告关键的业务功能之一。对于那些经过扣费预算耗尽的广告,系统必须马上通知广告索引系统将其下线。当然,扣费也必须在扣除了作弊流量的基础上进行。
-
在线行为反馈,包括实时受众定向(real-time targeting)和实时点击反馈(realtimeclick feedback)等部分。这部分是将短时内发生的用户行为和广告日志及时地加工成实时用户标签以及实时的点击率模型特征。对于在线广告系统,这部分对于效果提升的意义重大:在很多情形下,把系统信息反馈调整做得更快比把模型预测做得更准确效果更加显著。
-
实时索引(real-time indexing)。这部分的主要功能是实时接受广告投放数据,建立倒排索引。广告的索引由于涉及预算调整等商业环节,因此必须在投放管理者调整以后非常快速地在线上广告索引中生效。