机器知道你会点广告:写给普通人的CTR预估科普
我们在刷微信和微博的时候,有时候会惊叹广告非常精准——就是我想要的!”,有时候又会感觉广告极其不靠谱——我怎么可能点呢?”,所有的这些背后,广告的工程师们已经做了他们最大的努力——
即便在我们看来并不精准,但在所有定向给你的广告中,他们已经挑出机器认为你最可能点的广告,而这背后依赖的就是CTR预估技术。
CTR预估是竞价广告核心的逻辑之一,很多人认为CTR预估非常高深,根本搞不清其中的逻辑,的确,CTR预估作为一个纯技术的模块,要做一个简单的科普并不容易。
致力于用简洁语言描述复杂问题的卫夕今天尝试用人话来解释CTR预估的来龙去脉,放心,本文不会涉及到任何高深难懂的公式和技术逻辑,看得懂中文的同学都能明白其中的逻辑。
一、CTR在竞价广告系统中起神马作用?
CTR(Click-Through-Rate)为点击率,它是互联网广告中最基本的概念,我们先来看看点击率对于一个竞价广告系统而言意味着神马?
我们先来做一道简单的题目——阿迪和耐克作为广告主来竞价,阿迪出2块钱一个点击,耐克出1块钱一个点击,假如微信广告平台有100次曝光,它应该给谁?阿迪还是耐克?有人说,当然是给阿迪啊,它出的价钱高。
这个答案是不对的,如果阿迪的点击率为1%,耐克的点击率为5%,那么给阿迪能产生1个点击,每个点击1块钱,微信能赚2块;给耐克则产生5个点击,每个点击1块,微信能赚5块,广告平台不傻,当然要给耐克!
好,从这个简单的案例中,我们可以看出几点:
广告平台关心自己的流量价值——即自己的流量曝光卖的贵还是便宜,一般用ECPM(earning cost per mille)这个指标来衡量,即每1000次曝光带来收入。广告主一般按点击进行扣费,即广告主通常关心结果,出价原则就看一个点击需要花多少钱。广告平台需要把点击出价转化成ECPM进行扣费和排序。CTR架起了从点击到曝光的一座桥梁,为排序提供基础。总结起来就是一个简单的公式——ECPM=1000*CTR*点击出价,在上面这个案例中阿迪的ECPM=1000*10%*2=20,而耐克的ECPM=1000*5%*1=50,显然耐克的ECPM大于阿迪的,因此耐克会在这次竞价中胜出。
从这个案例中我们可以看到CTR是为广告排序用的,而排序本身就是竞价广告的核心,因此CTR预估也是竞价广告的核心技术之一。
不仅广告系统需要CTR预估来排序,推荐系统也需要CTR预估来排序,因此CTR预估应用其实比我们想象的要更加广泛:
YouTube、亚马逊、今日头条等等涉及到个性化推荐的系统都会应用到CTR预估,即他们要把你最可能点的内容推荐给你。
而广告系统的CTR预估在具体的数值上比推荐系统要求更高,比如推荐系统可能只需要知道A的CTR比B大就可以排序了,而广告由于不是直接用CTR进行排序,还加上了出价,因此广告系统不仅要知道A的CTR比B大,而且还需要知道A的CTR比B的CTR大多少。
二、为什么要进行CTR预估?
到这里大家已经明白CTR的重要性了,即CTR是广告排序的前提,它连接了点击和曝光,这时候大家又会有一个新的问题:那CTR为什么要预估呢?多少投放一点不就知道了它的CTR了吗?
多少投放一点不就知道了它的CTR了吗?”这句话大体上没错,但事情远没有这么简单,我举一个例子你就知道了。
假如广告平台有四个广告主来投广告,这个广告平台总共有4000个用户,这四个广告主分别为卖布娃娃的、卖游戏机的、卖西装的和卖高跟鞋的,出价都是1块钱一个点击。
这时候我们不知道CTR的情况下,我们应该怎么办,于是我们试投了一下,每个广告投了100个曝光,最后发现他们的CTR都是25%,出价一样、CTR一样。
按照我们上面的公式,ECPM就一样,而我们按ECPM来排序,因此我们就没办法排序——每个人ECPM都相同,因此最终就只能在广告平台随机出这四个广告了。
ECPM=1000*CTR*点击出价
但我们回去看一看实际情况,这个25%的点击率是如何发生的我们就能明白总体CTR是不靠谱的,真相是平台总共有4000个用户,而他们均匀分成了四组:
分别是1000为成熟男人;1000成熟女人、1000少女、1000少男,这四个人群只点击他们喜欢的东西,如成熟男人只点击西装,他们对自己喜欢的东西的点击率为100%,对自己不喜欢的点击率为0%,当我们随机投放的时候,每个人的点击率都是25%。
好,现在你看到了,直接拿试投这个点击率去预估导致的结果就是用群体数据代表了个体差异,即当一位成熟男人来请求广告的时候,我们会认为投给他一个布娃娃和投给他一套西装没有任何区别。
因为在试投阶段布娃娃和西装的整体点击率都是25%,尽管实际上他们的点击率有天壤之别,一个是100%、另一个是0%。
因此,当我们通过特征差异能正确地个性化预估CRT的时候,我们才能正确地排序,当一位成熟男人来请求广告的时候,西装这个广告主就会在竞价中胜出,因为我们知道它的CTR100%高于布娃娃、高跟鞋、游戏机的0%。
所以从这个案例中我们就能明白,不能直接笼统地看试投的点击率,而应该有针对性地针对个体单独预估,试投这个阶段依然存在,但我们会通过某个模型用交叉特征地看每一个个体的点击率,从而下一个拥有该特征的人群来访问的时候,我们就能相对更加准确地预估了。
同时,我们也从上面的案例中发现,正确预估提升了CTR,从原来的25%提升到了100%,同样广告平台的收入也会提升,这就是CTR预估的意义。
三、CTR预估是如何进行的?
通过这个案例我们看到,至少有三个特征决定了一个广告的点击率——广告主行业、用户的年龄、用户的性别,事实上,在实际的广告系统中,有无数的因素决定了广告的点击率,我们把这些因素主要分成3类——
第一是广告主侧,比如广告创意、广告的表现形式、广告主行业等,一个劳斯莱斯的广告和一个可口可乐的广告点击率肯定有天壤之别。第二是用户侧,如人群属性,以上的案例是年龄和性别,事实上,决定创意的因素人群属性极其多——年龄、性别、地域、手机型号、WiFi环境、兴趣……..第三是广告平台侧,比如不同的广告位、投放时间、流量分配机制、频次控制策略等。这些决定因素在CTR预估中被称之为特征,而CTR预估的第一步就是特征工程”,即把这些特征找到并数据化。
特征工程是一件复杂的工程,光判断不同特征能否对CTR产生影响就是一个浩大的工程,特征工程的攻城狮们第一步得列出来不同的特征可能对CTR产生影响,这有时候靠直觉,有时候靠经验,
确定了特征之后就需要对这些特征进行处理——即把特征数据化,比如把所有的特征变成0和1的二值化,把连续的特征离散化,把特征的值平滑化、把多个特征向量化…….
以上这一段看不懂?看不懂没关系,你只需要明白,所有的这些特征都会被攻城狮们编码变成一串可计算的数组就行,特征工程是一项重要的基础工作,像今日头条、百度这样的广告平台都有一个庞大的团队来做特征工程的工作。
好,特征工程完成之后就开始建立模型了,很多同学看到模型”二字就开始皱眉头了,没关系,你可以这样理解模型:模型就是一个黑盒子,在盒子的一方我们输入一大堆参数,盒子的另一端就会输入一个CTR的值。
比如我们输入这样的参数:一个高跟鞋广告主、投放给北京地区、年龄20-30岁、对财经感兴趣的女性用户,在周末投放在微信的朋友圈第三位…….请给出一个CTR的值。模型就会根据不同特征的值计算出一个值。
至于它是如何计算的,非技术同学理解起来难度会非常大,我们可以简单理解为CTR是无数特征的一个函数,CTR=f(x1,x2,x3,x4,x5……),而模型就是选择神马样的函数来进预测。
我举个大家最容易理解的线性函数:CTR=ax1+bx2+cX3+dx4+ex5……(这只是一个假设,实际上模型要比这个复杂N多倍)。
每一个函数都有相应的参数( 比如刚刚案例中的a、 b、c、d),而这些参数是如何确定的呢,就需要历史数据进行训练,就是把已经知道的一些数据去喂这个模型,模型根据这些数据不断地调整参数,喂的越多调教的就越准确,最终预测的效果也就越好。
在所有的这些特征中,有些特征影响因子会大一些,有一些会小一些,比如搜索广告中,搜索关键词和广告关键词匹配程度就是一个影响因子极大的因子、历史CTR也是一个影响因子极大的因子,其他因子会有不同程度上的影响。
工程师们每天的工作就是尝试新特征、尝试新模型、训练不同的模型参数,以便让CTR预估更加准确,谷歌、Facebook、阿里、百度这些公司的工程师已经在这些领域发表了很多篇顶级论文。
四、如何评估CTR预估的效果?
好,接下来的一个问题,如何评估CTR预估的效果?工程师们会有特定的指标去衡量效果,对于非技术同学,有人会直观地说,那当然是看CTR有没有变高啊:
正确预估CTR不就是为了把真正高CTR的广告挑出并展示出来么,错误地预估——把高的CTR低估或把低的CTR高估都会让高的CTR不会排在最前面,从而会降低CTR。
这个说法在推荐系统中是成立的,但在广告系统里是不准确的,因为广告的排序不仅仅是CTR排序,它还综合了出价进行排序,即ECPM进行排序,有时候CTR预估准确,反而(实际)CTR会降,我们看一个实际的例子:
这一大堆数字大家可能看不懂,我们只需要明白以下几个逻辑就能看懂了:
广告通过预估ECPM的大小来判断谁胜出,而预估ECPM等于预估CTR*出价,在这个案例中,图一CTR预测正确,阿迪的预测CTR30高于耐克的20因而胜出。广告实际ECPM是胜出者的ECPM,因为广告平台把所有的曝光都给了胜出者,它等于胜出者的实际CTR*出价。图二里把耐克的CTR从2%错误地预估到了4%,导致其预测ECPM高而胜出,而实际上投放出来的CTR为2%。这个情况中,预测正确反而CTR低,预测错误反而CTR高,但是没关系图一预估正确的情况下实际的ECPM30高于图二预测错误ECPM20。所以从这个案例中我们可以看到,从结果指标来看,ECPM是衡量CTR预估最为重要的指标,当然,在实际的实践过程中,CTR预测正确通常ECPM、CTR、收入这些指标通常都会涨。
另外一个很简单的方法就是把预估CTR和真实CRT直接进行对比,由于预估CTR针对每一次广告展示都会预估,比如这一次预估CTR为2%,但单次广告真实CTR只有两个结果,点或不点,即100%、0%,所以看单次结果是没有意义的,我们应该从一个群体来看——
将每一次广告曝光按照预测的CTR从小到大排序,然后按某个单位(比如每10000个曝光)分别统计平均预估CTR和实际CTR,就能知道预测CTR的准确程度了。
以上就是关于竞价广告中CTR预估入门级科普了,广告是一个复杂的系统,里边有无数精妙、有意思的逻辑。
卫夕,微信公众号:卫夕聊广告(ID:weixiads),人人都是产品经理专栏作家。一名兴趣广泛的广告产品经理,致力于用简单语言深度剖析互联网相关的逻辑。
题图来自 Pexels,基于 CC0 协议
「干货」亚马逊广告排名算法揭秘及广告CTR的妙用
各位老铁大家好,敏哥今天准备和大家聊一聊亚马逊广告里面的一个关键词指标:Click through rate,也就是有效点击率,简称CTR。
CTR的定义我简单说一下:大家都知道impression的意思是展现,也就是曝光。
但是当一个listing展现到电脑屏幕上面,并不代表会得到点击,也就是流量。因为或许买家没有看见,或许看见了但是不想点击,很多种原因导致了展现但是没有流量点击。
那么,如果一个listing有1000次展现,但是被点击了100次,那么就有一个指标来衡量这个百分比,我们称之为CTR, 那么这种情况CTR就是10%。
接着往下说,大家都知道亚马逊有两套排名体系:
一套排名体系是自然排名体系,我们称之为organic ranking。
另一套排名体系是广告排名体系,就是那些有sponsor标识的产品,他们也有自己的排名,我们称之为ad ranking或者paid ranking。
如下图所示,Ad ranking 和 organic ranking其实是在一个页面下面共存的,都拥有各自的先后排序以及排序规则。
所谓广告CTR,也就是针对于广告listing的有效点击率,这个数据在后台advertising report里面是可以查到非常详细的数值的。不过估计大部分老铁没怎么去关注,一直都是忽略的状态,大家都对ACOS和转化率这些指标更感兴趣,毕竟电商还是要看sales,但是忽略了CTR的存在。 其实这样做是不对的。
首先就亚马逊的广告团队而言,他们其实更看重clicks而不是转化。答案其实很简单,因为广告团队的收入是通过点击来获取的。对广告而言,多少人点会比多少人买更重要。那么如果CTR 数据更高的listing,是不是意味着在给予同样的曝光的情况下,它能够吸引更多的clicks点击。
举个例子:同样都是power bank这词,第一页只有三个sponsor广告位,那么如果listing A 处在广告位排序第一的位置上,他等于是占据了最好的黄金广告位,他的CTR是1%左右,那么如果listing B 处于广告位排序第二的位置上,他的CTR是2% 左右。
那对于亚马逊广告团队来说,其实listing B 在广告权重上面是优于 listing A的,而且listing B 理应取代listing A 占据最好的黄金广告位。
因为同等的曝光下面,listing B 能够吸引最大的流量点击,帮亚马逊广告团队赚更多的钱,那么广告团队也会更乐意给他更好的展现和广告位置。
相信从以上例子大家应该明白。我想表达的是:基于广告体现算法来说,CTR的权重其实是大于广告转化率的。不是说亚马逊PPC就不看转化了,而是转化的权重没有clicks点击那么高了。
简单来说,亚马逊广告的排名是由三个因素决定的:
1 、出价
2、 广告CTR
3、 广告CR (转化率)
其中最重要的影响因素是出价
这个要证实很简单,你一个新listing上架,你弄个热门关键词,你把Bid开到100 USD ,等个3-5分钟,一定是首页第一位。
原因很简单:亚马逊要靠这个赚钱,所以出价对于广告排名的影响肯定第一位的。其次就是广告的CTR。因为CTR高的listing能够帮助亚马逊吸引到更多clicks,那么亚马逊广告团队也就能挣更多的钱,当然会把CTR高的listing 排到更高更好的广告位置。
对于有广告排名影响权重最小的是广告的转化率,亚马逊是电商平台,转化一直都很重要。但是在广告排名体系里面,并不是最重要的那一个。亚马逊PPC广告的目的其实很简单,就是通过点击来赚钱。
当然,我这套理论很多老铁可能会有不同的看法,我也非常欢迎不同的观点。我们针对这套理论做了一些测试,下面给大家简单说一下。相信各位老铁在实际广告运营过程中,也经历过类似的情况了。
我们分为两个广告组A和B,分别放到两个campaign里面。然后拿前段时间的一个爆款产品clothes steamers做为测试产品。我们选取了两个不同样式的clothes steamers,两个均为刚上架的新品,把他们分到 A 和 B 组里面,都是exact匹配,打的是clothe steamers这个词,开始的竞价Bid都设置为5 USD。因为要操控数据,所以我们都会对点击做人工干预,从而快速模拟现实中存在的一些情况。在尽可能保证其他条件不变的情况下:
刚开始的时候,因为初始竞价比较高,所以两个listing开始的广告位都比较靠前。
后面,在我们点击软件外加适当购买的快速操作下面,测试结果很快就出来了。第一个广告组A组情况如下:Conversion Rate = 30% and CTR = 0.3%。 第二个广告组B组数据情况如下:Conversion Rate = 0 and CTR = 10% 。
我们为了凸显效果故意通过人工点击把数据做的非常夸张。然后我们开始观测广告位,A组里面的listing广告排名明显和开始的时候比,倒退了不少,经常出现搜索找不到的情况。但是B组却是截然不同,B组里面的listing相应广告排名提升非常快,已经稳居第一页。至于实际扣费情况,则是差不了多少,比较一致。
综上所述,外加和亚马逊广告团队一些小会议闭门沟通,差不多能得出的结论是:CTR做高的情况下,能够短时间内极大地拉高广告排名,但是呢,也会消耗很大一笔广告扣费,对于降低广告实际扣费来说,短时间内不是很明显。我们还在测试如果时间拉长的情况下,对实际扣费的影响是如何的,也欢迎各位老铁踊跃发表意见,大家一起讨论。(来源:敏哥侃电商)