互联网行业的印钞机——广告系统是怎么回事?

上次给大家聊完了推荐系统,今天再来简单聊聊广告。我不会涉及太多技术细节的东西,尽量从大局上带大家总览一下互联网当中的广告是怎么回事,广告系统又是怎么运作的。作为一个广告系统,它的目标又是什么?知道这些在你面临找工作或者是跳槽的时候,有可能会用得上。

广告和竞价

大家可能或多或少地能感觉到广告对于互联网公司来说非常重要,也是很多互联网公司的盈利模式。因为大多数互联网公司不直接从用户身上赚钱,但是平台又需要盈利,所以广告就是一个非常好的模式。其实好的广告是多赢的,商家和平台都赚到了钱,用户买到了自己喜欢的商品。没有花钱的用户也享受了平台的服务,也正因此,广告在互联网公司的收入当中占比非常大,甚至超过一半。

作为用户我们上网的时候浏览到广告,这些广告并不是固定的也不是随机的,也是通过类似搜索引擎从广告库当中搜取出来的。为了平台利益最大化,广告会以竞价的形式进行。举个简单的例子,比如当我们打开一个网页,广告栏位只有1个,但是候选的广告有3个,比如分别是洗发水、汽车和医美。有三个广告候选,应该选哪个呢?很简单当然是谁给平台出价高选谁。

也就是说在广告平台内部,每一次曝光展示广告其实就相当于一次竞拍。广告主会给自己的广告一个出价,这个出价的逻辑不同的场景不一样。最好的是能够根据广告主当前的预算以及已经获得的流量以及期望的流量动态出价,但是这一点比较难做到,不是所有的系统都有这个能力。简单一些就是固定出价,这里我们不需要太抠细节,只需要大概了解就可以了。

我们就假设所有广告都采取固定出价好了,比如洗发水是3块,汽车是10块,医美是50。那么显然肯定是医美获得胜利,所以这个广告会展示医美。但是这里有两个问题,我们一个一个来说。

第一个问题是,医美行业利润比较大,所以广告出价高,这样不是洗发水和汽车都没办法展示了?这不完全对,因为竞拍是多次进行的,根据召回的候选广告的情况来进行的。洗发水出价虽然低,但是它并不一定每次都会和医美广告竞争。所以它一样是可能获得展示的。

第二个问题是,用户可能是男性,对医美并不感兴趣,你不管怎么出他也是不会消费的。那这样广告的钱不是白花了吗?所以这里牵扯到了广告的选择问题,我们选广告就不能只根据出价来选了,因为即使展示了用户不点,平台也赚不到钱。怎么样平台才可以赚钱更多呢?当然是要期望最大,期望等于什么?等于出价 x 点击率,所以核心就在点击率,有了点击率我们就可以估算它的期望。点击率怎么来?当然是通过模型来预测。

所以这根线我们就串起来了,为什么广告场景需要点击率?因为需要计算广告对平台带来的期望收益。

第二竞价策略

广告当中还有一个非常有趣的策略,叫做第二竞价策略。这个策略的含义也非常简单,还是用刚才洗发水、汽车和医美的广告举例子,洗发水出了3块钱,汽车出了10块,医美出了50。显然我们倒排,医美出的最多,然后是汽车最后是洗发水。我们先不考虑点击率对广告的影响,先单纯地考虑竞价,这个广告应该展示医美。

一般的竞拍是第一竞价策略,也就是说价高者得,这个非常好理解,日常的拍卖都是这样。但是在第二竞价策略当中,同样是价高者得,但是叫价最高的人却不用出自己的叫价,他只需要出第二多的价格再加上一个基数,比如1分钱或者是1毛钱(基数视具体场景而定)。这个就叫做第二竞价策略。在刚才那个例子里,医美广告虽然喊了50,但是只要出10.1元就行了。

但是我们直观看起来肯定会觉得不对啊,这不是少赚钱了么,平台傻吗,明明可以多收钱非要少赚?

其实平台一点都不傻,买的永远没有卖的精。这里面的道理很简单,我们来思考一下,假设你是医美的广告主用50块钱的价格竞拍到了广告。那么下一次竞价你还会叫50吗?很显然不会,道理也很简单,你用50的价格竞争到了广告,你虽然不知道其他人出多少钱,但是可以肯定一定比你低,那你下次肯定是会试着压价,看看能不能用更少的钱去获得广告。实际上所有的广告商都会这么做,大家一起压价的话,这个竞拍还叫做竞拍么?平台还怎么赚钱?

为了防止大家压价的情况发生,所以平台采取了第二竞价策略。这样即使广告主拍到了广告,也无法压价。因为出价第二的广告主的价格也是浮动的,它也可能会提价。而且出价最高的人也没有压价的需求,因为即使价格压低一些,他拍到广告的价格仍然是第二名的价格,对他来说没有收益。这样虽然看起来平台没有把利益攫取到最大,但实际上可以避免大家一起压价的情况发生,这样的盈利反而会更高。

目前来说,基本上主流的算法平台都是采取的这样的策略,比如某度的搜索广告,淘宝的商品广告等等。

广告逻辑

对于互联网时代的广告来说,它和传统的广告有很大形式的不同。比如传统的发传单或者是电视广告、招牌广告等等,这些广告都是固定的,是没有用户定制化的功能的。不管什么人拿到传单都是一样的内容,不可能说不同的人拿了传单就有不同的结果。所以传统的广告都是海投的,转化率很低,而且往往比较难以统计转化的情况。比如说我们在某个地方摆了一个广告招牌卖某一款家电,我们很难统计这款家电当中有多少销量是这块广告贡献的。

但是互联网行业当中的广告不同,由于我们所有的内容都是电子的,它可以做到巨大的进步。首先一个就是个性化,它能够根据我们的需求给我们推送广告,而不再是随机推送或者是根据广告主的需求推送。第二个就是它可以很好地统计转化以及后续的效果,因为互联网当中所有的信息都串联起来了,从用户的观看、点击到购买,都可以追踪到。我们也可以训练先进的模型对用户的喜好进行预测,从而筛选出优质的广告给到用户,给平台赚取利益。

说到这里,简单提一句,为什么中国的电商公司这么多,只有淘宝一家是赚钱的,而且赚得还不少?因为淘宝一直是平台,玩的是流量,赚的是流量的钱。淘宝从其他平台买来流量,然后将这些用户流量卖给商家。我们在淘宝上买东西买的东西并不是淘宝自己的货,而是其中商家的货。商家要卖货需要在平台发布广告获取流量,这些卖流量的钱才是淘宝的收入来源,而不是买东西的钱。买的东西不好找淘宝,淘宝也绝不徇私,因为淘宝不靠卖货赚钱,并且用户是流量的来源,所以淘宝绝对不会偏袒商家,基本上可以做到公证。而像是某东一直主打自营,这就是靠卖货赚钱了,前两年一直有掺假和翻新机之类的问题,这一系列问题以后还会有,因为本质上某东靠卖货赚钱,它又要和淘宝用低价竞争,为了赚钱高品质必然难以维持。

我们前面说过,为了利益最大化,需要投放获益期望最大的商品。我们都知道期望等于概率乘上值,这里的概率我们是不知道的,没有人可以准确评估。我们只能用一些机器学习或者是深度学习的模型去尽可能逼近地预测点击率,点击率是点击数除以曝光数,英文是Click Through Ratio,简称CTR。所以我们可以把平台的收益写成公式:

这里的R指的是Revenue,也就是回报收益,bid是商家的出价。这个公式有个前提,就是广告是按照点击扣费的。但是平台当中的广告可能并不是都按照点击扣费的,比如一些好的位置的广告也许就是按照曝光(观看)收费的。比如淘宝首页的位置:

我们看到首页最上面的栏目当中也会有广告,这些广告的位置最好,属于用户必看的内容。这些高价值的位置可能就不一定是按照点击收费,而是按照曝光收费。这样有一个什么好处呢?除了赚钱更多以外,还可以逼迫这些广告商提升广告的质量。这和油管当中的广告可以跳过是一个道理,正是因为广告可以跳过,所以逼迫广告主提升广告的创意和质量,让观众愿意把它看完。

当我们在淘宝搜索的时候,搜索的结果当中也有广告。比如我搜索了一个手机,第一条就是广告。搜索结果的广告没有自己独特的文案也没有特殊的图片,一般来说是按照点击扣费的。

还有一些隐秘角落里的广告,位置更差,可能是按照转化也就是用户的购买收费的。只有用户的确购买了这个商品,平台才能赚到钱。像是一些朋友圈、网站小广告一般也是这种,因为转化率不高,如果按照曝光或者是点击收费广告主不乐意。

对于按照成交收费的广告,我们只预测CTR就不准了。因为有些商品点击率可能很高,但是转化率并不一定高。我随便举个例子,因为我给老婆买过衣服,所以淘宝会给我推一些性感小姐姐。这些明显吸引眼球的图或者是标题的点击率往往很高,因为人都是视觉动物看到了可能就会忍不住点一下。做过广告的都知道,这些美女图片的点击率是非常高的。对于这种情况我们就不能只预估点击率,还需要预估它的转化率

转化率的学名叫做CVR(Conversion Rate),也就是对每一个点击它下单的概率有多大。这个时候的广告收益就是:

也就是用户点击的概率乘上用户点了之后会买的概率,就是等于用户看到可能会买的概率。对于广告团队来说,除了需要预估CTR之外也就多了一个预测CVR的任务

总结

我们简单总结一下,广告系统的逻辑我们之前的文章也介绍过了和推荐系统大同小异,只是目标和推荐以及搜索不同,因为目标牵扯到了计算收入,所以会有一个乘上竞价的操作计算期望的操作。要计算准确的期望需要两个核心的值,一个是CTR一个是CVR。相对来说CTR使用更广一些,并且CVR和CTR的预估逻辑也基本一致。所以和推荐一样,广告团队的核心也是CTR预估,作为算法工程师而言的日常工作其实是非常非常接近的。

最后给大家透露一点点小小的内幕,你们知道广告行业最土豪的广告主是什么吗?我说两个,一个是装修另外一个是医美。一个最近正在考虑装修的业主的电话在装修公司的报价大约是好几百块,一个年轻爱美的姑娘的电话在医美公司还要多,可能上千块。也就是说他们单单拿到你的电话就要付出好几百甚至上千块,那么问题来了,先不说质量好不好的问题,就说利润,这当中的利润又有多大?

今天的文章就到这里,衷心祝愿大家每天都有所收获。如果还喜欢今天的内容的话,请来一个三连支持吧~(点赞、在看、转发

原文链接,求个关注

本文使用 mdnice 排版

– END –

{{uploading-image-717379.png(uploading…)}}