这是傅一平的第338篇原创

【与数据同行】已开通综合、数据仓库、数据分析、产品经理、数据治理及机器学习六大专业群,加微信号frank61822702 为好友后入群。新开招聘交流群,请关注【与数据同行】公众号,后台回复“招聘”后获得入群方法。

正文开始

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

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

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

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

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

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等等。

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

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

注:在线广告系统的功能架构、技术架构参考自刘鹏的《计算广告》一书。

如何建设一个标签库?

产品的天机和成败:我的实践史与俞军的方法论

工作六年,我总结了一份数据产品建设指南

BI(商业智能)的未来?

超越BI,数据产品的前途在哪里?

数据产品经理,并不是数据 + 产品经理

五年数字大屏之路,“述说”着我们大数据变现怎样的故事?(附演示视频)

为什么你的标签库没人用?

重新认识数据可视化

降维打击:流量造假者,我知道你昨天干了什么?

十年的标签库建设经历,我得到了什么启示?

拥有敏捷数据交付平台(DataMaster)是怎样一种体验?

为什么微信公众号的用户分析功能这么弱?

为什么就做不好数据产品的体验?

百万标签发布了,这是怎样一种体验?

我们是如何来设计互联网大会上“城市24小时”这块数字大屏的?

直击传统商业五大痛点,如何打造一个爆款的商圈洞察产品?

照亮自己,点亮他人,详解浙江移动“神灯”大数据!

连续发布十款大数据产品:浙江移动赋能金融行业

大数据洞察类产品如何才能规模变现?

如何走出大数据洞察报告变现的困境

为什么没人愿意为大数据洞察报告买单?

终端企业需要什么样的第三方分析报告?

业务为王,这两年我们采用的那些数据产品和技术引擎

一座城、一块屏、用大数据讲述城市的故事

为什么数据从业者要学点产品思维?

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

  1. 树莓派打造一个适合音乐制作的系统(效果器部分)

    我打算挂载LV2插件将树莓派作为效果器使用,之前我们已经创建好了I2S二进二出声卡,请详见树莓派打造一个适合音乐制作的系统(声卡部分)_huanghaoAudio的博客-CSDN博客 1.下载安装LV ...

  2. java门禁系统实训,Java 并发课题 : CyclicBarrier 打造一个安全的门禁系统

    Java 并发专题 : CyclicBarrier 打造一个安全的门禁系统 继续并发专题~ 这次介绍CyclicBarrier:看一眼API的注释: /** * A synchronization a ...

  3. 如何打造一个搞垮公司的中台系统?

    点击"技术领导力"关注∆  每天早上8:30推送 作者| Mr.K   整理| Emma 来源| 技术领导力(ID:jishulingdaoli) 老K写了不少研究中台的正经文章, ...

  4. 通过LECPServer打造一个免费开源的SCADA系统

    SCADA 数据采集系统,简称数采系统,在工业控制和工业自动化领域,都是一个必不可少的系统工具:传统的数采系统,一般会使用 Labview 软件,通过与PLC和控制系统交互,获得数据,然后再写入数据库 ...

  5. 电商系统_如何打造 一个完美的电商系统

    紧随电商发展趋势,打造符合客户自身的电商路径. 多用户商城系统: 多用户商城系统以B2B2B2C的理念出发,创新模块化设计,自营.招商.批发.供货.分销.城市站点.区域代理.O2O门店,一套系统即可搞 ...

  6. java课设电子门禁_Java 并发专题 : CyclicBarrier 打造一个安全的门禁系统

    继续并发专题~ 这次介绍CyclicBarrier:看一眼API的注释: /** * A synchronization aid that allows a set of threads to all ...

  7. 【Windows系统笔记】打造一个适合自己的windows系统

    文章目录 一.使用`Win+R`快速调用软件 1. 打开设置 2. 进入系统信息 3. 打开高级系统设置 4. 找到`Path` 5. 测试 二.CMD批处理文件夹 (一)创建多个文件夹命令 (二)删 ...

  8. 树莓派打造一个适合音乐制作的系统(声卡部分)

    之前有讲过如何做一个非USB的具有输入输出的声卡,目前现成的方案有WM8731或者hifiberry DAC+ADC pro,他们都是在启动时加载驱动的,但如果我们想要使用其他的codec,怎么办呢? ...

  9. CyclicBarrier 打造一个安全的门禁系统

    cyclic的意思是CyclicBarrier当等待的线程全部释放之后,可以重复使用.(英语水平就这样了....)  CyclicBarrier 类似一个闸门,指定数目的线程都必须到达这个闸门,闸门才 ...

  10. Java 并发专题 CyclicBarrier 打造一个安全的门禁系统

    分享一下我老师大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow 继续并发专题~ 这 ...

最新文章

  1. 开发日记-20190423 关键词 模块化完整方案实现 blog读后感
  2. sniffer使用查网络故障
  3. BZOJ 1488 Luogu P4727 [HNOI2009]图的同构 (Burnside引理、组合计数)
  4. 单机和分布式场景下,有哪些流控方案?
  5. CS229 1 .线性回归与特征归一化(feature scaling)
  6. Redis数据结构——整数集合-intset
  7. 大话数据结构第四章栈的应用
  8. 识别产品外观的合格软件_瑞视特产品贴码字符识别检测系统介绍
  9. 第六届中文语法错误诊断大赛,哈工大讯飞联合实验室再获多项冠军
  10. svn diff和vimdiff的使用
  11. MySQL的JDBC下载
  12. 详解傅里叶变换与拉普拉斯,Z变化的联系
  13. Phaser3之 load
  14. Java Web 代码审计
  15. Method threw ‘java.lang.NullPointerException‘ exception. Cannot evaluate com.sun.proxy.xxx
  16. Python用python-docx抓取公众号文章写入word
  17. 9小时突破1000亿,你以为这就是阿里双十一的最大胜利?
  18. 用selenium爬取拉勾网职位信息及常见问题处理
  19. linux带gui的服务器和gnome,请求指点:Server with GUI 和 GNOME Desktop 的区别是什么?...
  20. 软总线源码分析8:传输模块

热门文章

  1. Not showing null elements
  2. SPSS(一)进行单因素方差分析及多重比较检验(图文教程)
  3. 视频切割:python将视频文件按秒存储成图片
  4. mysql获取某天的开始时间和结束时间
  5. stm32正点原子和普中或是野火哪个好?
  6. html空格符的代码用转义字符怎么表示,html空格符号标签 空格符号怎么打出来HTML?...
  7. 2020年最酷的十个无人机项目(下)
  8. JAVA 通过wContour和geotools实现等值面分析、裁切、出图
  9. ems苹果专线投递速度_苹果官网运抵速度让人欲罢不能
  10. 不规则四面体知道六边的体积公式