背景
我们的项目会经常举行一些活动,主要是提供一些课程资源、直播视频给用户观看,并号召用户提交一些作品。
后来,产品经理想在活动的基础上,增加“积分兑换”的功能。比如,用户报名了活动、观看了直播、提交了作品、邀请其他用户参与等,都可以获得相应的积分。当活动进行到某个阶段时,可以开启一个“积分兑换”功能,让用户兑换奖品。
因为我们的产品经理只对需求方负责,不对产品负责,所以只好由我们开发来梳理业务模型,下面内容是我对“积分兑换”的一些思考和理解。
核心问题
用户在“积分兑换”中,能做的事情有哪些?
只有两件事:获得积分、消费(支出)积分;用户的这两个行为又都会影响用户的状态:持有的积分数。如下图所示:
从图中可以看出,用户至始自终只有一个”状态“:当前持有的积分数。因此,”积分兑换“的核心问题是:保证用户积分数的准确性。这也是用户在获得积分时,最关心的一个问题。无论有多少种获得积分、支出积分的方式,最重要的要求只有一个:保证用户积分状态的准确。
确定了核心问题,我们再看要如何保证用户积分状态准确。
既然用户每次获得积分、支出积分都会改变用户的积分状态,那么保证状态准确的最简单的方式就是:记录每次获得积分或支出积分的记录。每一条记录对应一次状态变更,积分记录串联成积分状态的动态过程。如下图所示:
那么,到这里为止,我们可以知道,“积分兑换”的核心问题是”如何保证用户积分状态准确“,该问题可以分为两个子问题:用户某个静止状态下的积分值、用户的积分记录。
支撑问题
在前面的两个问题中,”静止积分状态“就是”某个时刻用户持有的积分值“,”积分记录“就是”用户获得、支出积分的记录“。很显然,前者只依赖于后者,那么后者依赖于什么?或者说,每条积分记录中“获得积分、支出积分”的数值是怎么确定的?
很显然,“积分兑换”有一系列的“积分规则”,例如每邀请一个用户参加活动获得10个积分、每观看一个直播视频可以获得5个积分等等。因此,积分记录依赖于积分规则,积分规则支撑了积分记录,如下图所示:
那么积分记录与积分规则是怎样的对应关系?
可以很直觉地得出,每一条积分记录,都唯一对应着某个积分规则,不可能一个积分记录对应两条规则,如果存在,应该把两条积分规则合并为一条规则,两者关系如下图所示:
因为用户在“积分兑换”中有“获得积分、支出积分”两个行为,所以积分规则可以分为:获得积分规则、支出积分规则,前者有”邀请用户、观看直播、提交作品“等,后者有”兑换奖品、赠送积分给其他人“等。那么,积分规则可以分为两个子类:获得积分的规则、支出积分的规则,如下图所示:
在这里,问一个问题:是获得规则多还是支出规则多?
在回答这个问题前,我们先回答前置问题:在活动中引入“积分兑换”要解决的问题是什么?或者说,引入“积分兑换”的目的是什么?
引入“积分兑换”是为了吸引用户更多地使用我们的产品,那么自然希望用户体验更多的功能,因此获得积分的规则要多于支出规则,这样用户才能体验更多的功能,否则就变成用户在不断消耗积分。
因此,获得规则要多于支出规则。
第二个问题,还有什么原因要求支出规则要少于获得规则?
一个是为了控制成本,一个是引导用户,把用户都引导到尽可能少的支出途径上(比如积分兑换),这样才能让用户有一个好的体验。
两种规则形成这样的一个漏斗形状,与之相同的是获得的积分数和支出的积分数:
关键问题
从前面知道,“积分兑换”要有获得积分的规则、支出积分的规则,当我们在一个活动中引入“积分兑换”时,该怎么创建和管理规则?
常见的获得规则、支出规则有:邀请用户获得x个积分、提交作品获得x个积分、报名活动获得x个积分、兑换某个奖品支出x个积分等等,可以看出,获得规则和支出规则都可以映射为 “行为 + 资源 + 细节” 的模式。其中“细节”是对规则的额外约束,比如邀请用户满50个额外获得x个积分或者邀请用户满50个才能获得x个积分,“细节”根据业务需求来设置。
既然我们已经知道,规则是 ”行为 + 资源 + 细节“ 的组合,那么前面的 “创建和管理规则” 的问题,就变成了下面这个问题:
在活动中引入“积分兑换”时,怎么把活动中的“行为、资源、细节”映射为规则?
首先,我们要确定 活动 中有多少资源,比如报名参加、邀请用户参加是增加活动中的“参赛人员”这一资源、提交作品是增加“参赛作品”这一资源、点赞作品是增加 “点赞数“这一资源等等。
其次,我们要确定每一种资源,能够组合的行为和细节,可以邀请用户但不能点赞用户,可以提交、点赞、转发作品但不能邀请作品等等。
因此,在活动中引入”积分兑换“之前,最关键的问题是:先确定活动中的资源范围、资源匹配的行为范围,只有先划定资源和行为的范围,才能制定出合理的积分规则。
此时,用户积分、积分规则、活动资源,三者形成下图所示的一个三层环形结构:
因为位于中间的是活动资源,所以当我们要在活动中引入“积分兑换”时,首先是要划分资源和行为范围,然后才是制定积分规则,最后用户才能获得积分,这才是一个正确的步骤,其中“活动资源、积分规则”都是为了支撑“用户积分“而存在的。
到这里,我们基本就梳理清楚了”积分兑换“中的一些问题和概念,这时又引出了下面的问题:
1、支出积分一般是“兑换奖品”,按照我们前面的介绍,积分规则是基于“活动资源”的,那么在支出规则(兑换 + 奖品)中,奖品 是属于活动的资源吗?
按照前面的介绍,积分规则中的资源都是属于活动的,那么奖品也应该是属于活动的。
这似乎是违反常识的,一般来讲我们会说,“在活动中增加一个积分兑换,可以兑换的奖品有xxx”,似乎奖品是属于“积分兑换”的。如果按照上面的环形结构图,我们应该换一种说法,“活动中有一些奖品xxx要发给用户,需要用户使用积分来兑换,获得积分的规则和兑换奖品的规则是….“,那么此时奖品和就变成了活动的资源。
2、修改规则后,要不要修改已有的积分记录?
修改规则后,只对之后的积分记录生效,对前面的积分记录不生效,不能修改前面的积分记录。因为积分记录对应的是用积分状态的变化过程,用户和我们的核心问题是保证积分状态的准确,如果对历史积分记录进行修改,会导致用户与我们对积分状态的认知不一致。
有一种特殊情况,就是规则修改后,导致用户的积分数增加了,这时最好的做法是新建一个获得积分的规则,比如给指定用户增加积分,而不是修改历史积分记录。
总结与展望
从前面的介绍中,我们整理了活动中引入“积分兑换”时应该考虑的问题,最核心的目标是维护用户积分的准确性,活动资源和积分规则是用来支撑实现这一目标的,其中的关键和难点在于:梳理活动中的资源和行为,映射为积分规则。
我们需要知道,只有当引入“积分兑换”时,才会出现上面的问题,如果没有引入“积分兑换”,那么积分规则、用户积分都不存在,但是活动资源依然存在,因为活动资源是属于活动的,而不是“积分兑换”。也就是意味着,我们可以基于”活动资源“来做更多的事情,比如抽奖、评选等等。”积分兑换“只有在引入时才有价值,真正有价值的是活动资源,所以如果从“活动”角度来看,引入”积分兑换“也只是为了吸引更多的用户来参与活动,丰富活动的资源,切不可舍本求末。
以上内容,仅仅是我作为开发,在工作中的一些思考和理解,不一定正确,仅供参考。