精准营销系统:如何打造一个顶尖的精确营销系统?

qinzhiqiang 07-27 16:20 562次浏览

当前业界“最先进的”的精确营销系统,非互联网公司的“在线广告系统”莫属,但到底它先进在哪里?

应该来讲,无论是传统企业的精确营销系统,还是互联网公司的广告投放系统,都是针对目标用户,将产品(促销、产品、广告等形式)通过合适的渠道(媒体网站、实体渠道、语音、短信等)进行投放,从而刺激用户的购买,这是两者可以比较的基础。

下面就从四个方面来进行介绍:在线广告系统的功能架构在线广告系统的技术架构传统企业精确营销系统的典型架构差距分析,希望对你有所启示。

一、在线广告系统的功能架构

不同互联网公司实现的在线广告系统是有差别的,但万变不离其宗,这边以竞价广告系统(最为复杂)为蓝本总结出在线广告系统的一般架构(参考自刘鹏《计算广告》一书),其包括广告投放引擎、分布式计算平台,流计算平台等核心模块,如下图所示。

如何打造一个顶尖的精确营销系统?

1、广告投放引擎

广告系统中必不可少的部分是一个实时响应广告请求、并决策广告的投放引擎,主要有以下几个模块:

(1)广告投放机(ad server):其接受广告前端Web服务器发来的请求并完成广告投放决策,广告投放机的主要任务是与其他模块协作,并将它们串联来完成在线广告投放的决策。

(2) 广告检索(ad retrieval):根据用户标签与页面标签从广告索引中查找符合条件的广告候选。

(3)广告排序(ad ranking):这是高效地计算广告的eCPM(期望每千次展示收益)并进行排序的模块。eCPM的计算主要依赖于点击率的估计,这就需要用到离线计算得到的CTR模型(点击率测算)或流计算得到的实时点击率模型。

(4) 收益管理(yield management):以全局收益最优为目的进行广告投放的调整,这部分一般都需要用到离线计算好的某种分配计划来完成在线时的决策。

(5)广告请求接口:在实际系统中,根据前端接口形式的不同,广告请求可能来自于基于HTTP的Web服务器,也可能来自于移动APP内的SDK,或者其它类型的API接口,不论哪种接口,只要能够提供用户唯一的身份标识ID即可,这里用统一Web服务器来表示。

2、分布式计算平台(离线数据处理)

计算广告最具挑战的算法问题大多集中在离线数据处理部分,离线处理有两个输出目标:

一是统计日志得到报表等,供决策人进行决策时作为参考。

二是利用数据挖掘、机器学习技术进行受众定向、点击率预估、分配策略规划等,为在线机器决策提供支持。

离线数据处理主要有以下几个模块:

(1)用户会话日志生成: 从各个渠道收集的日志需要先整合成以用户ID为键的统一存储格式,这样的日志称为用户会话日志,整理的目的是为了让后续的受众定向过程更加简单高效。

(2)行为定向:完成用户日志的挖掘,根据日志中的行为给用户打上标签,并将结果存储在用户标签的在线缓存中,供广告投放机使用,在在线广告中占据非常重要的地位。

(4)上下文定向:这部分包括半在线页面抓取和上下文页面标签的缓存,与行为定向互相配合,负责给上下文页面打上标签。上下文页面是WEB页面广告特有的形式,因为用户访问的渠道即页面也能表征爱好。

(5)点击率建模:它的主要功能是在分布式计算平台上训练得到点击率的模型参数和相应特征,加载到缓存中供线上投放系统决策时使用,比如预测投放哪个广告点击率会高。

(6)分配规划:这部分为在线收益管理模块提供服务,它根据广告系统全局优化的要求,利用离线日志数据进行规划,得到适合线上执行的分配方案。

(7)商业智能:即BI系统,这在很多企业都是相对成熟的。

(8)广告管理系统:这部分是与客户交互的接口,客户通过广告管理系统定制和进行广告投放。

3、流计算平台(在线数据处理)

在线数据处理基本上可以认为是离线数据处理的镜像功能,它是为了满足广告系统对实时数据反馈的要求,解决那些离线分布式计算平台无法快速响应的计算问题,在线数据处理主要包括以下模块:

(1)在线反作弊: 实时判断流量来源中是否有作弊流量,并且将这部分流量从后续的计价和统计中去除掉,这是广告业务非常重要的部分。

(2)计费:这部分同样是计算广告关键的业务功能之一,对于预算耗尽的广告,必须马上通知广告索引系统将其下线。

(3)在线行为反馈:包括实时受众定向和实时点击反馈等部分,这部分是将短时间内发生的用户行为和广告日志及时加工成为实时用户标签以及实时的点击率模型特征,这部分对于在线广告效果提升的意义重大,在很多情况下,把系统信息反馈调整做得更快比把模型预测做得更准确效果更显著。

(4)实时索引:广告的索引由于涉及预算调整等商业环节,因此必须在投放管理者调整以后实时的在线上广告索引中生效。

二、在线广告系统的技术架构

在线广告系统的技术架构很多是借鉴Google的,决定了其开源的性质,用开源技术可以解决基本所有的问题,以下是一张技术架构图:

如何打造一个顶尖的精确营销系统?

1、WEB服务器

由于广告系统有高并发,低延迟的性能高要求,Nginx很多时候是广告系统首选的web服务器解决方案,但传统企业其实没有那么高的并发量,因此用weblogic等产品也是可以的。

2、全文检索引擎

实现一个功能全面、效率较高的倒排索引并不是一个简单的事,由于与核心业务逻辑关系不大,可以用开源工具Lucene。

3、数据高速公路

计算广告这样的个性化系统并发高,日志量大,在这类系统中,应该避免对数据做单点的集中式读写,而是尽量应该让数据的处理形成环形的流动,即由数据高速公路将线上日志准实时地送至离线或在线处理平台,再将处理结果存放在缓存中供线上使用,在这样的架构中,一个分布式,高吞吐量的数据传送通道至关重要。在这类工具中,Flume是比较常用的开源解决方案之一,笔者所在企业的营销系统原始信令数据等的采集即是通过Flume+kafka实现的。

3、分布式离线数据处理平台

Hadoop估计是当前业界的标配了,包括分布式文件系统HDFS,计算框架MapReduce,分布式配置和集群管理工具ZooKeeper等等。

4、特征在线缓存

无论是离线计算的受众定向还是点击率模型参数或特征,由于规模较大,一般都无法直接存在在广告投放机的内存中,而是要用独立的缓存服务,在线用的特征缓存有两个显著的特点,首先往往只需要存储简单的键值对,其次是大多时候需要支持高并发的随机读,Redis这种NoSQL数据库是一种解决方案。

5、流计算平台

Hadoop能够处理的数据规模相当可观,但处理的响应速度也难以保证,因此广告在线处理部分,需要一种新型的、能够以数据流的方式对线上日志准实时处理的平台作为基础设施,Storm,Flink等等都是可以考虑的。

6、跨语言通信接口

前面架构图中各个模块之间要广泛地进行数据交互,由于模块需求不同,有时我们会选用不同的开发语言来分别实现它们,为了方便在不同语言的模块之间实现调用接口,避免应用开发者过多将精力放在底层通信,开源社区也提供了Thrift此类产品来支撑。

三、传统企业精确营销系统的典型架构

下面示例了某传统企业的精确营销系统的一种典型架构,可以看到,其各个功能模块跟在线广告系统有事实上的映射关系。

如何打造一个顶尖的精确营销系统?

营销策略和执行中心类似于广告投放引擎,大数据基础平台+标签平台+营销评估中心类似于广告平台的离线数据处理模块,大数据基础平台兼有数据高速公路的职能,事件模块类似于在线广告平台的流计算平台要完成的功能。

1、标签平台

标签库以标签形式统一客户群数据的封装规范和操作风格,实现便捷的定向客户群计算和推送,支持各渠道精确营销的执行。

2、营销策略中心

提供营销策划功能,实现客户群、产品、渠道等营销策略的制定、管理和处理。

3、营销执行中心

基于规则实现与外围系统的互动,实现客户群的渠道投放。

4、营销评估中心

收集营销结果信息并对执行的效果进行评估。

5、大数据基础平台

为标签平台提供基础数据支撑,通过流处理的方式支撑营销执行中心的实时客群投放。

四、差距分析

1、机制上的差别

在线广告系统是个开放平台,具有典型的市场化特征,一边是广告主(买方),另一边是流量主(卖方),还有就是帮助双方撮合的投放平台。

广告主希望花最少的钱(流量成本)获得最佳的转化(收益),流量主希望自己的渠道广告位能卖出更好的价格,广告平台实时的优化用户定向和投放策略,希望能实现全局的最优,双方在市场的博弈中达到平衡,因此收益管理成了在线广告系统非常核心的模块。

精确营销系统是个封闭平台,受到企业内管理机制和流程的约束,更多时候体现的是计划经济,无论是成本预算、营销活动等等。

营销人员既是广告主,也是流量主(市场部门往往控制着渠道资源),更是营销投放的决策者,既当裁判员又当运动员的后果就是其很难以企业总体效益最优的原则去进行营销投放,屁股还是决定脑袋的。

你会发现市场人员说得最多的是自己营销了多少用户,抢占了多少份额,但几乎很少说耗用了多少成本(估计也不会去算),因此,你在精确营销系统很少看到什么收益模块。

很多企业尝试在做业财一体化,希望能对每一笔营销投放都计算出成本,甚至分摊到每个用户,但这种ERP能跟生产系统联动的愿望挑战太大。

你也会发现,在成本还没有事实上成为企业(或某个部门)制约因素的前提下去提精确营销就是耍流氓,很多企业精确营销做不好,首先要解决的是驱动力的问题,而不是能力问题,比如在企业成本还不是问题的大扩张阶段,根本没必要去提精确营销。

在线广告平台所以看起来先进,首先是机制上的成功,你这个企业精确营销做不好,也是受制于企业所在的行业和所处的发展阶段的,当然也受制于这个企业的管理水平。

2、产品上的差距

在线广告系统的精准性更多的体现在流量稀缺的条件下能够基于足够多的产品来做出适配选择,因为没有足够的产品就谈不上选择,更谈不上精准。

但你会发现,很多传统企业的产品数量是非常有限的,或者这些产品对于企业的权重是不一样的,改来改去就那么几个,而在线广告系统投放的产品可是成千上万,因此广告检索、广告排序等成了核心的功能。

对于有限产品的用户做定向判断,靠人的经验也是非常靠谱的,企业数据部门要为业务人员提供那么多的临时取数是有原因的,因为靠人拍脑袋是性价比很高的方式。在线广告的一些核心技术比如点击率预测啥的在这些企业没用武之地,也没有什么实际价值。

很多企业雄心勃勃的做了精确营销平台,但建了后往往没人用,并不能说明数据或技术不给力,而是因为做无可做,边际效益低了,而替换成本太高了。从这个角度讲,业务人员做出了理性的选择。

3、线上的差距

在线广告系统天然就是线上的,其系统架构天然就保证了数据的完整性和高质量,而这是数据驱动业务的最基本的要求。

现在所有大佬都在提企业的数字化转型,最关键的其实就是所有的数据都应该能采集到,而且要确保这些采集到的数据进行自由的流转,在线广告系统的所有算法都是依托于这个前提的。

而大量企业的数字化转型才开始,即使正在推进的企业在数据归集上也是困难重重。

就拿你到处能看到的企业摆摊为例吧,企业摆摊人员在为你受理业务的时候,有多少是有数字化设备支撑的?他们今天咨询、受理的所有信息是否都实时的回传到自己企业的数据中心,这些企业的数据中心能否实时的给出分析和服务的建议?

评估一个企业的数字化能力,其实不用去看它的数据中心,看看它一线人员所使用的设备和系统就可以了。

谈到数据有去无回是很多企业的通病,而数据回不来就就没有评估的可能,更谈不上优化。企业渠道管理的复杂性,大量的线下操作导致了这种现象。

即使你从线下好不容易拿回来了数据,但你的优化迭代速度显然跟线上直接回来差了一个量级。

最近我们在做模型的线上自动迭代,以前优化一个模型1个月,现在只要1天,我们也许并不是做不好模型,而是迭代的次数太少了,这个又是受限于线上的能力。

而你去看在线广告系统,关键词就是基于回传数据的评估,评估再评估,然后迭代,迭代再迭代,当然在线广告系统的算法是其一个核心能力,但首先要做到在线。

4、实时的差距

在技术层面,传统的精确营销系统相对于在线广告系统,最大的差距就是实时的能力。前面的在线广告系统的拥有的实时能力是一般企业精确营销系统难以项背的。

比如实时的点击率模型、实时的全局收益最优模型、实时的用户标签、实时的反作弊及实时的上下文等等,而传统企业的精确营销系统,基本都是以离线分析和建模为核心的。

对于传统的精确营销系统来说,推荐数据的更新往往还停留在以天甚至月为周期的阶段。比如产品推荐大多依赖于T-1的数据进行,你上午刚办了个业务,有可能下午它还会给你推荐同样的业务,比如营销人员今天配置了策略,明天才能生效,这就是受限于实时的能力。

当然企业做营销不能为了实时而实时,但有一点要明确,大数据的4V特征中,实时是一个关键特征,因为时间意味着信息量的差异,而信息量决定了价值,能从实时中挖掘出多少价值取决于企业对于业务和场景的理解。

实时化的趋势是不可能改变的,只要你的企业希望能更好的理解用户,希望能为户提供更好的服务,你的企业就要具备实时感知用户的能力。

运营商很多年前做了基于实时信令的精确营销系统,但这种系统仍然处于应用的边缘状态,还未成为精确营销系统的核心。

现在实时数据中台崛起是一种很好的趋势,实时数据中台是用来改变企业营销基本面的,而不是做个实时应用了事。

当然实时的技术有很多类型,适用不同的场景,采集类的如flume、kafka,处理类的如flink,storm,查询类的如redis、hbase、分析类的如kylin、ES等等。

可以看到,虽然企业的精确营销系统和在线广告系统有很大的相似性,但受限于企业的客观条件,还是需要结合自己的实际一步步来演进。

但在线广告平台的很多理念的确是先进的,里面有很多值得借鉴的东西,特别是技术层面,说它是顶尖的精确营销系统不为过。

  • 暂无推荐