查看原文
其他

星愿森林的互动玩法揭秘|得物技术

正心 得物技术
2024-12-05

目录

一、背景

二、养成选型

三、业务架构

四、玩法实现

    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模型:工作原理与源码解析|得物技术


文 / 正心


关注得物技术,每周一、三、五更新技术干货

要是觉得文章对你有帮助的话,欢迎评论转发点赞~

未经得物技术许可严禁转载,否则依法追究法律责任。

扫码添加小助手微信

如有任何疑问,或想要了解更多技术资讯,请添加小助手微信:


线下活动推荐

快快点击下方图片报名吧!

继续滑动看下一个
得物技术
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存