作者Jack47
转载请保留作者和原文出处
博主毕业后投身了互联网的搜索广告行业,今天来跟大家分享一下搜索广告的相关业务。
广告
什么是广告
"Advertising is a form of markekting communication used to persuade an audience to take or continue some action, usually with respect to a commercial offering, or political or ideological support."1
广告是用来说服受众采取某些行动的营销沟通形式,通常跟商业、政治或者意识形态有关。广告由讯息与传递讯息的媒介构成。
为什么需要广告
广告就是把合适的信息传递给客户和潜在的客户。目的就是说服客户,这个公司的服务或者产品是最好的,创造一种对产品或者服务的需求,推广新上的产品,提升客户心目中公司形象,吸引新客户,维护老客户。用几个字归纳一下,广告的目标就是:告知,说服,提醒,强化
广告属于传播学领域,传播学研究的是三个主体:
- 目标群体 -- 他们是谁?
- 载体 -- 通过何种方式传递?
- 信息 -- 需要告诉他们什么?
大家可能一听到广告就很讨厌,但可知道绝大多数的互联网企业都是依靠广告来盈利的,如果没有广告,大家就不能免费享受互联网上的提供的多种多样的免费服务了。
搜索广告:
搜索广告属于计算广告中一类,可以看我之前写的计算广告简介这篇来了解计算广告。
什么是搜索广告(sponsored search):
诺贝尔经济学奖得主赫伯特*西蒙(Herbert Simon)早在1971年就说过:
...在一个信息丰富的世界,信息的丰富意味者其他东西的缺乏:信息消费的不足。信息消费的是接收者的注意力。信息的丰富导致注意力的贫乏,因此需要在过量的可供消费的信息资源中有效分配注意力
互联网是靠联接建立起来的,互联网中流量的本质就是一个有方向的联接,这个联接出发自广告主的广告,最终抵达了消费者,消费了用户的注意力。在如今 信息丰富的互联网环境中,最稀缺的资源就是用户的注意力,即流量。简单来讲,搜索广告就是给广告主提供一种购买用户注意力[流量]的机制,让广告主的广告 能够触达消费者。用户的注意力对于广告主来讲,就意味着客户,意味着潜在的成交。
在搜索引擎中,用户的搜索行为,是通过用户输入搜索词来触发的,所以在搜索引擎中,搜索词就天然地代表了一定比例的流量。目前搜索广告为了提升广告 平台售卖流量的效率,都提供了程序化的竞价购买机制,广告主选择一个“竞价词”,并对此竞价词出价,当用户触发某个搜索请求时,所有购买此“竞价词”的卖 家都会进行一次实时的竞争,最终优胜者胜出,这种机制已经被广告系统的演化证明了是一种比较高效的机制[可以去看看搜索广告的发展历史,很有意思]。
如上所说,搜索广告中广告主追求最大收益,会通过购买最有可能带来流量和转化的那些关键词的方式来购买流量。搜索广告的广告位相比自然搜索结果而言是非常有限的[可以看看淘宝和百度的搜索结果中,有多少是广告],所以在一些热搜词上竞争相当激烈[看看莆田系广告吧]。
业界知名的搜索广告系统有:Google AdWords, 百度凤巢,淘宝搜索直通车。例如下图就展示了百度上搜索杭州后出现的搜索广告。
百度搜索杭州后出现的搜索广告
在搜索广告中,广告的目标群体就是正在进行搜索行为的用户,为了不损害用户体验,一般类似Google、百度这种网页搜索的广告载体都是跟自然搜索 结果一样,是文字的,但淘宝、京东这类的电商搜索环境下,广告载体是带标题的图片形式。通常把这种载体叫做创意[creative],广告主可以在创意中 去自由发挥,通过图片和文字把信息传递给客户。
在搜索广告中,有三个参与方:
- 广告主
- 浏览者
- 搜索引擎
在搜索广告中三个参与者之间有如下的交互行为:
广告主:
- 1.提交广告创意,购买相关的竞价词
- 2.为了获得好的展示位置而竞价
- 3.为获得的点击付费[Pay for Click]
浏览者:给搜索引擎输入查询词,表达自己的搜索意图
搜索引擎:
- 1.根据用户的查询串在web页面语料库和广告语料库中分别进行检索
- 2.把上述检索拿到的自然搜索结果和广告搜索结果结合到一起,展示在搜索结果页[SERP]上
自然搜索和广告搜索的差异
自然搜索:
定位是帮助用户方便快捷的找到想要的信息、商品和服务,高效公平地分配流量[国内大部分搜索引擎做不到这一点]。
广告搜索:
定位是给依赖搜索引擎来获取流量的卖家提供流量购买功能,即分配搜索流量给医疗企业,电商卖家,来实现搜索引擎的商业价值,在追求变现的同时需要照顾好消费者的用户体验
搜索广告与定向广告的差异
一句话概括:搜索广告是由用户主动的搜索行为来触发,而定向广告通过揣测客户意图来出广告。
最大的差异就是发生的场景不一样:
搜索广告是处于搜索的场景,而定向广告是解决其他非搜索场景的广告需求的。因此对于搜索广告,此时客户的意图比较明确,是根据用户当时当下的意图来 给客户展示相应的广告,广告对用户而言是相对精准的。定向广告都是出现在非搜索的场景下,定向广告中用户意图不明显,也很是难挖掘的,需要通过关注客户的 长短期兴趣来揣测用户的意图,给用户展示一些相关的广告。
搜索广告中,广告主追逐并竞价的是搜索词,而定向广告中广告主追逐并竞价的是用户的兴趣类目。
而这两类广告中,广告主都可以通过性别,年龄,购买力等维度来更加精准地刻画自己的目标人群。
搜索广告系统的组成
一般会包含以下几个部分:
- 广告主后台
给广告主提供操作界面,见下图。广告主可以在上面制作创意,买词竞价,查看报表,广告平台也给广告主提供了一些辅助性的工具,比如预估排名、关键词的流量趋势等。
Google 搜索广告的广告主操作界面 [2010年的界面 ]
-
报表系统
给广告主提供各种报表,广告主可以从不同的维度[例如从词,人群,时间]看到实时/历史的消耗,搜索/定向广告带来的流量,点击率,转化率等。这样就让广 告主看到搜索广告的效果了,广告主可以根据这些数据来及时的调整自己的买词,出价等,来让自己的广告预算达到最好的效果。从上图中可以看到很多数据,例如 2010年6月份的PV(impression)和平均CPC,每个推广组(campaign)的各项业务指标(CTR, Cost, Click)。 -
结算系统
搜索广告一般都是按照效果(pay for performance)付费,效果一般用点击来衡量,即按照点击付费(Cost Per Click)。结算系统需要做到实时的扣费,涉及实时结算,需要准确的扣费并把结算后的状态,及时反馈到客户的账户里 -
反作弊
一切通过欺骗消费者、欺骗系统的方法来为自己获利的行为,都称之为作弊。维护系统正常状态,过滤掉那些恶意/作弊的行为,比如竞争对手恶意点击,爬虫的大量搜索行为。 -
投放引擎
实现一套针对广告系统的搜索引擎 -
算法
算法部分可以说是整个搜索广告系统的大脑了,它控制搜索广告系统中的两个重要阶段:广告检索(match to query)和排序(ording the ads)
搜索广告的业务逻辑
一张图理解搜索广告[囊括了搜索,定向]的相关数据,这张图虽然简单,但非常重要,在广告系统的每个地方都可以看到它的身影,它会影响到整个广告系统的设计和架构。
广告系统的数据定义
从上图看到,一个广告主可能有多个账户,这些账户之间是独立的。搜索广告中是以广告组(ad-group)作为粒度来进行推广的。这个组推广的就是 广告主的某个产品了,在电商环境下,可能是一款衣服,在教育机构那里,就是某个课程。广告组里,广告主可以设置很多竞价词和对应的竞拍价格,例如高帮雪地 靴,出1块钱,羊毛雪地靴,出1块2毛。推广计划campaign,就有点类似于文件夹一样,让广告主可以设置同一类广告组的属性,如投放平台、投放地域 的选择,是否开启流量平滑等。创意(Creative)是搜索结果页中广告展现的载体,包含展现时的标题,点击后最终跳转到页面地址(landing page),如果是图片形式的广告,还会包含展示在搜索结果页时的图片。
一个创意的组成部分
对于广告主来说,他们还需要其他的一些功能:
-
-
精确匹配和模糊匹配
不同的广告主需求不同,有些希望是高转化的[精确匹配],有些希望是多带来流量的[模糊匹配] -
分时段设置不同折扣出价
不同的商品,在不同时段的流量和转化会不一样,例如在早高峰10点左右,竞争激烈,所以要想稳住排名,就需 要提高出价,而在凌晨和半夜,搜索流量很少,竞争没那么激烈,可以适当降低出价。对于Google这样面向全球的搜索平台,它的广告主有针对对不同的国 家,不同的地域设置不同的折扣的需求。同理,不同的商品,在各地区的搜索、成交、转化表现会不一样,而且出于包邮,避免竞争对手恶意点击等目的,广告主希 望针对地域有选择性地投放 -
个性化投放
互联网就像一只大网,我们每个人都会在网上留下各种痕迹,个性化就是要通过我们的足迹来刻画我们每个的人的特点,并利用这些特点来有针对性的服务。例如广告系统中,广告主想针对不同的人群进行投放,例如运动品牌更加愿意购买运动达人的注意力。 -
当日消耗限额
广告主每天花在搜索广告上的钱是有预算的,体现在日限额这个功能上。如果广告主当日消耗达到日限额,那么就需要停止投放。 -
流量平滑
日限额虽然能够防止广告主的花费超出预算,但是也会带来一些问题。例如广告主设置了日限额300,但由于PV较多,还没到 晚高峰10点呢,300块钱就消耗光了,广告主就不开心了,最想买东西的那拨人还没来呢,就把预算花光了。流量平滑就是为了解决这种问题。它会根据历史的 消耗和当天日限额,在设置的投放时间内尽量均匀展现,不会因为过早达到日限额而错过晚些时候的流量。
-
-
搜索广告中存在的三个子问题
从搜索引擎的角度来看,搜索广告中存在三个子问题:
- 广告检索
- 对检索到的广告排序
- 根据点击收费
以上三个顺序是搜索广告事件发生的顺序,这里面1和2属于信息检索问题,而2和3又属于微观经济学问题。
广告检索
搜索的过程,简单来讲,就是match(匹配)+rank(排序)的过程。Match解决的核心问题是如何根据用户搜索词,召回最符合用户意图的那些广告。Rank解决的核心问题是如何对Match圈出的广告进行排序,需要兼顾用户体验和搜索平台的收益
Match的过程由两部分组成:
-
QueryRewrite 用户搜索词改写
-
Ad Retrieval 广告检索
查询串改写(Query Rewrite)
查询改写可以解决哪些问题?
先来看查询改写中的两个重要指标:
- 召回:搜索引擎返回的文档中相关的文档占总相关文档的比重。
-
精度:返回的结果中,相关文档占返回结果的比重
在广告搜索引擎中,不能直接拿着用户的原始查询词在倒排索引中进行广告检索的,因为广告主买词和用户的原始查询词极有可能不是同一个词,很难精确匹 配到,这样就导致搜出来的广告深度不够,即召回率很低。举个例子,广告主买了"三亚旅游"这个词,而用户搜索词是"去三亚旅游",如果直接拿用户的搜索词 去检索,是检索不到这个广告主的广告的。
对于某些用户特定输入的查询词(Query),跟它相关的广告可能并没有购买这个Query[由于引擎系统能力有限,广告主对某个宝贝的竞价词不能超过一定数量],或者可能这个Query很少有广告主竞价[长尾词],导致竞价词的广告深度不够。
针对上述的情况,可以通过两方面来改进:
- 给文档增加词,来让它可以被更多的查询匹配到
- 给查询增加更多的词,让查询匹配到更多的文档
查询改写(Query Rewrite)是后一种方法,它也经常用来提高检索结果的相关性。
查询改写就是对给定的一个原始的查询串,输出一堆跟它相关联的查询串(改写)。在查询改写上面的研究工作,大部分都是集中在利用多种方法例如挖掘查询日志和用户会话来产出跟原始查询串相关联的改写。
改写的质量取决于两个方面。首先,改写后的查询越接近原始查询的语义越好。改写后的精确度可以通过计算检索到的结果集和原始查询之间的距离来衡量, 目前普遍通过点击日志中的用户偏好学习来衡量。其次,改写后的查询应该保证有足够多的结果返回给用户。改写后的覆盖率是通过计算请求特定数量的结果,需要 多少次请求才能达到预期来衡量的。
归一化
为什么不拿着用户的搜索词,直接去查询(keyword, ad)的索引呢?因为用户的搜索词千变万化,由于计算机性能的限制,我们不可能对所有的搜索词建立到竞价的广告的倒排索引。很多搜索词,虽然形式不一样, 但是他们代表的用户意图可能是一样的。用户输入的查询多种多样,在搜索引擎有限的计算能力和存储资源下,不可能对每一个原始的用户查询串建立倒排索引。
为了解决这种问题,就引出了归一化的方法,归一化原本是统计学中概念,这里是指把用户搜索词(查询串)和广告主的买词(竞价词),转化到一个搜索引 擎内部的检索词典里。归一化是一个多对一的关系,即好几个搜索词,对应的归一化词可能是同一个。查询改写后产出的所有词,都是经过归一化后的词。广告搜索 引擎中是用归一化后的词去检索广告。而用户的竞价词,也是通过归一化后建立的倒排索引。
归一化的好处是能够帮助我们减少搜索引擎需要处理的词的数量,帮助我们降低问题的规模,但是也是坏处,可能会丧失掉一些语义信息的精度。搜索词和买词往往是人操作产出的,更具有可读性,而归一化是一种数学方法,归一化后的词可读性差一些。
查询改写的输出
可以这样简单理解查询改写的:
它就是搜索引擎进行匹配(Match)的大脑,用来揣测出用户的搜索意图,这些搜索意图是有权重区分的,来指导检索模块进行检索,排序模块进行排序对于搜索广告,一般的查询改写输出,包含以下几个部分:
改写出的查询(rewritten query)。每个查询都会包含如下的信息:
查询词:最终用来查询倒排索引的查询词
权重:刻画跟原始搜索词的相关性
对于电商环境的查询改写(例如淘宝和京东),还会预测出当前query的类目和属性
关于类目属性,可以看看鬼脚七的浅谈淘宝类目属性体系关于query改写,有这篇诙谐幽默的文章可以看看:
http://www.searchtb.com/2011/01/from-augur-to-etao-query-analysis.html检索
倒排索引和正排索引
查询改写是query->bidword的映射,而检索过程是bidword->ad的映射,即找到所有购买了这个竞价词的广告。查询 的时候是用检索词去查广告,为了加快速度,就建立了一份竞价词到购买了此竞价词的广告的倒排索引: bidwordx->(adi, adj, adm, adn)。这个跟网页搜索引擎中的倒排索引(inverted index)的作用是一样的,都是为了加快检索速度,类似于书籍中的目录页。这样对于一次检索,遍历此次所有查询词的倒排数据,把宝贝取出来,就能得到广告的候选集合。
正排数据存储的是推广组(ad-group)、推广计划(campaign)和客户(cust)的相关信息,如宝贝状态,销量,属性,类目,地域, 以及推广计划的id,客户的id等。对候选集合的过滤就是根据正排数据来进行的。检索过程只负责检索出购买了这些竞价词的广告。根据正排数据来进行过滤的 过程是由单独的一个阶段来完成的。
可以看到在搜索广告中检索过程是十分简单的,其实是一个精确匹配的结果,不像网页搜索引擎,需要支持多种语义
广告排序(Ranking)
检索完成后,就需要确定广告的输出顺序,需要兼顾用户体验和搜索平台的收益。这个阶段必须综合考虑竞价和相关性分数(例如ecpm)。目前有两种主流的方法,以赛马为例:
- 反应式(Reactive):选定一匹马,根据它的历史成绩来预测未来的表现
- 预估式(Predictive):根据体重,腿长等特征为赛马建模,找到这些特征在预测比赛名次终的重要程度,然后基于这些特征来给见过、未见过的赛马预测成绩。
当我们拥有对某赛马的足够信息的时候,就使用这些信息(反应性),否则使用模型(预测性)。
分层排序
记得计算机界某大牛曾经说过,任何问题都可以通过增加一层来解决,在广告搜索引擎中也是通过分层的形式解决复杂问题的,大到匹配(Matching)和排序(Ranking),小到广告集合的处理,无处不在分层的思想。
在广告搜索引擎中,由海选、初选和精选三个阶段来配合完成广告的排序工作,其中海选和初选都是在做剪枝操作,尽量缩小问题的规模。广告和自然搜索的 差异之一,就在于广告位相对自然搜索的位置,是相当少的。所以决定了在竞争激烈的情况下,排在后面的广告是没有机会展现的。因此可以考虑在早期过程就发现 这些宝贝,然后干掉这些宝贝,此时每个宝贝的排序分数不需要非常精确,能达到一定的筛选效果就可以,这就是全量索引截断、海选和初选的思想。而最精确的打 分,是发生在精选阶段的。一般都会采用单独的线上打分服务来完成的。
全量索引截断
全量建索引的时候,会对倒排链超过一定数量的热词进行截断,根据排序分数来取这个倒排链下的top N个宝贝。海选
广告搜索是轻检索,重过滤的。当检索阶段拿到的广告候选集合后,会进行海选。海选这个名称非常形象,这不就是歌手大赛的海选阶段吗?只有实力唱将才能脱颖而出。初选
为了减少对线上打分服务的压力,海选阶段完成后,还需要经历初选阶段。初选打分与海选打分的计算过程类似,但此时分数更加精确了,考虑的因素更加全面。
精选
最后线上打分服务,会对这些经历了海选和初选脱颖而出的广告进行精确打分。为什么每次都需要实时去打分:
上述提到的海选、初选和ORS打分,都是需要实时计算出分数的,因为竞价同一个关键词的广告是快速动态变化的。广告主可能手动或者自动[第三方软件]地更改竞价词和对应的竞价价格,而且会修改广告的创意,都会对打分造成影响,因此需要实时的打分
点击扣费
对于目前的搜索广告来说,都被设计成了拍卖的机制。搜索引擎拍卖的是每个流量中可能的广告位,广告主提交对购买的关键词的每次点击的最高出价,广告 主是不知道其他人的出价信息的。虽然每个流量中一般会有多个广告位置,但是广告主只出一个价格。最终搜索引擎根据广告主竞价和广告的点击率CTR来对广告 进行排序,决定最终的展示位置和扣费价格。
点击扣费时,目前普遍采用的是Google发明的广义第二价格扣费GSP(General Second Price),有两种策略:
- 竞价排序:根据广告的出价倒序排列,位于第i个的广告支付第i+1个广告的竞价
- 根据广告平台的收益排序:根据期望最大收益ecpm来排序:
ecpm=bidprice*ctr
。此时被点击的广告主i付的费用为clickprice=bidprice(i)*(ctr(i)/ctr(i+1))
目前广告的顺序都是根据期望最大收益ecpm来排序的,因此
bidprice(i+1)*ctr(i+1)>bidprice(i)*ctr(i)
,可以从上述公式看到广告主实际扣费肯定小于他自己的出价参考资料:
Efficient Query Rewrite for Structured Web Queries
Query Rewriting in Search Engines