让用户天天回来:签到、成就、订阅

工具类小程序最怕被忘记。本文用签到、成就、订阅三件套讲用户留存,并提醒你避开长期订阅的合规红线。

工具类小程序最怕的不是难用,是"忘了用"。这事儿没人提醒,用户自己也想不起来。所以留存不是顺带的,得专门设计。

我做这套留存的时候,还是靠 WorkBuddy 加腾讯混元(hy3)搭的。先说清楚,我不是程序员,在能源行业干了二十多年。下面这三件套,我试过,你照着也能弄出来。

一、留存靠两样东西:给甜头、给提醒

第一样是连续签到加成就页。我定的里程碑是 3、7、15、30、60、100 天,代码里就这么写的:

1
2
3
4
// growth/checkin/checkin.js
const MILESTONES = [3, 7, 15, 30, 60, 100]
const MILESTONE_NAMES = { 3:'青铜打卡', 7:'一周达人', 15:'半月坚持',
  30:'月度之星', 60:'双月不渝', 100:'百日坚守' }

第二样是订阅消息,把人"唤"回来。

想不出招的话,把这句给 AI:
“我的小工具上线后没人回来用,帮我想 3 个不惹人烦的留存手段:短期激励、长期荣誉、定时提醒。”

我自己的体会:签到给的是当下那点甜头,成就给的是"我好像坚持得不错"的面子,提醒解决的是"压根忘了"的问题。三样各管一摊,缺一样都不够。

二、成就系统:把"进步"做成看得见的徽章

我在 growth/utils/achievements.js 里定义了一组成就,到了阈值自动解锁:

1
2
3
4
5
6
7
// 累计记录 10 次 → 小有坚持;连续签到 30 天 → 月度之星……
const ACHIEVEMENTS = [
  { id:'first_record', name:'初次记录',  icon:'🌱', threshold:1 },
  { id:'records_100',  name:'百炼成钢',  icon:'💪', threshold:100 },
  { id:'streak_30',    name:'月度之星',  icon:'🌟', threshold:30 },
  { id:'types_3',      name:'多面手',    icon:'🎯', threshold:3 },
]

我琢磨成就这东西,本质是给人一点反馈。你天天记,自己其实没感觉,可一旦蹦出个"百炼成钢"的徽章,你会觉得"哎我这几个月的劲没白使"。人就是需要被看见。

让 AI 帮你设计也行:
“帮我把用户用我工具这件事,设计成一套成就体系:列 5 个低成本、能激励人持续用的成就点和解锁条件。”

三、订阅消息选型:这里有个合规的坑

说个容易踩的坑。习惯类、工具类的小程序,不在长期订阅开放的类目里(那是政务、医疗、交通那些)。长期订阅你想申请也申请不下来。

所以「简单记」用的是一次性订阅:每次要提醒之前,用户授一次权,授权完发对应模板(真实模板 ID 在 utils/subscribe.js):

1
2
3
4
5
// utils/subscribe.js —— 一次性订阅,授权 1 次 = 1 条额度
const SUBSCRIBE_TPL = {
  todo:     'afe51P28qgCDkaqcdPCiVS6_Hx0qTJgwif1igUKSv_E', // 待办事项提醒
  schedule: 'O2_iBBWk4EkwD2tUoCJXsQk4Me3zNxKFWsRaaYRhCcs'  // 日程提醒
}

定时下发靠 dailyReminder 云函数,每 15 分钟扫一遍昨天的记录,对着"昨天这会儿"的窗口才发,再用 reminder_log 去重,免得同一条提醒发两遍。还有个细节,云函数之间互相调用拿不到 OPENID,所以 dailyReminder 得显式指定 touser 才发得出去。

我建议先看清自己属于哪个类目再动手。类目压根不在长期订阅开放范围里,却按长期订阅的思路先把功能搭好,等提交审核才发现走不通,前面下的功夫全白费。

自动化这事儿,不是写好就完。得想明白:什么时候发、发给谁、发重了怎么办。

四、做留存之前,先过一遍这张清单

截图存着,以后设计任何"让人回来"的机制前扫一眼:

留存设计自查
1 有短期甜头吗?(签到/打卡)
2 有长期荣誉吗?(成就/徽章)
3 有"遗忘"的补救吗?(提醒,且合规)
4 选型符合平台类目吗?(别碰长期订阅红线)
5 每次,我都是自己验收的吗?(这条最要命)

收官

回头看这 6 篇,其实是一条线:
想清楚(1)→ 让 AI 提效(2)→ 设计骨架(3)→ 数据双引擎(4)→ 接大脑(5)→ 做留存(6)。

我在能源行业干了二十多年,此前从未碰过写代码。如今却弄出了个带 AI 的小程序,这事放以前我想都不敢想。难的不是写代码,那部分 AI 替我扛了;难的是你得想明白自己到底要什么、做完怎么让人愿意用。这个,AI 替不了你。

路不是自动铺好的。方向你定,活 AI 干,走没走偏你自己看。

还有一条红线我得提一句:分享是做出来的,不是求来的。别去诱导用户转发,先把产品价值做够,该被看见的自然会被看见。

希望所有努力的人都能找到并提升自己的核心价值
使用 Hugo 构建
主题 StackJimmy 设计