下面例举几个典型的电商网站的个性化服务案例:
根据这些典型的个性化服务案例,我们可以看出个性化服务是依据客户属性、行为等特征,来识别目标客户,进而向客户提供、推荐相关的个性化信息、服务,以满足客户的需求。从整体上说,个性化服务打破了传统的被动服务模式,能够充分利用客户自身的资源,主动开展以满足客户个性化需求为目的的全方位服务。
通过个性化服务案例,我们归纳出电商网站进行个性化服务实施所需要具备的两个基本的步骤:
1. 识别目标客户
2. 提供个性化服务
一个完整的服务场景是通过两个串联的步骤有序完成,首先电商网站动态的
收集客户属性、行为等特征,将具有相同属性或者特征行为的客户进行整理、分类、归纳到特定的目标客户群,最终电商网站主动向目标客户群提供个性化的服务。
那么,基于Hybris电商平台构建的电商网站,如何一步一步的提供个性化服务呢?近期,我们利用Hybris多个服务模块特点,成功的将个性化服务引入到某大型电商网站,并取得了很好的效果。下面,我们将为读者分享这个实践过程。
对Hybris有使用经验的读者可能都知道Hybris提供个性化模块。但这个个性化模块是基于我们前面提到的第一步的结果来提供个性化服务。例如,当客户A登录到系统中,而客户A 已经被归为化装品产品系列的金牌客户,个性化模块依据这个分类,按照事先定义好的金牌客户的促销手段去展示一个买一送一的商品。
那么如何做到第一步,如何把客户归类就成为这个解决方案中很重要的一环。很自然想到的就是通过线下的方式,例如运行一个周期性的Job去扫描数据,来进行数据分析,提取客户特征,进而进行客户的分类。这种依赖于整体数据扫描的办法会有很大的计算量并且实时性比较差。我们希望在客户购买了某个商品之后,购买额达到一定程度就立即将其归为某一个特殊的客户群并在客户此次浏览网站的时候就会看到相应的内容。那么,如何做到高效和实时呢?这就是我们要介绍的解决方案中的另一个关键模块 — 规则引擎模块。
在Hybris中,规则引擎模块主要是用于促销的业务,所解决的问题是为让电商网站中的所有客户平等的获得享受促销的权利。换而言之,这是一种广泛性的促销应用。那么,如何提供个性化的促销服务呢?这就是我们在项目实践中一个创造性的应用,即把规则引擎用于个性化的服务。
下面我们先从体系架构上把规则引擎模块和个性化服务模块如何集成在一起进行阐述,接下来会针对这两个模块逐一细化具体使用的要点。
一个完整的个性化服务场景是通过两个基本步骤有序串联完成。因此,规则引擎与个性化模块需要有效的集成在一起,最终为电商网站提供一整套全方位的业务服务。为此,我们在架构体系中引入另外一个自定义模块,通过这个自定义模块有效的将规则引擎与个性化模块集成在一起,减少集成过程中出现业务,代码相互浸入的问题,保持模块的功能单一性原则。
在选择规则引擎模块后,我们抛出了一种假设,是否需要定制化规则引擎模块?由于Hybris自身的实现机制,当前的规则引擎是服务于促销的,也就是说规则引擎是通过Promotion Source Rule来驱动执行的。但是我们面对的业务是收集客户的属性与行为,显而易见,业务的不同让继续使用Promotion Source Rule变得不合理。因此,创建新的Segment Source Rule不仅能够满足当前的业务需求,而且能够与Promotion Source Rule进行隔离,避免交叉影响。
能否快速进行功能性测试,以及代码单元测试是架构设计中需要考虑的一个问题。通过测试能够衡量出模块之间是否存在着深度依赖,而导致局部无法测试的问题。针对于当前的架构,规则引擎与个性化模块处于高聚合,低耦合模式,两者能够独立运行,满足功能可测性要求。
通过自定义模块解决数据存储问题,这部分数据在服务于不同的功能模块同时,又进行中心化存储,便于数据维护工作。
规则引擎与个性化模块提供了友好的维护界面,业务人员可以通过后台系统全方位的进行数据、功能的维护。与此同时,模块内部扩展性很高,易于添加新功能或修改现有功能。
“UserToSegment”模块就是我们前面提到的自定义模块,“UserToSegment”模块不但能够衔接两个模块之间的功能性整合,同时也反应出数据层面上的整合。
个性化模块是通过不同数据模型间的关联联系进行支撑,与数据集成相关的模型如下:
通过数据模型,我们可以发现,个性化服务最终落实在客户群(Segment)上,客户群与客户的映射关系被保存在UserToSegment表中,而规则引擎所反映出的分配结果通过“UserToSegment”模块将两者进行关联,即创建或者修改一条客户与客户群关系的记录。可见,规则引擎为个性化模块提供了必要的基础数据准备。因此,无论是从功能角度,还是从数据角度,“UserToSegment”模块都是完成两个模块集成的最佳切入点,同时这是一种是非侵入式的整合,意味着规则引擎与个性化模块仍然可以独立运行。
到此,我们展现并阐述了个性化服务体系架构,以及明确了规则引擎与个性化模块在体系中各自功能职责,那么这两个模块应该如何具体利用呢?下面,将为读者一一阐述。
收集客户属性、行为等特征是开展个性化服务的依据,体现购物过程中的方方面面,具有动态性特点。通过属性,行为可以衍生出复杂的业务条件用于构建客户群,那么,如何利用规则引擎呢?
首先,将收集客户特征行为所涉及的现实业务条件映射到规则引擎,通过规则引擎的规则条件进行描述。其次,将客户整理,归纳到目标客户群抽象为规则引擎的业务决策。
最终,通过不同的规则条件来驱动目标客户的分类。
基于客户属性,购物行为,产生不同的规则条件。比如:
技术实现:Condition defines
当命中规则条件后,将客户归类到目标客户群是期望的业务决策。
技术实现:Action define
Hybris个性化模块应用在CMS组件以及促销上,并服务于目标客户群。因此,将实际的个性化表现行为抽象为不同的CMS组件,或者促销是利用个性化模块的基础准备,最终借助自动触发机制向目标客户群提供个性化服务。具体实现步骤如下:
到此,我们分别阐述了如何利用规则引擎与个性化模块来处理不同的业务需求。但是伴随着研发周期的推进,新的个性化需求纷纷而至,那么我们将如何应对这些新的挑战呢?
在满足个性化服务基本的需求后,随着业务的延伸,势必伴随着新的挑战。那么,如何在当前的体系架构下来解决新的需求呢?下面,将通过若干例子来为读者介绍。
借助个性化模块,电商网站能够针对目标客户群发布优惠促销,那么带来的问题是:当发布新优惠促销或者更新已有的促销规则后,如何快速地通知到客户群里的客户呢?
解决方案:落实到促销级别上。当促销发布后,通过扩展规则编译监听器的 ”afterComplie”方法能够灵活的集成任何第三方系统(比如:邮件系统),向客户群推送实时的消息通知。
技术实现:Listener define
随着业务的延伸,个性化服务需要提供服务的动态实效机制,当超过失效时间后,系统将自动收回该客户的个性化服务。
解决方案:落实到个性化模块,通过扩展Segment模型,动态的为每个客户计算失效时间,一但超过失效时间,系统将自动把客户从客户群中移除,从而达到服务失效的效果。
技术实现:在Segment模型创建“持续时间”属性(单位:天)。失效逻辑:系统时间与客户分配时间的天数差 大于 持续时间,则服务失效。
相同的促销,每一个客户允许使用的时间是不同的。比如:客户A在2月1日-3月15日内使用;客户B在4月5日-5月12日内使用;那么如何动态分配活动周期为每个客户呢?
解决方案:利用Segment模型“持续时间”属性(单位:天)来动态计算促销活动周期。
技术实现:开始时间:客户分配时间;结束时间:通过持续时间和客户分配时间,推算出结束时间;
通过离线分析客户最近数次购买记录,将客户分配到目标客户群。在客户下一次登陆电商网站的时候,就给出个性化的展示。
本文基于Hybris电商平台对个性化服务的实践进行阐述,着重点在于如何利用Hybris电商平台自身模块进行服务开发。但是,我们同样能够通过其他渠道来实现更加广泛的个性化服务。比如,基于谷歌分析来采集客户的购物行为。创建标签库,并结合个性化的推荐算法使内容标签化,用户标签化,最终通过这些标签为客户提供个性化信息。丰富的个性化推荐算法(比如:基于内容的推荐算法,基于关联规则的推荐算法,协同过滤)以及大数据分析,AI的应用都能够为个性化服务的实施提供强大的基础保障。
随着电商的不断发展,个性化服务显得越来越重要,它能够将网站的浏览者转变为购物者,提高电商网站的的销售能力,以及客户的忠诚度。因此,个性化服务已成为推动电商发展的加速器。
作者简介:杨智,现就职于奥博杰天软件有限公司,担任多个电子商务项目的解决方案架构师。曾担任未来国际软件股份有限公司多个项目的技术负责人,负责政府网站以及政务平台设计,研发。参与国家林业局多个系统集成项目。关注电子商务应用,微服务架构以及DevOps。