话说回来,为啥突然琢磨起徽章系统这事儿了?不是我们产品数据不好看,而是我当时带的那个社区模块,用户留存一直跟坐过山车似的,高了低,低了高。大家用着用着就腻了,总得给他们点盼头。当时我就拍了桌子,决定引入一套成就系统,让用户有点“虚荣心”可以晒。
第一步:别急着画图,先弄明白别人为啥给
我这人做事比较糙,但有一点就是喜欢自己先上手摸一遍。我当时一口气下载了十几个带有成就系统的App,从游戏到社交再到学习类的,硬生生把它们的成就体系全部抄了下来,然后开始琢磨它们的核心逻辑。我发现,徽章这东西,不是说你画得越漂亮越而是它必须跟用户的“痛点”或者“爽点”连接起来。
当时我们家产品经理提出,要弄一堆类似于“登录三百天”的徽章。我直接把他否了。我说,这种徽章价值太低,用户拿到后就完了,既不能刺激他多发内容,也不能让他多互动。徽章必须是核心业务行为的助推器,这是我实践下来总结的第一条经验。
第二步:拆解行为,开始设计“勾子”
明确了目标后,我直接拉了一张Excel大表,开始自上而下地拆解用户在社区里能做的所有行为。我把它们分成了三大类,这就是徽章系统的基本骨架:
- 曝光类(入门):这类徽章目的很简单,就是让新用户赶紧动起来。比如“首次发帖”、“首次回复”、“成功修改头像”。这些徽章我设置得特别简单,几乎是用户注册完五分钟内就能拿到。要的是快速正反馈。
- 深度类(留存):这才是真正费工夫的地方。我设计了跟内容质量和互动相关的徽章,比如“热心肠”(累计帮助十个用户)、“话题制造者”(发布的内容获得超过一百个赞)。为了实现这个,我直接在后台搭了一套简单的积分逻辑,确保每一次点赞、每一次有效的回复都能触发事件计数。
- 荣誉类(稀有):这种就得让用户能吹牛逼了。我特意跟运营同事坐下来磨了整整一下午,定下了几个极难达成的目标,比如“年度评论家”、“月度优秀创作者”。这种徽章我要求视觉上必须跟普通徽章拉开档次,而且数量严格控制,一年就发那么几个。
我当时为了快速验证效果,自己动手用Python写了一个简单的脚本,模拟了用户达到不同成就的触发过程。跑了两次,发现一个大问题:有些深度徽章,达成难度差异太大。比如“累计评论一千条”和“获得十个优质回答”,前者太机械,后者太看运气。于是我赶紧回调了参数,把所有徽章都调整到了“跳起来能摸到”的程度。
第三步:实现逻辑,让系统自己跑起来
在技术实现上,我要求必须足够轻量。我们没有搞复杂的微服务,而是直接在用户表旁边加了一张成就映射表,记录用户ID和已获得的徽章ID。关键在于“如何判定获得?”
我在核心业务代码里埋了大量的事件监听点。用户只要点赞、发帖、回复,系统立刻去查:这个行为是否满足任何一个徽章的条件?如果满足,系统不直接发徽章,而是先记录到待发队列,每隔五分钟跑一次批量发放任务。
为什么不实时发?因为实时发放,如果条件判断复杂,很容易造成卡顿。而且批量处理能让我有时间去处理那些“作弊”行为或者重复触发的Bug。当时我还特意做了一个防回滚机制,一旦徽章发出去,除非是重大作弊被运营手动撤销,否则不能自动收回,保持稀有度。
第四步:视觉升级与动态激励
徽章发出去之后,数据确实好看了,用户活跃度提升了15%。但没过多久,又开始疲软了。为什么?因为他们拿到手了,就没动力了。
我当时决定引入一个“动态徽章”的概念。比如,“持续活跃者”这个徽章,我把它设计成了有时限的。如果你连续七天发帖,拿到这个徽章。但第八天你没发,系统会在第九天早上自动把它收回。这可把那帮用户气坏了,纷纷在群里骂我们是“渣男系统”,发出去的还收回去。
但骂归骂,效果是立竿见影的。用户为了保住那个象征着“尊贵身份”的动态徽章,必须保持持续的投入。这种“失去的恐惧”比“获得的喜悦”更能驱动用户行为。
实践下来,我的经验是:徽章系统一定不能是一锤子买卖。要像一条永不停止的传送带,永远有新的目标推到用户眼前,永远有正在倒计时收回的荣誉,这样才能持续地钩住用户。
这套东西跑了半年,现在我们社区的日活跃度比以前稳定多了。下次我再来分享一下,我们是怎么把这套徽章系统和积分商城彻底打通,让虚拟荣誉能换点真金白银的,那个过程才叫头疼。