营销自动化系统设计与实现
随着业务发展,产品和运营对营销的诉求越来越强烈。简单的营销工具(发券、领券、发消息等工具)在支持复杂的营销场景时,效率比较低。营销自动化系统就是为了解决这种多步骤的复杂营销场景:让产品运营的营销思路通过可视化的“画布”进行定制化实现;在整个营销活动执行中,可进行执行结果监控,提供通用的漏斗分析和间隔分析。
本文从需求分析到方案设计去讲解我们的营销自动化系统整体设计。后面会出系列文章去针对营销自动化系统的技术细节进行介绍,欢迎大家关注。
需求分析
1.营销的本质
2.营销通用的模式
商家先定制营销规则,并通过一定渠道通知用户; 用户参与(分享、参与抽奖、使用优惠券下单); 用户满足营销规则,进行一定的奖励(发优惠券、发实物、打折)等。
3.运营人员如何做营销?
4.理想化的方式
方案设计
1. 系统应该支持什么能力?
支持用户定制化营销方案的能力; 自动执行复杂多步骤、多分叉的能力; 支持系统主动触发用户的能力; 监控用户行为的能力; 用户参与活动的频次等风控能力;
2. 架构如何设计
营销自动化应用:类似IDEA、eclipse等开发软件,用户可通过应用层将自己的营销idea描绘出来。 营销自动化API:类似Java、scala语言,定义了一套营销自动化系统接入的规范。 营销自动化翻译器:强绑定上层的API,定制化API翻译器,类似Javac、Scalac,将API创建的结果翻译成营销自动化引擎可识别的数据格式(类似字节码); 营销自动化引擎:类似JVM,按照一定的数据格式(类似字节码)和模型进行执行。
3. 营销自动化引擎从模型到功能
并行:是指用户在活动周期内可同时存在n条生效的营销路径,n=frequency(参数次数);
串行:是指用户在活动周期内有且只有一条生效的营销路径,只有上一条营销路径结束后才可生效下一条营销路径,可重复参与n次,n=frequency(参数次数);
可支持用户行为组合为一个触发条件(trigger):比如:事件1且事件2、事件1或事件2、(事件1或事件2)且(事件3或事件4)
可源于系统监控行为(system monitor):系统定时、某个行为后延迟多长时间、空间定位
用户行为(我们称之为事件(event)):用户在某个时间内消费满足100元、用户在某个时间搜索了某个关键字、用户在某个时间点击了目标按钮或链接等;
点(point)代表对用户的营销行为(marketing action):
满足触发条件(trigger)后,即可对用户产生一组营销行为(marketing action)
营销行为(marketing action)包括:消息push、发放优惠券、发放奖品、商品打折、资源点赠送等;支持一组营销动作的执行,多个营销动作的执行顺序可支持三种:
并行(parallel): 多个营销动作可同时执行,互不干扰;
串行(serial): 多个营销动作之间顺序依赖,必须前置营销动作执行成功方可执行;
优先级(priority):多个营销动作优先选择执行,优先之前前置动作,前置动作执行成功,则不再执行后续动作;如果前置动作执行失败,可选择执行后续动作;
4. 营销自动化引擎整体设计
状态控制:是整个营销自动化引擎的核心,基于FSM模型实现了对用户参与活动状态的控制。
时间控制:基于redis实现了分钟级的定时控制,基于crontab实现任意时间的定时控制以及支持基于上一步操作的延时控制能力。
事件规则控制:该模块是负责对用户的营销行为(即事件)进行监控,对用户的营销行为(事件)进行规则校验,只有满足校验规则的事件才能进行状态控制模块去驱动相应的营销动作(Marketing action):
(productId == 1 || productId == 1) && (cityId == 2)&& (price >= 20) -> [[productid eq 1,productId eq 1],[cityId eq 2],[price lte 20]];
动作执行控制:该模块负责执行系统对用户的营销动作(例如:发短信、发优惠券等)。当状态控制进行每一次状态变更后,都会通知该模块去执行营销动作(Marketing action)。
监控中心:该模块负责对营销自动化引擎的每个环节进行监控报警。 异常处理:该模块使用了自研的自助重试系统实现。对于系统中每个环节可能存在的异常都进行了定制化重试策略,可系统自动化恢复大多数的异常数据。当存在待定的异常数据时会发出报警,可通过自主化重试平台进行人工干预处理。 数据仓库:从用户参与活动,到活动结束,我们需要知道用户做了哪些行为(event)、系统对用户做了哪些营销动作(action)、event->action的变化过程是什么样的,因此数据仓库中包括:触发条件数据(trigger data)、营销动作数据(action data)、用户营销状态变化数据(user campaign state flow data)。依赖这些数据,可进行通用的漏斗分析和间隔分析,也可根据特定的活动场景,与其他业务数据做关联进行定制化的效果数据产出。
总结&展望
福利环节
为了鼓励优质内容传播,【58技术】公众号近期会持续推出不定期活动奖励。
评论区互动留言,即可参与此次活动
留言转发集赞,点赞量前三名(点赞数需大于10)可获得定制版新年代码台历一本
活动时间:截至2021年1月21日