目录
一、背景
二、养成选型
三、业务架构
四、玩法实现
1. “浇水升级”:构建养成基石
2. “组队合种”:促进用户增长
3. “浇水PK”:激发用户互动
4. “连续签到”:增强用户粘性
5. “下单得水”:提升购买转化
6. “主题联名”:扩大品牌影响
五、总结
一
背景
星愿森林是得物平台首款养成类互动玩法,现已成为平台互动化流量的核心,并集中展示了最丰富的互动玩法。星愿森林以独特的方式吸引用户参与:
核心玩法:用户预先选择心仪奖品并获得树苗,持续给树苗浇水滴,升级至15级即可获得奖品。
互动机制:水滴不仅是树苗升级的必需品,也是连接各种互动玩法的纽带。玩家可以通过完成任务、每日签到、组队合作、参与PK浇水以及其他多样化的任务(如激励任务、投资活动、空降水滴)来收集水滴。
本文将深入探讨星愿森林的发展历程,同时详细介绍其经典互动玩法的设计和实现,展现如何通过相应策略提升用户体验和平台活跃度。
二
养成选型
得物平台过往推出的互动玩法活动包括奖励丰富的“每日签到”、富有趣味的“拆盲盒”、以及抢拍夺宝的“夺宝大作战”。然而,我们发现平台上缺少长期吸引力的养成类玩法。因为引入养成类玩法具有以下优势:
提供了一种趣味方式,如浇水和兑奖,吸引用户在平台上互动。
增加用户粘性,保证用户持续活跃,如日常任务和奖励,提升用户活跃度。
长周期的养成过程显著增加了产品的市场活跃时间。
能提升用户核心行为,对于用户增长的AARRR(获取、激活、留存、收入、推荐)流程都起到很大促进作用。
通过合种、邀请助力等互动功能,增强用户间的社交体验。
特别是,目标导向型的成长类养成玩法带来以下好处:
目标前置:用户初期即可选择心仪奖品,增强目标感和价值感。
持续参与:通过分解长期目标,如将养成过程分为多个阶段,降低难度,保持用户的高度参与。
玩法多样化:引入PK玩法、无人机洒水等趣味元素,丰富玩法体验。
基于这些优势,星愿森林决定采用目标导向型的成长类养成玩法,以增强用户粘性和玩法体验。
星愿森林-成长类养成玩法
每日签到-积分类养成玩法
拆盲盒玩法
夺宝大作战
三
业务架构
从上图可以看出星愿森林的业务架构:
基础配置包括常量配置与等级配置,常量配置是便于运营调整奖励数值而预设的参数列表,等级配置是星愿森林的核心配置,包含小树等级、等级所需水量以及升级奖励(水滴、优惠券等)。
养成基础层则是用户在选定目标奖品后,经历创建账户、种植小树、浇水升级等环节,直至小树满级,最终兑换奖品。
最上层是各类互动玩法,有基于养成核心开发的组队合种玩法、有独立7天打卡玩法、有可获得水滴的任务与其他互动玩法,以及电商相关商业转化类玩法等。
接下来,让我们来了解星愿森林具体的玩法实现。
四
玩法实现
介绍养成玩法之前,我们先了解下新用户流程,星愿森林打造了极简的新用户入门流程:“用户首次进入即可选择心仪的奖品,迅速投入种树。” 这一流程有如下亮点:
目标驱动:直接展示目标奖品,提升参与动机。
快速开始:自动创建账号和树苗,即刻开始养成。
持续激励:等级提升解锁新玩法,维持用户兴趣。
加载页
预先选奖
浇水引导
升级解锁
“浇水升级”:构建养成基石
星愿森林的养成基础玩法是:用户通过种植和浇水升级,直至达到15级以兑换奖品。核心在于等级与浇水升级的设计。以下是等级设计的几个关键要素,它们共同构成了养成的基础:
等级目标:设定清晰的等级目标,让玩家知道他们努力的方向。
升级奖励:在每个等级或特定的等级阶段提供奖励,以激励玩家继续参与。
难度曲线:平衡种成难度,确保种成周期与成就感并存。
同时等级设计是为浇水升级服务的,因此浇水升级是养成的基础流程。
浇水升级流程:
通过前置选奖,激励用户种树浇水。
浇水后,根据等级配置,小树升级并下发升级奖励。
最终浇水满级,用户获得兑奖资格,兑换目标奖品。
浇水升级的实现
浇水升级的实现主要依赖两张表:等级水滴配置表(tree_level)及小树表(user_tree):
tree_level中的upgrade_reward属于用户运营配置,激励用户浇水升级。
user_tree中保存小树当前等级、进度、已浇水滴等字段。
关键数值的计算公式:
当前等级升级需要水滴
下一级升级需要水滴
已浇水滴
等级
水滴
进度
如下为浇水操作的伪代码:
`// user_tree 用户小树信息``// tree_level 树等级配置信息``func watering(uid, user_tree, tree_level) {` `lastLevel := 15 // 最终等级` `ut := user_tree` `// 根据userGroup获取当前等级的配置所需水滴(可能与当前配置变化)` `levelNeedDroplet := getLevelNeedDroplet(tree_level, level)` `nextLevelNeedDroplet := getLevelNeedDroplet(tree_level, level+1)` `totalDroplet := ut.watering_droplet + onceWateringDroplet`` ` `// 更新浇水后水滴与进度` `ut.watering_droplet += onceWateringDroplet`` ut.process = ut.watering_droplet/levelNeedDroplet * process_base` `// 判断浇水总水滴是否可以升级` `upgrade := levelNeedDroplet <= totalDroplet` `if upgrade {` `// 未满级` `lastLevelDone := lastLevel <= ut.level` `if !lastLevelDone {` `ut.level++`` //计算可用于下一级的剩余水滴及进度` `ut.watering_droplet = ut.watering_droplet-levelNeedDroplet` `ut.process = (ut.watering_droplet)/nextLevelNeedDroplet * process_base` `//领取升级奖励` `sendUpgradeReward()` `}else {` `//满级逻辑` `ut.level = lastLevel` `ut.process = process_base` `}` `}` `//更新树信息` `save(ut)``}`
“组队合种”:促进用户增长
上一节浇水升级是个体用户的玩法,而依托口令中台的基础能力,星愿森林通过创新的组队合种玩法,有效实现了用户增长和社交互动的目标。目前用户合种树数量占比50%,这一数据凸显了合种玩法的广泛吸引力和重要性:
利益捆绑:组队合种策略将用户的目标和利益紧密结合,鼓励他们相互监督,共同提升活跃度。
社交裂变:通过组队邀请,用户能够快速升级,这一机制不仅促进了社交分享,还实现了用户基础的快速扩展。
增强在线活跃度:合种玩法增加了玩家同时在线的人数,激发了他们的参与热情。
组队合种不仅加深了用户的参与感,也为我们带来了显著的用户拉新和裂变效果。
发起合种
接受合种
确认合种
合种成功
组队合种流程:
合种流程是用户A发起合种后,系统将自动生成口令并跳转至站外,用户A引导好友用户B复制口令回到站内预览合种结果并加入合种。
同时通过奖励提高用的合种意愿:
透出首次合种可得x水滴,激励用户完成首次合种;
合种期间持续透出“最高提速x%”的利益,激励用户提高队员数量。
组队合种的实现
星愿森林在实现组队合种功能时,考虑了两种不同的方案:
独立目标组队:这种模式下,只在用户关系建立队伍,每个队员的目标保持独立。该方案优势在于规则简单,缺点是利益关联不强,激励效果不佳。
统一目标组队:选择此方案,队员们共同达成统一目标。通过绑定利益,鼓励队员们相互督促协作,从而提高整体活跃度。但是实现更为复杂,且队伍变化会影响目标进度,存在客诉风险。
经过慎重考虑,星愿森林决定采用方案2。这一决定意味着我们需要解决一些技术挑战,尤其是当队伍成员发生变化时,如何高效地重新计算合种树的状态和进度。我们最终按照如下方式计算合种树的信息:
将所有队员当前小树等级与进度,通过等级数值配置换算成已浇水滴,从而得到所有队员的小树贡献水滴总和;
再依据合种等级数值配置,将贡献水滴总和换算成合种树的等级与进度。
伪代码如下:
`minLevel := min(t1.level,t2.level) //最低等级` `maxLevel := max(t1.level,t2.level) // 最高等级` `lastLevel := 15 // 最终等级`` ` `totalDroplet := 0 // 队员升级的所有水滴` `for lv :=maxLevel; lv >=minLevel; lv--{` `totalDroplet += t1.upgradeDroplet()` `totalDroplet += t2.upgradeDroplet()` `}`` ` `var teamTree // 合种信息` `//从minLevel遍历至lastLevel` `for lv :=minLevel; lv <=lastLevel; lv++{` `levelNeedDroplet := sum(members.currentLevelDroplet()) // 获取当前等级需要水滴`` ` `teamTree.setCurrentLevel(lv) // 设置合种树等级` `if totalDroplet < levelNeedDroplet {` `teamTree.setProcess() // 设置进度` `teamTree.setDroplet() // 设置树的水滴` `break` `}`` ` `if lv == lastLevel {` `teamTree.setLevelFull() //设置满级` `break` `}` ` ` `totalDroplet -= levelNeedDroplet // 剩余水滴计算下一等级` `}`` ` `return teamTree`
我们还有其他与合种类似的社交裂变玩法:
邀友得水邀请&还原
联名活动邀请&还原
“浇水PK”:激发用户互动
PK是竞技体育中的一种常用竞技方式,促进用户的互动之外,有很强的可扩展空间。因此星愿森林借鉴并引入浇水PK玩法,它有如下好处:
对手随机匹配,人机、真人均可,可操作性强,同时能加强用户间的互动;
浇水次数近实时展示,给到用户即时反馈,让用户具有紧张感;
持续的限时浇水,可以增加用户停留时长,激励用户浇水。
浇水PK流程:
PK触发条件:当用户浇水次数达到预设值x次,系统将自动为用户匹配PK对手。
参与PK:用户在收到PK邀请后,选择是否参与PK挑战。
PK进行:用户确认参与后,浇水PK正式开始。
结果判定:在规定的PK时间内,系统将自动计算双方在PK期间的浇水次数,并据此判定PK结果
奖励分配:根据PK结果,胜者和败者都能获得不同额度的水滴奖励,以鼓励用户的参与和努力。复活机制:若用户在PK中失败,系统提供复活选项,允许用户重新挑战,继续参与。
这一流程旨在为用户带来紧张刺激的竞技体验,同时通过奖励机制促进用户活跃度和星愿森林的整体参与度。
参与PK
PK进行中
PK胜利,获得奖励
PK的自动浇水实现
PK玩法中涉及的机器人浇水动作是一个典型的分布式定时任务场景。以下是几种实现分布式定时任务的策略:
延时队列:利用如RocketMQ内置的延时队列,我们可以计算机器人下一次浇水的时间间隔,并将任务发送至队列。任务在预定时间后被消费并执行浇水动作。
分布式调度平台:采用第三方的分布式任务调度平台,例如xxl-job、elastic-job或Quartz。这些平台提供了丰富的任务调度和管理功能。
Redis定时功能:利用Redis的发布/订阅功能或者键过期机制来执行定时任务。
考虑到该场景相对轻量,并且为了减少外部依赖和潜在风险,我们选择使用Redis来实现一个轻量级的时间轮来完成:
用户确认PK开始时,将系统预设的浇水时间戳序列计算并分别写入对应的Redis set;
系统启动时,开启单独的goroutine每隔1s获取当前时间戳下的PK用户Redis set,给用户的PK对手浇水。
无人机(点击即得)
水滴激励(浇水可得)
水滴投资(明日翻倍)
“连续签到”:增强用户粘性
星愿森林的留存玩法有很多,上文的合种玩法中,有全员上线奖励,还有水滴明日翻倍、水滴投资、连续签到领水等留存玩法, 本节将主要通过探讨7天连续签到的实现,在于签到有如下优点:
签到机制简单直观,玩家容易上手,理解成本极低。
通过为连续签到行为提供即时奖励,有效促进玩家的日常回访,增强留存。
精心设计的签到玩法,如附加福利和利益点的展示,不仅提升用户体验,还能激发用户的社交互动和正面传播。
签到流程:
星愿森林的7天连签通过提前透出神秘宝箱、高价领奖权益等利益点,吸引用户7天连续签到,最终达成满签,提升留存,若新用户断签之后,重新从第一天开始并且部分权益可能会消失。
普通水滴模式
神秘宝箱模式
超值奖品抢兑权
签到的实现
签到玩法的实现网上大多有介绍,其数据存储根据具体需求有不同的实现方式:
bitmap存储:需要持续追踪并展示用户每天的签到记录。bitmap不仅节省存储空间,在相关统计时也更为高效。
数据库存储:不要求历史明细,仅关注用户是否签到、是否断签等。
在连续签到玩法中,我们只关注用户是否断签,于是采用方式2实现即可。而上文提到的“每日签到”需要展示用户近2个月签到情况,于是使用方式1实现,如下图:
每日签到首页
每日签到日历页
其他使用签到玩法的场景:
合种玩法全员上线
7天打卡快速玩法(签到、满签、抓好礼、中奖)
“下单得水”:提升购买转化
很多商家品牌面临一个问题:“酒香也怕巷子深”,品牌人群匹配度不高、品牌曝光不足、商品收藏订阅不够从而导致转化不高。我们为解决商家的这些问题,做了许多商业转化的迭代,其中“下单得水”是最直接也是最有效的激励用户下单,提升转化的方式。
下单得水流程:
用户进入活动后,通过支持下单得水滴的功能模块,点击商品进入商详后下单;
系统监听并判断订单是否符合条件,若符合,则将用户所见奖励值写入订单奖励待发放记录;
用户再次进入活动后,系统自动发放对应订单奖励。
商品流下单得水滴
领取下单奖励
下单得水的实现
下单得水的实现主要分为如下场景:
依托任务平台已有的订单消费链路,可实现商品下单、品牌页下单、会场页下单;
依托商品流中台,实现商品feed流下单/下单分层奖励、承接页下单,而且如下图通过对品牌、金额等维度分层,精细化控制奖励发放,做到激励用户的同时,控制成本。
实现商业转化的关键在于准确归因。不准确的归因可能导致用户无法完成任务,错失奖励,进而影响用户体验。以下是星愿森林现有归因的几种实现:
品牌/品牌页下单:通过识别订单品牌是否属于星愿森林合作品牌,实现归因。此方法简单,但可能存在归因范围过宽的问题,即用户通过其他途径下单同一品牌商品也可能错误地发放奖励。
商品流/会场页下单:用户点击商品时,同时上报商品SPU(商品标识)标记。监听订单消息时,系统检查订单SPU是否匹配,并在限定时间内确认归因。这种方法提高了归因的精确度,但需要服务自身实现上报SPU标记。
为确保用户在星愿森林达成目标后能正确获得奖励,我们需采取精细的归因策略,同时配合定期品牌页下单,以提升用户体验。以下是星愿森林商业化玩法的场景:
品牌广告浏览+下单得水滴
承接页下单得水滴
任务列表浏览&收藏得水滴
“主题联名”:扩大品牌影响
联名是指两方或多方品牌联合打造一场活动,可以帮助品牌实现叠加效应,迅速提升品牌声浪,能增强品牌的认知度和影响力,创造独特的消费体验,利用互补优势扩大市场份额,成功的联名营销需要精心策划和执行,以确保实现预期的效果。
截至目前,星愿森林已经开展多期主题联名活动,依托品牌人气设计符合活动风格的短期活动,既能帮助品牌增加曝光、营收等商业指标,也可以提升活动内的拉新等数据。
亚运冲金
春节集福气
迪士尼520集金币
五
总结
本文概述了星愿森林的立项背景、养成选型,并深入探讨了养成核心实现及互动玩法。并抽象化了部分共性较强的玩法流程。另外这些玩法不只是独立作用,也可以相互组合, 比如邀友助力与主题联名活动的组合,拉新效果较平时有数倍的提升。
星愿森林会继续探索更多玩法,提升产品的可玩性。长期目标是将效果收益较好的玩法抽象成组件,助力得物互动业务的快速搭建。因此,后期尝试更多方向:
社交探索:尝试借助邀请等富含用户关系业务的数据,探索基于社交网络的新玩法。
组件沉淀:沉淀已有玩法,创新玩法的快速开发,减少新产品的玩法开发成本。
生态构建:搭建属于得物的互动生态,实现平台玩法的循环经济模式,增强用户对得物互动业务的参与感。
引用:
往期回顾
1. StarRocks跨集群迁移最佳实践|得物技术
2. Apache Flink类型及序列化研读&生产应用|得物技术
3. 可视化流量录制规则探索和实践|得物技术
4. 客服测试流水线编排设计思路和准入准出应用|得物技术
5. 深入剖析时序Prophet模型:工作原理与源码解析|得物技术
文 / 正心
关注得物技术,每周一、三、五更新技术干货
要是觉得文章对你有帮助的话,欢迎评论转发点赞~
未经得物技术许可严禁转载,否则依法追究法律责任。
“
扫码添加小助手微信
如有任何疑问,或想要了解更多技术资讯,请添加小助手微信:
线下活动推荐
快快点击下方图片报名吧!