本篇从产品角度来聊一聊技术,力争让非技术人员看懂,我们都做了什么。
现在大部分App内都会存在一个『积分商城』,且会围绕商城开展一系列运营活动,我在上加公司有幸参与了多次活动的开发和设计工作(本身是一名技术人员),那么为了更好的实现活动目标,对以往的活动进行了抽象,总结。本篇重点讲解,在完成活动本身功能同时,技术人员还要做些什么事情。
经过对过往的活动的总结和抽象,我们得到下面两个特点
活动目标:拉新,留存
活动形式:用户通过参与活动,获得虚拟货币,使用虚拟货币兑换奖品
由于这种基于虚拟货币的运营形式,给我们带来了一些难点。
难点1:用户货币如何控制,即给多少的问题
难点在于:货币是要被以兑换奖品的方式消耗掉的,而奖品定价是未知的。
难点2:如何给奖品定价(不能更改)
难点在于:活动上线就要明确奖品定价,奖品数量,由于用户获得货币数是未知的。
忽然有种陷入无限循环中。从技术角度来思考一下,这两个事件互相等待(循环等待),如何打破死锁?从活动本质出发,重新思考一下,这里有个大的前提,用户体验要好。那么用户体验给我们带来了哪些要求?
货币产生不能有规律。(无规律)
用户货币不能出现断层现象。(无断层)
不能因为奖品定价把用户货币卡在某一个值上(无断层)
那么即便我们实现了产品功能,但是如果出现用户体验的问题,不仅影响活动效果,而且会给直接给活动带来投诉。
针对上述两个问题,进行分析我们得到在奖品定价、货币控制与用户体验三者紧密依赖的关系中,如果我们将货币控制的问题解决,那么其他两点也就迎刃而解。
但其难度已经超越产品功能本身,由于活动参与人数,人均参与次数,和留存数据未知。并且为了用户体验,要做到获得货币无规律,累计货币数据无断层,且商品定价必须在上线前确定。
通过分析,我们将两个难点转换成一个问题。如何在满足用户体验同时控制货币?再次回到用户体验的要求上。经过简单思考,得出如下方案:
无规律:通过随机算法在[m..n]随机返回给用户得到的货币
无断层:基于配置货币的分布区间,调整随机值
深入思考,发现方案有缺陷。
不确定N次随机性情况,单次随机值满足一定的随机性,那么累加后即同一用户货币数多次参与后,是否和单次随机性一致;
按分布区间配置不同的随机值,实现起来增加了系统复杂性,而且不确定分布结果是否能够满足货币分布预期;
由于前两个问题,导致商品价格不准确。那么如何调整实现方案?
如何让分布结果满足货币分布预期?接下来,我们分析下,货币分布预期。刚才提到了“货币分布预期”,货币是要用来兑换奖品的,那么这个预期,实际上就是奖品数量。
将表格转换成图形,我们发现这样一个规律:价值越高的奖品,数量越少,回到刚才分析的结论,这里我们关注的是奖品数量,再次抽象我们得到商品数量的曲线,呈递减趋势。再回到问题本身,“分布结果是否能够满足货币分布预期”,那么我们可以得到结论:
如果货币分布与奖品数量分布趋势一致,那么用户货币分布结果能够满足货币预期。
基于上述结论,我们采用正态分布算法,优化下方案。
为什么选择正态分布算法?由于其随机性,满足无规律的条件,同时其N次随机值累加仍然能够保证其分布依然符合正太分布。再有分布均值右半边匹配奖品数量递减趋势(衰减),能够满足货币分布与商品数量分布趋势一致,同样满足无断层这个条件。在前两个数据满足的前提下,奖品价格能够准确预估。
ps.关于正态分布算法原理及特点,大家请自行翻阅大学教材。
难点3:如何保证活动公平性?
难点在于:有作弊用户,如何识别作弊用户
导致活动丧失公平性的原因是因为存在“作弊用户”,现阶段传统的基于用户特征,ip,请求频率,次数等,已经完全无法防止或者说无法识别出来作弊用户了。因为作弊用户很专业,他们会不仅会写代码,而且他们租用vps设备。那么我们就没办法了吗?在移动端如何识别作弊用户。
仔细分析下用户行为:
正常用户
作弊用户
基于上述分析,发现作弊用户缺少真正操作的行为,那么我们得出方案:通过大数据实时分析用户行为,来识别出作弊用户。实现方案如下:
本篇,总结了往期活动中的3个难点问题,希望大家有所收获。总而言之,言而总之,核心思想是我们在具备PM所无法触碰的技术高度同时,更要站在产品角度来优化产品,思考用户体验,在过程中,思想高度最为关键,所以follow your user。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。