免运费三个字让所有测试用户当场注册,积分那一栏他们连自己攒了多少都说不清

免运费三个字让所有测试用户当场注册,积分那一栏他们连自己攒了多少都说不清
张文保 更新 86 分钟阅读 4,411 阅读
本文目录
  1. 免运费三个字为什么能当场说服人,积分那一栏却要先想一会儿?
  2. 折算成本:一项权益要走多远才能变成钱
  3. 同一份研究里,两类权益是怎么被分开的
  4. 这条线在你站上还切开了别的东西
  5. 为什么免运费这条最先被用完
  6. 折算成本其实有三档,不是两档
  7. 那句“我就注册一下,就为了免运费”还有另一面
  8. 积分余额是不是你站上唯一一个用户自己算不出来的数字?
  9. 单边账本在你站上不止一处
  10. 三句话判断一样东西是不是单边账本
  11. 为什么地址就没被压缩,积分就被压缩了
  12. 不信任的成本,比你想的更早发生
  13. 双边账在别的行业长什么样
  14. 用户不信任的三种表现,一种都不产生工单
  15. 同一件事,为什么有的站用户能报出小数点后一位,有的站连来处都找不到?
  16. 流水页做的到底是什么事
  17. 为什么这一条最便宜,却最少有人做完
  18. 验收流水页只需要一个动作
  19. 把流水和账户中心接在一起
  20. 一条流水记录到底该有哪些字段
  21. 要不要保留全部历史,保留多久
  22. 还有一个更隐蔽的坑:跨端不一致
  23. 一分到底值多少钱,为什么连规范里都没给它留位置?
  24. 第一处:schema.org的会员层,只有四个自有属性
  25. 第二处:会员价有起止日期,积分连个有效期字段都没有
  26. 第三处:规范只收整数,而用户嘴里说的是11.5
  27. 三处口子指向同一个方向
  28. 规范默认你会讲好处,不默认你会讲代价
  29. 进层门槛的四种类型,透露了不少东西
  30. 采用率低,对你反而是个消息
  31. 会计准则早就把积分算成你欠的钱,界面上凭什么还写着送你?
  32. 同一样东西,两个部门两套语言
  33. 作废那部分钱有个专门的名字
  34. 为什么慷慨的积分体系在头一年总是好看
  35. 把五个步骤套在一笔真实订单上走一遍
  36. 四个总数,一小时能算完
  37. 知道有这个计划、却一直没去加入的那27%,到底卡在哪一步?
  38. 13%那拨:曝光问题,最便宜也最容易被高估
  39. 27%那拨:定价问题,也就是前面讲的折算成本
  40. 还有一拨人:给多少都不会来
  41. 四段人对应四种不同的动作
  42. 34%和22%要的根本不是同一样东西
  43. 那27%里还能再切一刀
  44. 把分母换掉之后,目标该怎么定
  45. 会员价能进谷歌搜索结果,积分不能,这条差别该怎么用?
  46. 会员价想露脸,得同时满足一串条件
  47. 这条差别在实操里怎么用
  48. 标记本身的几个坑
  49. 一致性检查会先给你查出什么
  50. 会员价不能塞进原价和促销价字段
  51. 还有一件事:这套标记该写在哪一页
  52. 要把会员账本做成能对账的,最少得补哪几块?
  53. 第一块:流水,让每一笔都有来处
  54. 第二块:汇率,把分换算成钱写出来
  55. 第三块:有效期,把作废这件事提前说
  56. 第四块:待入账,把中间态显示出来
  57. 四块之外,还有一个位置问题
  58. 一张对照表,方便直接抄进需求
  59. 两件经常被追问的事:积分商城和进度条
  60. 两周排期的建议顺序
  61. 还有一个所有人都会忽略的位置:结账页
  62. 保哥的失手:一件靠时间自动发生的事,在系统里连一行记录都没留下
  63. 做了什么,结果怎么样
  64. 第九个月,一个我拿不出来的数
  65. 为什么这件事能藏九个月
  66. 这次的原语:没有人做的事,不会有行号
  67. 改了三条
  68. 附带收获:这本账第一次有了共同的量纲
  69. 那个跑批任务当初为什么会那么写
  70. 卡在门槛下方那批人,为什么最该被叫回来
  71. 跟前几次失手的形态,区别在哪
  72. 哪五个数不用新增埋点就能看,又该按什么顺序动?
  73. 五个免埋点指标
  74. 四格交叉,先动哪一格
  75. 一个不建议算的数
  76. 排序法:两维相乘
  77. 挂成卡点,而不是做成专项
  78. 验收只需要一个动作
  79. 五个数怎么排进一张周报
  80. 最后一句
  81. 常见问题解答
  82. 把积分汇率明明白白写出来,兑换率上去了,成本是不是也跟着上去了?
  83. 我们站会员基数很小、积分池也小,这四块还值得做吗?
  84. 积分到底该不该设有效期?会不会显得很抠门?
  85. 我们已经做了到期提醒邮件,站内那行文字是不是重复建设?
  86. 会员价和积分,如果只能先做一个,先做哪个?
  87. 用户跑来说积分对不上,客服该怎么处理才不越描越黑?
  88. 会员计划的结构化数据现在就上,还是再等等?
  89. 权威参考资料

摘要:会员体系成不成,真正的分水岭不在积分给多给少,而在用户能不能自己把它折算成钱。免运费他一秒就算清了,所以看见就注册;积分的来源、汇率和有效期三样全在你手里,他只能猜,猜不动就干脆不参与。这篇从两份可用性研究和三份互不相干的规范切进去,讲清楚积分为什么是一本只有你在记的单边账本,怎么把它改成能对账的那种,以及哪五个数不用新增埋点就能看出用户到底信不信这本账。

免运费三个字为什么能当场说服人,积分那一栏却要先想一会儿?

同一轮可用性测试里,看到会员免运费的受访者全部当场说要注册;而点开积分那一栏的人,连自己的分是哪一单挣来的都找不到。

先看两段来自同一批可用性测试的原话,它们相隔不到几屏,却像是两个星球上的用户体验。

第一段发生在鞋履品牌Cole Haan的移动端。受访者刚进商品页,看到一行“会员享免费陆运”,接下来的反应几乎没有停顿:那我就注册一个账号吧,就为了拿这个免运费。研究记录里更值得注意的是那句限定语——参与这一站测试的受访者,全部都说了要注册。同一句话在Adidas的安卓端又发生了一次,另一位受访者说自己本来就常在这里买,看到入会免运费,那现在就有兴趣注册了。

第二段发生在Nordstrom。受访者已经是会员,她点开了一个叫“你是怎么赚到积分的”的入口,期待里面是自己的积分历史。点进去之后她说:我是看到我的分了,可我不太清楚具体是哪一单让它变成这个数的。她想找的那样东西,页面上没有。

这两段放在一起,很容易被读成“免运费比积分更有吸引力”。保哥觉得这个读法太浅,也没什么用——它只会推着你去把免运费的门槛一降再降。真正的区别藏在用户脑子里那一步算术上。

折算成本:一项权益要走多远才能变成钱

用户判断一项会员权益值不值得,本质上是在做一次折算:把你给的东西换算成他熟悉的单位,也就是钱。这次折算需要花多少力气、需要几条他手上没有的信息,保哥把它叫作这项权益的折算成本

免运费的折算成本几乎是零。运费是多少?他刚在购物车里看见过,是一个带货币符号的具体数字。入会要花多少?零。这笔账是一次减法,在他抬眼的那一瞬间就做完了,不需要相信任何人,也不需要等待。

积分的折算成本高得多。他要回答三个问题才能给这项权益定价:

  • 这一单能挣多少分——通常写着,但常常藏在结算页某个折叠区里;
  • 一分值多少钱——绝大多数站从头到尾不说;
  • 这些分什么时候作废——更少的站会说,而且往往写在条款页第七条。

三个问题里只要有一个答不上来,整笔账就算不下去。算不下去的结果不是他给出一个偏低的估值,而是他直接跳过这项权益,当它不存在。这是很多团队的直觉盲区:我们默认用户会打个折扣去估,实际上人对没法定价的东西的处理方式是忽略,不是低估。

同一份研究里,两类权益是怎么被分开的

Baymard这一轮忠诚度研究投了1900多小时,做了350多场一对一出声思维测试,另外还问了2003位至少参加过一个忠诚度计划的美国成年人。研究本身没有提出“折算成本”这个说法,但它记录下来的用户反应,恰好把权益整整齐齐地分成了两堆。

一堆是当场兑现、单位是钱的:免运费、会员专享价、生日折扣。用户对它们的反应是即时决策,不需要考虑。

另一堆是延期兑现、单位是你自己发明的:积分、星、里程、成长值。用户对它们的反应是先看一眼余额,然后困惑,然后放下。

把这两堆并排放,你会发现它们的区别不是价值大小,是这份价值有没有被翻译成用户已有的单位。一个长期攒分的重度用户拿到的实际让利,很可能远超一次免运费;但让利归让利,他在做加入决策的那一秒钟,手上并没有这个未来。

这条线在你站上还切开了别的东西

折算成本这把尺子一旦拿在手上,你会在自己站上量出一串同样的东西。满减券要凑单,所以它的折算成本比直减券高;赠品要判断自己用不用得上;升级到下一档能省多少,取决于你有没有把差额写成钱。

反过来也一样。有些看着很轻的改动,其实是在给折算成本做除法。把“满300减50”旁边补一句“相当于八三折”,就是替用户做完了那次除法;把“本单可获320分”后面补一句“约等于3.2元”,是同一个动作。这两句话都不改任何规则,不多花一分钱,只是把翻译工作从用户那边挪回你这边。

保哥在给独立站看会员体系的时候,第一步从来不是看积分比例设得合不合理,而是拿一个真实用户的视角走一遍,数一数他要凑齐几条信息才能给这套东西定价。会员忠诚度体系整体怎么搭是另一个层面的问题——那篇讲的是积分怎么设计、层怎么分、权益怎么配,这篇讲的是搭完之后用户信不信这本账。两件事经常被混成一件,结果就是体系越搭越复杂,参与率一动不动。

为什么免运费这条最先被用完

顺带说一个副作用。正因为免运费的折算成本最低,它几乎是每个新会员体系的第一张牌,也是最快被打光的一张。等到全站包邮变成常态,这张牌的边际吸引力就归零了——用户已经不需要入会也能拿到它。

这时候很多团队的下一步是加码积分,因为积分看着便宜、可控、还能算进营销预算。但从折算成本这个角度看,这一步是从一张折算成本为零的牌,换成一张折算成本很高的牌,参与率掉下去几乎是必然的,跟积分给得多不多没关系。运费策略本身怎么配才不亏钱又不丢单是一笔单独的账,但在会员体系这条线上,它是那张一次性的王牌,打之前最好想清楚下一张出什么。

折算成本其实有三档,不是两档

前面为了讲清楚,把权益分成了能折算和不能折算两堆。真拿到实际的权益清单上去量,会发现中间还夹着一档,而这一档最容易被高估。

档位典型权益用户要做什么他会怎么处理
能当场折算免运费、会员专享价、直减券一次减法立刻决策
能折算但要等积分、返现、成长值先问汇率,再赌有效期信息齐就估值,缺一条就跳过
只能相信优先发货、专属客服、优先购没法折算,只能赌你说到做到按过往体验打分,新客一律折半

第三档在很多会员方案里被当成性价比之王——毕竟优先发货和专属客服的边际成本确实很低。但它在招募环节几乎不起作用,因为一个还没跟你打过交道的人,没有任何依据判断你的优先发货到底比普通发货快多少。它真正的价值在留存侧:对已经用过的老会员,这一档权益的说服力反而超过打折,因为他有亲身体验可以定价。

所以这三档的正确用法是分工,而不是排序:招募靠第一档,留存靠第三档,而第二档是唯一一个需要你在界面上补作业的,补不上它就一直是零。

那句“我就注册一下,就为了免运费”还有另一面

Cole Haan那位受访者的原话很值得再读一遍:我就注册一下,开个账号,因为这样能拿到免费陆运。这句话里有一个很朴素的交换意识——他知道自己在用什么换什么,注册这件事的成本和免运费的收益,他在心里对上了。

但这句话的另一面是:这次注册的动机是本单的,不是长期的。他会不会在下次购买时还记得自己是会员、会不会去看积分、会不会因为等级而多买,这句话一个字都没保证。

很多站在这一步得出了错误的结论:既然免运费招募效率这么高,那就多推。推是对的,但要清楚推来的是什么人——为一单权益而来的注册者,和为长期关系而来的注册者,混在一起算留存,得到的是一个谁都不像的平均数。怎么把这两拨人在数据上分开,第十节会给一个不用新增埋点的办法。

顺带说一句,这也是为什么保哥不太赞成把入会门槛做成一次性大额激励。首单立减五十这种设计招来的人,绝大多数的动机结构和上面那位受访者一模一样,只是折算成本更低、金额更大,所以效率更高、噪音也更大。折扣规则怎么配才不被薅这类问题在这个位置会集中爆发,因为一个只为首单激励而来的账号,天然具备被批量复制的动机。

本节这几段受访者原话,全部出自Baymard那份忠诚度UX研究的公开摘要。它背后的口径是1900多小时的可用性测试、350多场一对一出声思维访谈,另外还有一次覆盖2003位美国成年人的定量调研,受访者的门槛是至少参加过一个忠诚度计划——也就是说,这些话不是从局外人嘴里问出来的,是从已经在体系里的人嘴里问出来的。

积分余额是不是你站上唯一一个用户自己算不出来的数字?

购物车小计他能复算,运费他能问承运商,交期他能对着日历数。只有积分,来源、汇率和有效期三样全握在你手里。

把折算成本再往下追一层,会追到一个更硬的东西上:积分余额是用户在你站上唯一一个没办法自己算一遍的数字。

其余的数字他都能核。购物车小计是单价乘数量,他心算得出来;运费的规则写在配送页上,实在不放心他可以去承运商官网查;预计送达日期他能对着日历数;连商品重量、尺寸、材质,他都能拿实物验证。这些数字之所以让人放心,不是因为你写得诚恳,是因为它们全都存在一个你之外的参照物

积分没有。它由你发行,由你计价,由你记账,由你决定什么时候作废。用户手上唯一的凭据,就是你页面上显示的那个数。这在会计上有个很朴素的说法:这是一本单边账。双边账的意思是两个人各记一本、可以对;单边账的意思是只有一本,另一方只能选择信或不信。

单边账本在你站上不止一处

一旦用这个视角扫一遍,你会发现会员积分只是最显眼的那一个。凡是符合“由你独家记录、用户无法独立复算、且会在用户不在场时发生变化”这三条的,都是单边账本。保哥列过一份清单,几乎每一条都在某个团队里制造过客诉:

单边账本用户拿不到的那条信息它变小的时刻
积分余额一分值多少钱到期作废、退款反扣
会员等级与保级进度年度是怎么切的、什么算数周期结算日降级
储值余额与礼品卡能不能退、能不能合并长期不动被冻结
优惠券的可叠加性两张能不能一起用规则改版,昨天能今天不能
退货窗口剩余天数从签收算还是从发货算窗口无声关闭
订阅的下期扣款金额含不含税、含不含运费、涨没涨价试用期结束、周期性调价
保修剩余期起算点是下单日还是激活日到期
推荐奖励的待入账朋友到底下没下单、什么时候算数判定为无效,静默清掉

这张表最有意思的地方在最后一列。这些账本都不是在用户看着的时候变小的。他上一次看的时候是1840分,下一次看是840分,中间那一千分是在他睡觉、上班、忘了这回事的某个时刻消失的,界面上没有任何一处记录那一刻发生了什么。

三句话判断一样东西是不是单边账本

要不要按单边账本来对待,不必凭感觉,问三句就够了:

  1. 这个数字,用户能不能用他手上已有的信息独立算出来一次?能,它就不是;不能,往下问。
  2. 如果他算出来的跟你显示的不一样,站内有没有一条路让他看到每一笔的来处?没有流水,就没有这条路。
  3. 这个数字会不会在他不知情的时候变小,那一刻他会不会被告知?会变小、且不告知,这就是最危险的那一档。

三句全中的东西,保哥的建议是按财务系统的标准去做,而不是按营销功能的标准去做。差别在于:营销功能追求的是好看和有说服力,财务系统追求的是每一分钱都能追溯到一笔凭证。用户对一本账的信任,只能从后者来。

为什么地址就没被压缩,积分就被压缩了

这里有个值得琢磨的对照。同样是让用户提前把信息交给你,收货地址你老老实实收了五六个字段,姓名、电话、街道、城市、邮编一个不敢少,还要做校验。为什么到了积分这边,就敢用一个数字打发?

保哥的判断是:因为地址错一位包裹就丢了,后果剧烈、可见、马上发生;积分算错了,后果轻微、隐蔽、还很可能永远不会被人提起。系统的严谨程度从来不是按事情的重要性分配的,是按出错之后有多快被人骂分配的。

这条规律在别处也一样成立。订单状态流转之所以被做得很细,是因为漏一单第二天就有工单;状态和状态机的区分之所以被反复强调,也是同一个原因。而积分这条线上,用户不满的表现形式是安静地不再攒——这个动作不产生工单,不产生退款,不产生任何一条需要人处理的记录。

不信任的成本,比你想的更早发生

还有一层容易被跳过:用户对单边账本的不信任,不是在兑换那一刻才发生的,是在第一次看到余额那一刻就定型了。

他看见一个数字,脑子里迅速过一遍:这数是怎么来的?我上个月那两单算进去了吗?这够换点什么吗?三个问题都得不到回答,他得到的结论不是“这个体系不好”,而是更省事的那个——“这个东西跟我没关系”。此后你再发多少积分,都是往一个他已经关掉的口袋里塞东西。

所以这本账最该被做扎实的时刻,恰恰是用户余额还很少、你觉得完全不值得投入的时候。等余额攒到值得他认真对待的规模,他早就不看了。

双边账在别的行业长什么样

单边账本这个说法听起来抽象,换几个例子就很具体了。你的银行卡余额也是银行独家记录的,但你从来不担心它——因为你手上有一份对账单,每一笔进出都有时间、对方、金额和摘要,你可以逐笔核,核不上可以去投诉,投诉有人受理。话费详单、信用卡账单、社保缴纳记录,全都是这个结构。

这些行业之所以做到这一步,多半不是因为它们的产品经理更有良心,是因为有人逼着它们做。金融和电信这类行业的对账义务写在监管要求里,做不到要挨罚。

电商积分没有这个外力。它在法律上通常被归到促销赠品那一类,没有任何一条规定要求你提供逐笔明细。所以这件事只能靠你自己想起来——而凡是靠想起来的事,在一个换了三任产品经理的团队里,寿命通常不超过一次改版

这条对照还能推出一个判断:如果你的会员体系里已经出现了储值余额、预付卡或者礼品卡,那它的合规属性已经比纯积分重了一个量级。这类东西在不少市场里被视同预收款,对账和退款的要求跟纯赠品完全不是一回事。很多站是在做大了之后才发现自己踩进了这个区间,而当初那个只写了余额、没写流水的页面还在原地跑着。

用户不信任的三种表现,一种都不产生工单

再往下追一层:如果用户真的不信这本账,你在系统里能看到什么?答案是三种表现,而这三种都不会变成一条需要有人处理的记录。

  1. 不看。他进过账户中心,从没点开过积分那一栏。这在访问日志里有痕迹,但没有任何一张报表会去看它。
  2. 不用。他手上有分,结账时不去勾抵扣。订单表里有痕迹,同样没人看。
  3. 不问。他觉得不对劲,但懒得为几十块钱去写工单,直接算了。这个连痕迹都没有。

三种表现叠在一起,导致一个很容易误判的局面:客服工单里关于积分的投诉很少,于是团队认定这块没什么问题。实际上工单少恰恰是症状本身——愿意投诉的人是还在乎的人,一个已经把这栏当成摆设的用户,是不会来投诉一个摆设的。

这跟用工单反推站上哪里出了问题那套做法并不矛盾,只是要加一个限定:工单能反映的是用户还愿意为之开口的问题。凡是失败形态为“悄悄放弃”的地方,工单永远是静音的,得换别的观测手段——第十节那五个指标就是为这种场合准备的。

顺着这条线再补一句判断。凡是单边账本,用户对它的态度只有两种:要么当真,要么当零。没有中间态。他不会给你打个七折说“这些分大概值点什么吧”,因为估值这件事本身需要一个锚,而你没给他锚。这一点跟商品页上的信息缺失很不一样——商品页少一个参数,用户会去评论区找、去搜索、去问客服;积分少了汇率,他连去哪找都不知道,因为这个数字只存在于你的系统里,全世界没有第二个地方能查。

同一件事,为什么有的站用户能报出小数点后一位,有的站连来处都找不到?

差别不在积分给得多少,在有没有一条按笔记账的流水。这一条是整套体系里最便宜、也最少有人做完的。

Baymard那一轮测试里,同一件事在三个站上跑出了完全不同的结果,而这三段记录并排放着看,答案清楚得有点扎眼。

Nordstrom那位受访者点开的入口叫“你是怎么赚到积分的”。这个名字听起来正是她要的东西,点进去之后却是一套规则说明——怎么赚、赚多少、哪些不算。她要的不是规则,是自己的历史。她说的那句“我能看到我的分,但看不出具体是哪一单让它变成这个数的”,翻译成产品语言就是:你给了我一个余额和一份规则,唯独没给我这两者之间的那条链。

Starbucks的两位受访者说的话完全是另一个画风。安卓端那位一边翻一边念:它会告诉我每一单我兑掉了多少星,最近这一单是72颗星;我们连着好几天都在喝那种100颗星的咖啡;充值的时候它也会记一笔。iOS端那位更干脆:我去看交易记录,那里会把我所有的订单和赚到的星都列出来,9月3日回来11.5颗,8月20日回来10.6颗。

请注意她念出来的数字:11.5和10.6。一个用户能把自己的积分记到小数点后一位,还能配上日期,这不是记性好,这是那张页面把每一笔都摊开了摆在她面前。她不需要相信任何人,她自己就能对账。

流水页做的到底是什么事

把这几段拆开,会发现一条积分流水在功能上其实同时干了四件事,只是它们平时被打包成一个不起眼的列表:

  • 建立因果——这一笔分对应那一笔订单,用户第一次看见自己的行为和余额之间的连线;
  • 暴露汇率——同一张表里既有赚也有兑,兑的那几行天然透露了一分值多少,哪怕你从没明说;
  • 提供凭据——他要投诉的时候有东西可指,而不是只能说“我记得应该更多”;
  • 把余额变成故事——一列日期和金额,读起来是一段自己的消费史,这一点对留存的作用被严重低估。

四件事里,第一件是根。Baymard给这一条单独立了一条准则(编号3141),意思是当用户找不到积分历史时,他会失去对自己订单如何转化成积分总额的追踪。失去追踪不等于失去兴趣,但它是失去兴趣的上一步。

为什么这一条最便宜,却最少有人做完

说它便宜,是因为数据早就在库里了。你不可能在不记账的情况下给用户加分——每一次加分背后都有一条记录,包含时间、订单号、变动值和变动后余额,否则连对账都做不了。所以这件事的技术工作量,通常只是把一张已经存在的表查出来、分页、渲染。

说它少有人做完,是因为它在需求清单上的样子实在太不性感。它不涨转化率,不涨客单价,上线当天没有任何一个数会动。在一份按预期收益排序的需求列表里,它永远排在“积分商城改版”和“新会员首单双倍分”后面,而这两件事每季度都会有人重新提一次。

保哥见过的最典型的一种形态,是流水页做了,但只做了一半:只显示获得,不显示消耗;或者只显示最近十条;或者显示了变动值却不显示变动后余额,于是用户还是没法把这一列数加起来跟顶上那个总数对上。一条对不上的流水,比没有流水更伤,因为它把一个模糊的疑虑变成了一个具体的矛盾。

验收流水页只需要一个动作

不用写测试用例,拿一个真实的老会员账号,打开流水页,把这一列变动值从下往上加起来,看能不能加出顶部那个余额。加不出来,这个功能就没做完。

加不出来的原因通常有三种,而且都很典型:

  1. 过期作废没有出现在流水里。这是最常见的一种,也是后面那一节要专门讲的坑——它在余额表里发生了,却没在事件表里留下行。
  2. 退款反扣被静默处理。用户退了一单,之前发的分被扣回去,账面对得上,但页面上没有这一行,用户只看到余额莫名其妙少了一截。
  3. 人工调整没有说明。客服补偿、活动补发、系统修数,这些都会改余额,而流水里往往写着一个叫“系统调整”的万能理由。

三种里最该先修的是第二种。退款反扣本身完全合理,用户也能接受,问题只出在没告诉他。一个合理的扣分不写出来,用户不会推断出你在合理地扣,他会推断出你在乱扣。这件事的修复成本是一行文案加一条记录,而它挽回的是整本账的可信度。

把流水和账户中心接在一起

流水页还有一个位置问题。它不该是一个需要从条款页点进去的深层页面,而应该挨着余额那个数字——用户看到那个数字的一瞬间,正是他最想知道它从哪来的一瞬间,隔一屏就差很多。

这一点和账户中心的整体设计是连着的。账户面板怎么排才能真正撬动复购那篇里讲过,账户中心最大的问题是把所有东西平铺成一排入口,然后指望用户自己去找。积分这一栏在这种排布下的宿命,就是被挤在地址簿和心愿单中间,永远没人点开。

一条流水记录到底该有哪些字段

把前面那四件事拆成字段,一条合格的积分流水记录应该长这样:

字段为什么必须有常见的偷工
发生时间用户靠时间定位自己那一单只显示日期不显示时刻,同一天多笔就分不清顺序
事由建立行为与余额之间的因果统一写成“系统调整”或者一个内部代码
关联对象能点回那笔订单或那次活动只有文字没有链接
变动值加还是减、多少用绝对值,正负靠颜色区分,色弱用户直接读不出
变动后余额让用户能逐行核到顶部那个总数整列缺失,这是最致命的一项
有效期这批分什么时候作废只在条款页写一个统一期限,不落到每一笔

六个字段里,最容易被砍掉的是最后两个,理由通常是“列太多了移动端放不下”。这个理由本身没错,但解法不该是删列,而是把每一行做成可展开的两层:收起时显示时间、事由和变动值,展开后显示变动后余额、关联单号和有效期。移动端的宽度问题基本上都能用这个办法解决,而且展开这个动作本身还给了你一个信号——愿意展开的人,是真在核账的人。

要不要保留全部历史,保留多久

这个问题在评审会上经常卡住,因为它一头连着存储成本,一头连着用户体验。保哥的口径是按积分的有效期来定,而不是按存储成本来定。

逻辑很简单:用户需要核对的时间跨度,等于他手上最老那批分还能活多久。如果积分有效期是一年,那流水至少要覆盖一年零一个月——多出来的那一个月是留给刚刚过期的那批,好让他能查到自己是怎么没的。有效期两年就覆盖两年零一个月。

超出这个跨度的历史,做成按年归档、默认折叠就行,不必和近期记录一起加载。这样既守住了对账的完整性,又不会让一个攒了五年分的重度用户打开页面等三秒。订单表被拆成高性能存储那一类改造要处理的也是同一个矛盾:一份既要能查全、又要能查快的历史数据。

还有一个更隐蔽的坑:跨端不一致

最后提一个很少被列进需求、但客诉里排名不低的问题:同一个账户在网页和应用里看到的积分数不一样。

成因通常不复杂,多半是某一端读了缓存、或者两端算可用余额的口径不同(一端把待入账算了进去,另一端没算)。但用户看到的是一件很吓人的事——他手里这本账,连你自己都记了两个数。

验收方式也简单到不需要工具:同一个账号,两端同时打开,比一眼。这件事之所以经常没人做,是因为在多数团队里,网页和应用分属两个小组,而两个小组各自的验收清单里都只有自己那一端

这几段对照记录,连同那条“找不到积分历史的用户会失去对订单与积分总额之间关系的追踪”的判断,都写在Baymard对Nordstrom与Starbucks两个站的观察记录里。研究把它单独列成了一条准则,说明这不是某一位受访者的个人偏好,而是在多场测试里反复出现的同一个卡点。

还有一个细节值得记:那位在Starbucks上核对交易记录的受访者,用的是手机应用,而她能报出日期和小数位这件事本身说明,这条流水不需要一张大屏才放得下。“移动端空间不够所以砍列”这个理由,在有人已经做到的前提下就不太站得住了。

一分到底值多少钱,为什么连规范里都没给它留位置?

schema.org的会员层只有四个自有属性,谷歌商品数据里有七个子属性。两边都能写清你能赚多少分,没有一边能写清那些分值多少。

到这里为止,都还可以解释成“很多团队没做好”。接下来这一节把这个解释推翻掉。

保哥去翻了三份跟用户体验毫无关系的技术规范:schema.org的会员类型定义、谷歌商品数据规范里的忠诚度属性、以及谷歌搜索中心那份会员计划结构化数据文档。这三份东西由不同团队为不同目的写成,读者是工程师不是设计师,目标是把商品信息喂给搜索引擎而不是让用户看懂。结果三份规范在同一个地方,各自留了一个一模一样的口子。

第一处:schema.org的会员层,只有四个自有属性

schema.org在2024年前后新增了一对类型,MemberProgram描述一个会员计划,MemberProgramTier描述计划下的一个等级。这两个类型都还标着“新”,按谷歌网页索引的统计,用到它们的域名数量在一千到一万之间——放在整个电商盘子里,这是一个刚起步的数字。

把继承自通用类型的那些字段(名称、描述、图片、链接之类)剥掉,MemberProgramTier自己一共只有四个属性:

  • hasTierBenefit——这一层能拿到什么好处,取值是一个枚举;
  • hasTierRequirement——进这一层要什么条件;
  • isTierOf——它属于哪个计划;
  • membershipPointsEarned——每花一个货币单位能挣几分。

跟积分有关的只有最后一个,而它描述的是赚取速率。规范的原文还贴心地补了一句:如果需要,可以用单位文本来表达积分的单位,比如星、里程。

也就是说,这套词汇表能精确地说出“每消费1美元得10颗星”,却没有任何一个字段能说出一颗星值多少钱。它能描述进账,不能描述出账。这不是遗漏了一个边缘属性,这是整个类型里唯一跟积分有关的那个属性,只覆盖了这件事的一半。

第二处:会员价有起止日期,积分连个有效期字段都没有

再看谷歌商品数据那一侧。loyalty_program是一个组属性,底下挂着七个子属性:

子属性作用跟谁有关
program_label计划标识结构
tier_label等级标识结构
price会员专享价会员价
cashback_for_future_use保留字段,暂未启用
loyalty_points本商品可获积分积分
member_price_effective_date会员价的生效与失效时间会员价
shipping_label会员运费适用范围会员运费

七个字段里,会员价占了两个,其中一个专门用来写什么时候开始、什么时候结束;会员运费占一个;积分占一个,写的是能拿多少。

现实里会过期、并且过期会让用户真正吃亏的那样东西,是积分不是会员价。会员价过期了,用户只是恢复原价买;积分过期了,是他攒了一年的东西归零。规范给不会让人心疼的那一个配了起止日期,给会让人心疼的那一个什么都没配。

顺带一提,那个叫cashback_for_future_use的字段,文档里的说明只有一句:保留供将来使用。一份规范里放着一个占位字段,倒是意外地诚实——至少它承认自己还没想好。

第三处:规范只收整数,而用户嘴里说的是11.5

第三个口子藏在一句格式要求里。loyalty_points这个字段,文档写得很明确:必须是整数,不支持小数。

把这句话跟前面那位受访者的原话放在一起看,效果相当微妙。她说的是9月3日回来11.5颗星、8月20日回来10.6颗星。用户在现实中真正说出口的那个数带小数,而准备把这个数展示给全世界的那份规范,收不了小数。

这不是谁犯了错。按比例返分必然产生小数,四舍五入到整数在业务上完全说得通。它有意思的地方在于,规范在设计的时候默认了积分是一个用来对外宣传的整数标签,而不是一个用户会逐笔核对的账目数字。一个宣传标签当然不需要小数,一个账目数字当然需要。规范选的是前者。

三处口子指向同一个方向

把三处并排放,方向是完全一致的:

规范能表达规范无法表达
每花一块钱赚几分一分值多少钱
会员价什么时候生效失效积分什么时候作废
这单能得多少分(整数)实际到账的那个带小数的数

三份文件,三批作者,三个互不相干的目的,在同一个位置各留了一个空。同一个盲点在三个互不通气的地方各出现一次,就不再是疏忽,而是这件事在所有人的默认心智模型里本来就只有一半。在这个模型里,积分是你送出去的东西,重点在你送了多少;它不是用户持有的东西,所以它值多少、什么时候没,不在这个模型的视野里。

这一条对做站的人有个很实际的含义:你不能指望任何一份外部规范帮你把这件事补上。结构化数据这条线上,很多字段的存在本身就是一种提醒——你只要照着填,就顺手把该说的话说全了。照着类型清单生成JSON-LD之所以好用,靠的就是这种提醒。而积分这一格,规范里没有那个提示你的空位,所以它只能靠你自己想起来。

规范默认你会讲好处,不默认你会讲代价

还有一处不对称,藏在必填和选填的分配里。

在谷歌那份会员计划结构化数据文档里,等级这一层的必填项是两个:hasTierBenefit(这一层能拿到什么)和name(这一层叫什么)。而hasTierRequirement(进这一层要什么条件)是推荐项,不是必填。文档还补了一句默认行为:如果不指定这个属性,就意味着任何人都可以免费加入这一层。

换句话说,这套词汇表在设计的时候,把“你能得到什么”当成了必须说清楚的事,把“你要付出什么”当成了可以省略的事,省略之后的默认值还是最宽松的那一个。

这个分配方式很符合直觉——毕竟这份规范的目的是把权益推到搜索结果里去,它天然站在展示的一侧。但它带来的实际效果是:一个只照着必填项填的站,产出的是一份只讲好处、不讲门槛的会员描述。而用户在决定加不加入的时候,需要的恰恰是这两半。

进层门槛的四种类型,透露了不少东西

那个可选的门槛字段,接受四种类型的值,这份类型清单本身就是一份行业惯例的切片:

  • 信用卡——办一张指定的联名卡就能进这一层。这在北美零售里是常态,在国内站基本用不上。
  • 货币金额——最低消费额,比如累计满250美元。这是绝大多数分层制的做法。
  • 单价规格——周期性会员费,规范给的例子是包月九点九九欧元、按年十二期。付费会员制走这一条。
  • 纯文本——其他任何条件。规范给的例子相当出乎意料:购买本合作社的一股股份,并且每月至少志愿服务一天以帮助控制运营成本。

最后那个例子值得多看两眼。它说明规范的作者意识到了一件事:会员资格的门槛未必是钱。时间、身份、行为、社群贡献都可以是门槛,而这些东西在国内独立站的会员设计里几乎没有出现过——我们习惯性地把分层等同于消费额分层。

这不是说要照抄合作社那一套,而是提供了一个反问:你的分层门槛除了累计消费额之外,还能不能换成一个更能筛出真实关系的东西?写过多少条评价、复购过几个不同品类、参加过几次社群活动,这些信号在你库里通常都有,只是从没被用来划过线。私域那套五维指标里有一半的字段其实都能直接拿来当门槛用。

采用率低,对你反而是个消息

最后回到那个统计数字:用到这对新类型的域名,按谷歌网页索引的口径在一千到一万之间,类型本身还带着“新”的标签,说明它还在收集实施反馈的阶段。

这个数字放在整个电商盘子里,小得几乎可以忽略。对做站的人来说,它的含义不是“还不成熟,再等等”,而是这块地眼下几乎没人站。结构化数据这条线上的规律一直很稳定:新类型开放的头一两年是覆盖率最容易做上去的窗口,等到主流建站平台把它做进模板,这项差异就自动归零了。结构化数据对AI搜索到底有没有用那篇里量化过这个窗口的宽度,结论对会员这一格同样适用。

属性清单可以自己去核,schema.org上会员等级类型的完整定义页面把自有属性和继承属性分得很清楚,剥掉继承的那一堆之后剩下的就是正文里说的四个。同一页上还标着这个类型的采用规模区间和“新”的状态提示,两条信息一起看,能大致判断出这套词汇表处在什么阶段。

说句公道话,规范留这个白并不是设计失误。结构化数据的职责是把商家愿意对外公开的信息标准化,而一分值多少钱这件事,恰恰是很多商家不愿意对外公开的——它一公开,积分体系的真实让利比例就是明牌了。所以这个空白与其说是没想到,不如说是没人提要求。这也正是它作为差异化机会的原因:规范不逼你说,用户又没处查,所以谁先说清楚,谁就在这一格里独一份。

会计准则早就把积分算成你欠的钱,界面上凭什么还写着送你?

收入准则把积分当成一项单独的履约义务,那笔钱你收了却还不能算成收入。财务当负债,产品当赠品,同一样东西两套语言。

规范那一侧留了白,会计那一侧却早就把这件事写死了,而且写得比任何一份产品文档都清楚。

国际财务报告准则第15号讲的是与客户之间合同产生的收入,2018年1月1日起生效。它把确认收入拆成五步:识别合同、识别合同中的履约义务、确定交易价格、把交易价格分摊到各项履约义务、在履约义务完成时确认收入。其中第二步的定义是关键——履约义务指的是合同中向客户转让可明确区分的商品或服务的承诺。

在这套框架下,你随一笔订单发出去的积分是什么?它是你对客户作出的一项独立承诺:将来他可以拿这些分换走一些东西。所以它是一项单独的履约义务。既然是单独的履约义务,这笔订单收到的钱就不能全部算成本期收入,得按相对单独售价把一部分分摊给积分,先挂着,等用户真的来兑换、或者积分到期作废,才能确认成收入

这不是新鲜事。在第15号准则之前,专门管这件事的是2007年6月发布的解释公告第13号,标题直白得不能再直白——《客户忠诚计划》。它当年要解决的问题,就是发行方给客户授予奖励积分之后该怎么记账。这套逻辑后来被第15号准则整体吸收。

同一样东西,两个部门两套语言

把这件事翻译成人话:用户手里那些积分对应的钱,你已经收进来了,但在账上它还不算你的。它是一笔你欠着的东西,专业说法叫合同负债,通俗说法叫递延收入。

而在同一家公司的另一个房间里,产品和运营对这些积分的描述是:送你的、奖励、回馈、福利。

同一样东西,财务当负债,产品当赠品。会计准则已经承认那笔钱在性质上属于用户,只有界面还在把它讲成一份恩惠。这大概是整篇文章里最锋利的一处对照——你不需要说服任何人“积分是用户的资产”,你们自己的财报早就是这么记的了。

这个视角一旦切换过来,前面那些设计问题的性质也跟着变了。不写清汇率,不是营销文案没写细,是你欠了人一笔钱却不告诉他金额;没有流水,不是功能没做全,是你欠了人一笔钱却不给对账单;到期静默清零,不是运营策略,是把一笔负债直接核销掉而不通知债权人。银行要是这么干,第二天就上新闻了。

作废那部分钱有个专门的名字

还有一个词值得知道:那些永远不会被兑换的积分,在收入确认里有个专门的处理,行业里习惯叫它失效收益。它不是白捡的——准则要求你对它作出估计,并按预期兑换比例把对应的收入随着兑换进度确认,而不是等到过期那天一次性入账。

这里藏着一个很多人没意识到的位置关系:你的财务部门每个季度都在估算“会有多少积分永远不会被兑换”,而你的运营部门从来没有人问过这个数。同一件事,一边是必须报的会计估计,一边是无人认领的空白。后面那一节保哥会讲一个自己在这上面栽的跟头,栽的位置正好就在这条缝上。

为什么慷慨的积分体系在头一年总是好看

财务视角还能解释一个长期困扰运营的现象:为什么积分总是被越设越慷慨。

把积分和打折放在一起比一比,方向是反的。直接打八折,是今天就少收两成钱,损益表当期就疼。发同等力度的积分,是今天照常收钱,把成本推到用户将来某一次兑换的时候——而那一天可能是明年,可能永远不来。

于是在任何一个只看当期数字的评审里,一个慷慨的积分体系永远比同等力度的直降更好看。它不是更划算,它只是把账单寄到了以后,而以后往往是另一任负责人的事。

这条规律还能预测内部推动的难易:

  • 给积分加有效期,永远推得动。因为它直接改善当期数字——负债规模下来了,作废那部分还能变成收入。
  • 把汇率写清楚,永远推不动。因为它一分钱都不改善,反而让用户更愿意去兑换,也就是让一笔挂着的负债更快变成真实支出。

看清这一层之后,保哥在给客户提这类建议时会换个讲法:不讲“把汇率写清楚对用户更友好”,讲“兑换率长期偏低说明你这本负债正在堆积,而堆积的负债迟早要么被兑掉、要么被作废,作废那部分不会带来任何复购”。同样一件事,换一套量纲,能不能过会的概率完全不同。定价这件事从成本加成走到价值定价要跨的也是同一道坎——把讨论从“该给多少”挪到“这笔账最终落在谁身上”。

把五个步骤套在一笔真实订单上走一遍

抽象的准则不好记,拿一笔一百块的订单走一遍就清楚了。假设用户下单一百元,你按百分之十返分,也就是给一千分,而你的兑换比例是一百分抵一元。

  1. 识别合同。这一单成立,合同就在。
  2. 识别履约义务。这里有两项:把商品发给他,以及将来允许他用那一千分换东西。第二项是可明确区分的承诺,所以它是一项独立的履约义务,而不是第一项的附属。
  3. 确定交易价格。一百元。
  4. 分摊。按相对单独售价把一百元分到两项上。那一千分按你的兑换比例值十元,扣掉预计不会被兑换的比例之后,分给它的那部分大约在几元这个量级。
  5. 确认收入。商品发出去,第一项完成,那部分收入当期确认;剩下分给积分的那几块钱先挂着,等他真的来兑换或者积分作废,才能转成收入。

走完这一遍,有件事就很难再装作没看见了:你并没有“送”他一千分。你收了他一百块,其中有几块钱是替他保管的。这跟储值卡在性质上是同一类东西,只是数额小、不显眼、而且没有任何监管盯着。

顺带说明一下第四步里那个“扣掉预计不会被兑换的比例”。这个估计每期都要复核,而它的取值直接影响当期收入。估得高,当期收入好看;估得低,当期收入难看但后面稳。这个数在很多公司里由财务独立拍板,产品和运营既不知道它是多少,也不知道自己那些改动正在把它往哪个方向推——而事实上,你把汇率写清楚、把到期提醒做扎实,做的就是在压低这个估计。

四个总数,一小时能算完

如果你从来没算过自己这本账的规模,可以先拉四个数出来,全都在库里,一小时够了:

怎么算它说明什么
累计发放所有正向变动求和你一共承诺了多少
累计兑换所有兑换类负向变动求和其中有多少真的兑现了
累计作废所有过期类负向变动求和有多少承诺最后没兑现
当前挂账所有用户当前可用余额之和你现在还欠着多少

四个数按当前兑换比例折成钱之后,会得到一个通常让人愣一下的金额。保哥的经验是,多数中型独立站第一次看到这个数的反应是“怎么这么大”,而第三行往往是四行里最大的那一个,同时也是从来没人算过的那一个

算不出第三行不是你的错,是下一节要讲的那个结构性问题——过期这件事在多数系统里压根没有留下可以求和的记录。如果你查下来发现累计作废是零,那多半不是真的零,而是它从来没被记过。

这套逻辑的原文在国际财务报告准则第15号的官方说明页上,五个步骤和履约义务的定义都写在开头那一段,沿革部分还能查到2007年那份专门处理奖励积分的解释公告是怎么被吸收进来的。

需要说明的是,具体适用哪套准则、怎么估计兑换比例、分摊按什么口径走,这些是财务的专业判断,各地会计要求也有差别,这篇不越界去讲。这一节要的只有一个结论:在会计的语言里,用户手上那些分对应的钱不是你的。拿着这个结论回到产品讨论里,很多原本靠感觉争论的事会立刻变得有据可依。

知道有这个计划、却一直没去加入的那27%,到底卡在哪一步?

三千多人的调研把用户切成了四段:已经在里面的、知道却没加入的、压根不知道有的、以及给多少都不会来的。四段各有各的堵点。

前面几节都在讲已经加入的人怎么被劝退。这一节换个方向:还没加入的那些人分成几种,各自卡在哪。

Baymard在家居与五金这个品类做过一次3023人的定量调研,问的是最近三个月在线上买过相关商品的美国成年人。关于忠诚度那一题的分布很值得抄下来:

人群占比他们卡在哪
已加入DIY或家庭用户忠诚计划34%已经在里面,问题是会不会用
已加入专业或商用计划22%同上,但需求完全不同
知道有这些计划,但没加入27%知道有,没被说服
不知道存在这些计划13%压根没看见

加起来超过一半的人已经在某个计划里,这本身就说明这个品类里会员制不是加分项而是标配。但真正该盯住的是后面两行:27%加13%,四成人站在门外,而这两拨人需要的东西完全不一样。

13%那拨:曝光问题,最便宜也最容易被高估

不知道存在,说明这个计划在站上的可见度不够。这是四段里最好修的一段,通常也是唯一一段可以靠挪位置解决的——把入口从页脚挪到导航、在商品页价格旁边加一行会员价对比、在结账页放一句“注册即可省下这笔运费”。

但这一段也最容易被高估。很多团队看到这个数就一头扎进曝光,做了一轮弹窗和横幅,参与率涨了一点,然后停住。原因是曝光只能把13%那拨挪到27%那拨去,挪过去之后他们面对的还是同一个说服问题。如果说服这一环没解决,加大曝光的净效果就是把更多人推到那道没有解开的门前,同时还多收了一批弹窗的负面观感。弹窗的时机和字段该怎么设计是另一篇的题目,但用在会员招募上有个额外的前提:弹出来那一句话必须能被当场折算,否则弹得越准越招人烦。

27%那拨:定价问题,也就是前面讲的折算成本

知道有、却没加入,是一次明确的评估之后的结论:不值。这个结论怎么来的?回到第一节那三个问题——能挣多少、值多少、什么时候没。三个里答不上来一个,账就算不下去。

Baymard给这一段的建议只有一句,但很硬:让你的计划以看得见的实在价值打头。大多数用户把入会看成一次价值交换,所以要在最前面清楚地讲明白他能换回什么。Cole Haan那句“会员享免费陆运”之所以能让全部受访者当场表态,就是因为它一句话同时完成了三件事:说清了给什么、说清了值多少、说清了立刻生效。

还有一条常被忽略的减阻办法:把入会做进注册流程本身,而不是做成注册之后的第二个决定。用户已经在填表了,多一个勾选框的成本远低于让他改天再来一趟。另一条是允许把最近几笔已完成的订单追溯计分——对犹豫的人来说,一个不是从零开始的账户,说服力比任何文案都强。

还有一拨人:给多少都不会来

Baymard在忠诚度研究里说了一句很少有供应商愿意说的话:忠诚度计划并不是所有电商用户的必需品。相当一部分访客不管你给什么激励都不会加入,他们的购物方式就是在多个站之间比价,找到合适的东西、合适的价格就下单,跟品牌关系不大。

研究给出的口径是:把目标校准在那七到八成愿意加入的人身上,再按活跃使用的可能性做进一步细分。换句话说,参与率的分母不该是全体访客。用全体访客当分母,你会永远觉得这件事没做好;用真实可达人群当分母,你才知道自己离天花板还有多远。

研究还引了一个外部数字来说明天花板是真实存在的:美国航空在2025年披露,其高端舱位收入里有25%来自非会员。这家公司的常旅客计划是这个行业的鼻祖,做了四十多年,规模和成熟度几乎没有可比对象——即便如此,最赚钱的那部分收入里仍有四分之一来自从来没进过这个体系的人。

这个数据的用法有两种,两种都容易用错,保哥各说一句:

  • 不能拿它去砍会员投入。那四分之一的存在不代表体系没用,只代表体系有边界。
  • 也不能拿它当借口不做非会员体验。反过来读才对:既然连最强的忠诚度体系都留着四分之一的高价值非会员,那么把整站体验做成“不入会就别想用得舒服”的那种设计,直接伤的就是这一格里的人。

四段人对应四种不同的动作

把四段合起来,得到一张排期表,比“提升会员参与率”这个笼统目标可执行得多:

  1. 不知道的:挪入口、加对比、改文案。成本最低,先做,但别指望它解决全部问题。
  2. 知道没加的:把最能当场折算的那项权益提到最前面,减少入会步骤,允许追溯计分。
  3. 已加入的:这一段的敌人不是激励不够,是账本不可信——也就是前面五节讲的全部内容。
  4. 永远不会加的:识别出来,别再往他们身上花钱,同时确保不入会也能好好买东西。

第三段最容易被跳过,因为它在报表上不显眼——已加入的人不会流失成一个可见的数字,他们只是慢慢不再看那一栏。让用户想再来一次这件事怎么被设计进体验讲的是同一类问题的另一面:留存的失败几乎从不表现为一次明确的离开。

34%和22%要的根本不是同一样东西

那张表的头两行经常被合并成一个数字——超过一半的人已经在某个计划里。合并之后就丢掉了最有价值的一半信息:这两拨人的需求几乎没有交集。

家庭用户那一拨(34%)是典型的消费者:偶发采购、单价不高、看重折扣和积分、决策周期短。你给他积分、给他会员价,逻辑成立。

专业和商用那一拨(22%)不是这个画像。他们的采购是工作的一部分,频次高、单次量大、常常要开票、要账期、要批量下单、要把采购记录导出来报账。对这拨人来说,一套积分体系的吸引力,可能还不如一个能一次导出半年发票的按钮。

Baymard给的建议也是这个方向:先弄清你的用户里哪些属于专业领域、哪些是会跟忠诚计划互动的家庭用户,通过识别、细分和排序把资源放到有参与可能的人身上,避免在那些永远不会有实质参与的人群上过度投入。

这条建议听着像常识,落地时最大的障碍其实是你的注册表单里根本没有能区分这两拨人的字段。而好消息是不填字段也能分:单次件数、复购频次、是否索取过发票、下单时段是不是集中在工作日白天,四个信号一起看,分辨率已经足够。B2B那一侧要的东西可以直接参考公司账户与分级定价那套配置,跟消费者会员完全是两条产品线。

那27%里还能再切一刀

知道有计划却没加入的这拨人,其实混着两种完全不同的经历,而调研的这道题分不出来:

  • 从来没试过的。他看过入口,评估了一下,判断不值。对这拨人有效的是把最能当场折算的那项权益提前,也就是第一节讲的那套。
  • 试过又放弃的。他曾经注册过、攒过、甚至兑换过一次,然后停了。对这拨人,你把权益说得再清楚也没用——他不是不知道,是已经知道了并且得出了结论。

第二种人才是这本账真正的成本。他们通常还留着账户和余额,在你的报表里被算成会员,拉高了参与率,也拉高了兑换率的分母。一个由放弃者构成的会员基数,看上去比真实情况健康得多。

区分这两种人不需要问卷:看首次兑换有没有发生过,以及最后一次积分变动距今多久。两个字段都在库里。第十节会把这一条展开成一个可以直接用的指标。

把分母换掉之后,目标该怎么定

最后回到那个七到八成的天花板。把它落成一句可执行的话,是这样:

参与率的分母,应该是“在你这里买过至少一次、且不属于纯比价人群”的用户,而不是全体访客。用全体访客当分母,你会永远觉得这件事没做好,然后年年在会上被要求“再提五个点”;用真实可达人群当分母,你才知道自己离天花板还有多远,以及剩下的空间值不值得再投一个季度。

那个航空公司的例子之所以值得记住,是因为它把天花板具体化了:一个做了四十多年、规模和成熟度几乎没有可比对象的常旅客计划,在自己最赚钱的那部分收入里,仍然有四分之一来自从来没进过这个体系的人。四十多年都没能把这四分之一转化过来,你的三年计划大概也不行——这不是悲观,这是把力气花在对的那七成上。

那张四段分布表来自Baymard对3023位家居与五金线上买家的定量调研,同一份调研里还有两个数值得顺手记下来:这个品类的用户里,超过一半的人在最近一次线上下单之前先去实体店看过或者试过实物;而说自己没看实物就直接下单的比例是45%,到60岁以上人群反倒升到65%。

第二个数是反直觉的——年纪大的买家更愿意不看实物就下单,年轻买家反而更依赖线下确认。这跟很多人对数字化程度的默认假设正好相反,也提醒了一件事:会员体系里那些按年龄段设计的差异化策略,如果建立在“年轻人更信线上”这个假设上,可能一开始方向就是反的。

会员价能进谷歌搜索结果,积分不能,这条差别该怎么用?

谷歌愿意把会员专享价显示在商品旁边,但前置条件有一串:折扣得够大、站上得能看到、还得跟你提交的数据对得上。

这一节把话题拉到搜索这一侧,因为会员体系在这里有一块很多人没意识到的地盘。

谷歌现在支持把会员计划信息做成结构化数据,让会员权益跟着商品一起出现在搜索结果和知识面板里。做法是把MemberProgram嵌在Organization下面,写在你放企业信息和政策的那个页面上;单个商品那一侧的会员价和积分,则通过商品富结果里的价格规格标记补上。这个功能目前在澳大利亚、巴西、加拿大、法国、德国、墨西哥、英国和美国这八个市场可用,桌面和移动端都支持。

值得注意的是这里的不对称:会员专享价能作为一个具体价格显示在商品旁边,积分不能。原因在第四节已经讲透了——规范里根本没有能表达积分价值的字段,谷歌自然也没法把它换算成任何对购物者有意义的东西。

会员价想露脸,得同时满足一串条件

这一串条件写在商品数据规范的最低要求里,任何一条不满足都可能直接导致这个会员计划被拒。保哥把跟运营强相关的几条挑出来:

  • 折扣得够大。只有当会员折扣达到常规价或促销价的5%以上、或者5个单位货币以上时,谷歌才会在广告里展示会员价。低于这条线的会员优惠,在搜索侧等于不存在。
  • 提交的必须是最低可得价。如果还有季节性促销能叠加在长期会员价上,要提交叠加之后的最终价。
  • 会员价必须走专门的子属性。不能塞进常规价格或促销价字段里,免费和付费两种计划都一样。
  • 站上的和提交的必须对得上。规范原文写得很直白:谷歌会检查你在商户中心提交的权益和计划信息,跟你网站上展示的信息是否一致。
  • 会员价在站上必须是可访问的。不管是通过会员总览页、专门的活动页还是别的方式,都得让会员清楚地看到。
  • 有时效就必须填时效。不填的话,谷歌会假定这个价格永久有效,等价格下线之后它可能继续给用户展示一个已经不存在的价格。

第四条和第五条放在一起读,会得出一个很有意思的结论:会员价这条线上,有一个不请自来的第三方在替用户核对你有没有说话算数。它不要钱,天天来,跟你内部谁说了算完全无关,而且核对不通过的后果是实打实的——商品被拒,流量没了。

而积分这条线上,这个核对者不存在。你的积分汇率写不写、写得对不对、页面上和条款里是不是两个数,没有任何外部力量会来管。同一个会员体系的两半,一半有人查,一半没人查,而两半的用户体验差距,基本就沿着这条界线裂开。

这条差别在实操里怎么用

保哥的用法有三个,从便宜到贵排:

第一,把会员价当成会员体系对外的门面。既然它能出现在搜索结果里、能被非会员看到、能带来点击,那它就不只是一项权益,它是一个招募渠道。一个非会员在搜索结果里看到同一件商品的会员价比自己要付的便宜一截,这个说服过程发生在他还没进你的站之前。

第二,用那条5%的线倒推会员折扣的下限。很多站的会员折扣定在3%左右,理由通常是控制成本。从搜索这一侧看,3%和0%的效果完全一样——都不会被展示。既然要花这笔钱,要么花到线上去让它被看见,要么干脆把预算挪到别的权益上,卡在中间是最亏的。

第三,把一致性检查当成一次免费的体检。谷歌要求提交的信息跟站上展示的一致,这条要求逼着你把会员权益的口径统一一遍。很多站在这一步才发现,商品页写的、会员总览页写的、条款页写的,是三个版本。插件和主题各写一套结构化数据导致口径打架是同一类毛病在技术层面的表现,只不过在会员这块,打架的双方往往是市场部和法务。

标记本身的几个坑

动手写标记的时候有几处容易出错,顺手记一下:

  • 计划标识和等级标识必须跟商户中心里配置的完全一致,对不上谷歌就没法把权益映射到对应的商品。
  • 单等级计划可以不写这两个标识,多等级则必须写,而且多等级的数据不建议用逗号分隔的CSV,制表符分隔更稳。
  • 表头里申报了哪些子属性,值里就得按同样的顺序给;如果表头里不写子属性名,那七个子属性一个都不能少。
  • 会员价不要用规则去批量生成,除非全站商品都是同一个折扣率,否则直接在数据源里逐条给值更准,也更不容易掉出展示资格。
  • 落地页上也要用结构化数据把会员价标出来,这样谷歌才抓得到——数据源和页面是两条独立的通道,两边都得给。

最后一条其实又绕回了这篇文章的主题。谷歌之所以要求两边都给,是因为它不打算只听你的一面之词——它要的是能对上的两本账。用户想要的其实也是同一样东西,只是没人给他一个提交工单的地方。

一致性检查会先给你查出什么

谷歌那条“提交的数据必须跟站上展示的一致”,实际执行起来是一次很便宜的体检。保哥陪客户走过几次,第一轮查出来的东西高度雷同,几乎可以提前写好清单:

  1. 三处口径不一。商品页写的会员价、会员总览页写的折扣率、条款页写的适用范围,是三个版本。原因通常是它们分别由三个人在三个时间点写的,而且从来没有人被要求把这三处对一遍。
  2. 权益说明里有已经下线的东西。会员总览页上还挂着一项两年前停掉的福利,因为那一页从上线之后就没人动过。
  3. 会员价在站上其实看不到。数据源里提交了,页面上只有登录之后才显示,而谷歌要求会员价在站上对会员是清楚可访问的——通过会员总览页、专门的活动页或者其他方式明确传达都行,但不能只藏在登录态背后毫无提示。
  4. 有时效的会员价没填时效。后果在文档里写得很明白:不填的话谷歌会假定这个价格一直有效,等价格下线之后仍可能给用户展示一个已经不存在的价格。

四条里,第一条的价值远超搜索本身。把三处口径对齐这件事,如果没有一个外部理由,在公司内部几乎永远排不上日程——它不属于任何一个人的KPI,改完也没有任何指标会动。而谷歌这条要求给了你一个外部理由,而且是一个带后果的理由(对不上会导致商品被拒),这个理由在会上比“用户体验会更好”管用得多。

会员价不能塞进原价和促销价字段

这一条单独拎出来讲,是因为它是实施阶段最常见的错误做法。

规范写得很硬:免费计划和付费计划的会员价,都必须通过忠诚度属性下面那个专门的价格子属性提交,不允许写进常规价格或者促销价字段。同时还要求这个子属性的币种跟常规价格、促销价的币种一致。

为什么有人会想塞进促销价?因为那样最省事——现有的商品数据流程不用改,直接把会员价当促销价推上去,搜索结果里显示的价格立刻变低,点击率立刻变好。这个诱惑很直接,代价也很直接:非会员点进来发现自己买不到那个价,这是一次实打实的价格误导,除了违反规范,它对信任的伤害跟本文讲的其他事是同一个方向。

只有一个例外:如果你的计划是免费加入的,同时你销售的市场里这个功能还没开放,可以联系支持团队申请特例。这个口子的存在本身也说明了规范的边界——它管的是“会员价必须被标成会员价”,不是“会员价不能低”。

还有一件事:这套标记该写在哪一页

最后一个容易搞错的细节。会员计划本身的标记要嵌在组织信息之下,写在你放企业信息和政策的那个页面上,而不是每个商品页都复制一份;单个商品的会员价和积分则通过商品富结果那一侧的价格规格标记来给。

两条通道分工明确:一条描述“我们有这么一个计划、有这么几层”,一条描述“这件商品对这一层会员是这个价”。把两者混在一起写,是这套标记最常见的失败方式,症状通常是校验通过但功能不生效。把页面上五种格式的字段一次扒清楚是排查这类问题最快的路子,因为它能直接告诉你哪个类型被写在了哪一页上。

这一节的要求逐条都能核:标记怎么写、嵌在哪一层、开放哪些市场,看谷歌搜索中心那份会员计划结构化数据文档;七个子属性、格式要求和那条百分之五的展示门槛,看商户中心里忠诚度属性的说明。两份文档的分工是前者管页面上的标记,后者管数据源里的字段。

顺带一提,谷歌自己也承认这套东西不好维护——文档里明写了忠诚度计划用标记来配置和保持更新可能有难度,如果你有商户中心账号,可以考虑直接在后台里配置而不是写标记。一份规范主动劝你别用它自己那套方案,通常说明维护成本是真的高,这句话对排期是有参考价值的。

要把会员账本做成能对账的,最少得补哪几块?

流水、汇率、有效期、待入账,四件事。每一件都有一个便宜到不用立项的最小实现,也都有一个做了等于没做的假动作。

前面都在拆问题,这一节给方案。目标不是把会员中心重做一遍,是把这本账补成能对的——四块,每块都有一个便宜到不用立项的最小实现,也都有一个做了等于没做的假动作。

第一块:流水,让每一笔都有来处

最小实现:一张按时间倒序的表,四列——日期、事由、变动值、变动后余额。事由要能点回到那笔订单。分页就行,不需要筛选和搜索。

假动作:只显示获得不显示消耗;只显示最近十条;显示变动值但不显示变动后余额。这三种都会让用户加不出顶上那个总数,而一本加不出总数的流水,比没有流水更伤——它把一个模糊的疑虑升级成了一个具体的矛盾。

额外一句:退款反扣、客服补偿、系统修数这三类变动必须出现在流水里,而且事由要写人话。写“系统调整”等于没写。

第二块:汇率,把分换算成钱写出来

最小实现:在余额数字下面加一行小字:约合多少钱。就这一句。

假动作:把汇率写进条款页第七条;或者只在兑换页显示,而用户要先决定去兑换才能看到——这就成了先有鸡还是先有蛋。也别写成“100分可抵扣1元起”,那个“起”字会让整句话重新变得不可计算。

常见反对意见:写死汇率会限制运营灵活性,将来想调就麻烦了。保哥的回应是,你现在不写,用户心里的估值是零,你根本没有可以损失的灵活性。真要留余地,就把这句话写成“当前可抵扣约多少”,把“当前”两个字担起来。

顺带的好处:这一行字同时解决了跨市场的问题。多币种站点最容易在这里翻车——积分是全球统一的一个数,抵扣价值却随币种变。把价格格式排得像本地店那一套动作,在积分抵扣这一行上同样要走一遍,否则一个欧洲用户看到的换算值可能带着美元符号。

第三块:有效期,把作废这件事提前说

最小实现:在余额旁边写清楚最近一批分什么时候到期、有多少。不是“积分有效期一年”,是“其中320分将在9月30日到期”。

假动作:只做到期前的邮件提醒。这是保哥自己栽过的坑,下一节会详细讲。站外触达是补充,站内那行字才是主体——因为用户看余额那一刻,正是他最可能采取行动的一刻,而邮件到达的时候他大概率在忙别的。

还有一层:作废发生之后,流水里必须留一行。这件事听起来是废话,实际上是最常见的漏项,原因在下一节。

第四块:待入账,把中间态显示出来

最小实现:把已下单但尚未确认的积分单独标出来,注明什么条件下会正式到账。推荐奖励尤其需要这一条——朋友下单了、退货期还没过、奖励还没结算,这段时间用户什么都看不到,只能怀疑自己是不是被赖账了。

假动作:把待入账混进总余额里显示。用户以为能用,到结账页发现用不了,这一次落差造成的伤害比从头不显示还大。

为什么这块经常被漏:因为中间态在数据库里往往不是一个独立状态,而是一条“还没写进去的记录”。没有记录就没有可展示的东西,于是这段时间在界面上是一片空白。这跟订单状态和状态机被混为一谈是同一类结构问题——业务上明明有三个阶段,数据模型里只有两个。

四块之外,还有一个位置问题

四块都做了,还可能白做,如果它们被放在了错的地方。

正确的位置只有一个:紧贴着余额那个数字。用户看到余额的那一瞬间,是他对这三个问题最有兴趣的一瞬间——这数怎么来的、值多少、什么时候没。隔一屏、隔一次点击、隔一个折叠区,兴趣就衰减一大截。

Baymard在账户与自助服务那一轮研究里反复观察到的一件事是,用户在账户中心的行为模式是找目标而不是逛:他带着一个具体问题进来,找不到就退出去,不会顺手浏览旁边的入口。所以把积分流水做成一个需要在账户中心里翻两层才能到达的页面,效果约等于没做。

一张对照表,方便直接抄进需求

补什么最小实现验收动作
流水日期、事由、变动值、变动后余额四列从下往上加,能不能加出顶部余额
汇率余额下面一行“约合多少钱”不点任何东西,这句话在不在第一屏
有效期最近一批到期的时间和数量作废之后流水里有没有那一行
待入账与可用余额分开显示,注明到账条件结账页能用的数,跟余额页显示的是不是同一个

四行加起来,工作量大概是一个前端加一个后端两周的事,而且不改任何业务规则、不多花一分营销预算。它唯一的难处在于,这四件事在需求排序会上永远排不进前十——它们不涨转化率,上线当天没有任何一个数会动。下一节讲的就是它们排不上去之后会发生什么。

两件经常被追问的事:积分商城和进度条

提这四块的时候,几乎每次都会有人问:那积分商城要不要做?进度条要不要加?两件事都值得单说,因为它们的排序位置常常被摆错。

积分商城的问题是它经常被当成第一步。逻辑听起来顺:有了兑换的地方,用户才有攒的动力。但实际发生的是,一个不知道自己有多少分、不知道一分值多少钱的用户,走进积分商城之后要做的第一件事仍然是折算——而且这次更难,因为商城里的商品往往是他在别处没见过的,连参照价都没有。

保哥的顺序建议是:先把汇率和流水补上,再做兑换场景,而且第一个兑换场景最好是抵现,不是换物。抵现的折算成本是零(一百分抵一元,这句话本身就是答案),换物的折算成本很高(这个杯子值多少钱,用户得自己去搜)。等抵现跑顺了,用户对这本账建立起信任了,再上换物那一套才有意义。

进度条的问题正好相反,它便宜到应该顺手做,但很容易做成一个假动作。“离下一级还差多少”这句话之所以有效,是因为它把一个抽象的等级体系翻译成了一个具体的差额。做假的方式也很典型:只显示百分比不显示差额(百分之七十八,然后呢),或者只显示等级名不显示条件(你是白银会员,怎么变成黄金?)。

判断标准还是那一条——用户看完这句话,能不能当场折算成一个行动?“再消费两百元升级黄金”能,“进度78%”不能。

两周排期的建议顺序

四块加两件附加的,如果要排一个两周的顺序,保哥会这么排:

顺序做什么为什么排这个位置
第一天余额下面加一行换算一行文案,当天可上,立刻改变用户对这本账的估值
第一周流水页四列数据现成,工作量集中在前端
第一周同期补上作废与退款反扣的事件记录后端改动,跟流水页同时上才有意义
第二周余额旁边的到期提示依赖上一条的批次数据
第二周待入账独立显示依赖状态字段,可能要动数据模型
之后进度条、兑换场景、积分商城前面几块没做完,这些都建在沙子上

这个顺序有一条隐含的原则:先做让用户看得懂的,再做让用户花得掉的。反过来做的站不少,通常的结果是兑换入口很漂亮,进去的人很少。

还有一个所有人都会忽略的位置:结账页

四块之外,补一个位置。用户手上有分、正在结账,这一刻是整条链路上他最可能兑换的时刻——比他打开会员中心的时候更可能,因为兑换在这里能直接变成少付的钱。

但很多站的结账页对积分只字不提,或者把抵扣藏在一个需要展开的优惠码区域里。一个手里有分的用户在结账页没看见任何提示,你损失的不只是这次兑换,还有他对“这些分到底能干嘛”的又一次确认失败。

最小实现同样很轻:在支付金额附近加一行“你有多少分,可抵扣多少钱,是否使用”。默认勾选还是默认不勾选是另一个话题,但至少这句话得在。结账页放弃率为什么居高不下那篇拆过这块画布上的其他几类问题——结账页寸土寸金,但积分抵扣这一行是少数几个既省用户的钱、又提你自己复购的东西。

四块补完之后还有一个隐性收益:客服在处理积分争议时第一次有了可以指的东西。在此之前他们只能背规则,背规则解决不了任何一次具体的对不上;有了流水,一次争议的平均处理时长通常会掉到原来的一半以下。

保哥的失手:一件靠时间自动发生的事,在系统里连一行记录都没留下

积分兑换率翻了一倍多,这条线看着收得很漂亮。第九个月客户财务来要一个数,保哥拿不出来,才看清漏掉的是什么。

这一节讲保哥自己的一次失手,位置就在上一节那张表的第三行——有效期那一格。

客户是一家做运动营养的出海独立站,卖蛋白粉、氨基酸、电解质冲剂这类东西。这个品类的特点是复购极高、单价中等、用户囤货,一次买三罐是常态,所以会员积分对他们来说不是锦上添花,是把复购周期缩短两周的主要抓手。

接手的时候他们的积分体系已经跑了两年多,参与率不低,但兑换率一直是个位数——发出去的分绝大部分躺在账上没动。按前面那套判断,问题很明确:有余额,没流水,没汇率,没有效期提示。

做了什么,结果怎么样

做的事就是上一节那四块里的三块,两个人做了大概三周:

  • 上了积分流水页,四列齐全,事由能点回订单;
  • 在余额下面写死了一行换算,100分等于1美元;
  • 做了到期前30天的邮件提醒,带上到期数量和一个直达兑换页的链接。

结果相当漂亮。兑换率从个位数涨到两成出头,翻了一倍还多;提醒邮件的打开率和点击率都在同类营销邮件的平均线以上,从邮件点进来的那批人当月下单率明显高于大盘。复购间隔也缩短了,虽然幅度没有兑换率那么好看。

项目按计划收尾,复盘会上这条线被记成一次成功。保哥自己也是这么认为的。

第九个月,一个我拿不出来的数

转折发生在第九个月。客户的财务在做年度递延收入核销,需要一个数:本年度作废的积分金额是多少。

这个问题按前面第五节的逻辑是完全合理的——积分是合同负债,作废掉的那部分要按规矩处理,财务每年都得报。但保哥当时拿不出来。不是数据不存在,是没有任何一张表把作废当成一件事记下来过。

翻到最后是这么找出来的:积分余额表里有一个批次的过期时间,跑批任务到点把对应批次清零,写回余额。整个过程中,余额表里那个数字变小了,而事件表里没有新增任何一行。流水页之所以显示不出作废,不是前端漏了,是后端从来就没有这条记录可以给它。

把跑批日志一年份翻出来重新聚合,才算出那个数。结果是:那一年被清零的积分,按面值折算大约相当于当年积分总发放量的四成多。更难受的是分布——被清零的用户里,相当大一部分余额停在兑换门槛的下方一点点,也就是那种“再买一单就够换了”的位置。

为什么这件事能藏九个月

四道关口,每一道都没拦住,而且每一道都不算失职。

第一道,邮件那条链路指标齐全。打开率、点击率、召回单量全都有,而且都不难看。但它测的是我们提醒了多少人、多少人回来了,它从来不测还有多少人没回来。一条只统计成功的链路,天生看不见失败。

第二道,会员看板上的兑换率反而在帮忙掩盖。那张看板有三个数:累计发放、累计兑换、兑换率。作废掉的那部分静静地留在分母里,让分母虚高、兑换率虚低。而一个被低估的指标不会触发任何警报,它只会让人觉得“还有提升空间”——这是最温和、也最有效的一种消音方式。

第三道,客户运营每月看的都是增量。当月新增会员、当月兑换单量、当月积分发放,三个数全是增量口径。存量的流失不在任何一个里面。

第四道,我自己把邮件上线当成了这条线的收尾。原因很简单也很难堪:因为它是这条线上唯一一件有交付物的事。写死汇率是一行字,流水页是一张列表,都在验收清单上打了勾;而“到期这件事在系统里有没有留痕”不在任何人的清单上,因为它没有交付物。

这次的原语:没有人做的事,不会有行号

这次的教训跟以往几次都不一样,前几次的失败形态或多或少还是“预警响了但没被正确处理”。这一次压根不存在预警这个东西,因为记录本身就是缺席的。

把它抽象出来是这么一句:一个系统里被记录下来的永远是“有人做了什么”,而伤害往往发生在“没有人做什么”的时候。凡是靠时间自动发生的状态变化——积分过期、等级降级、订阅自动续费、保修到期、退货窗口关闭、优惠券失效——它们在事件表里没有行,在报表里就没有位置,在周会上就没有人提。

判据可以直接抄:把你的事件表拉出来,逐条问“这一行是谁触发的”。能答出用户或者运营的,都是有主的事件;只能答出“时间到了”的,就是这一类。然后去数一数这一类事件在你库里有多少行——多半是零,因为它们压根没被写进去。

顺带一提,这条判据在别的地方也管用。退换货政策页那一侧同样存在这个问题:退货窗口是怎么关闭的?没有任何人点过任何按钮,它就是到点了。于是“有多少人在窗口关闭后一周内来问退货”这个数,也常常没人有。

改了三条

  1. 任何靠时间自动发生的状态变化,必须在事件表里写一行,哪怕触发方是系统。字段照旧记时间、对象、变动值和原因,触发人写成系统即可。这一条现在是保哥给会员体系做技术评审时的固定检查项。
  2. 兑换率的分母改成当期可兑换余额,同时把当期作废金额单列一行挂在同一张看板上。两个数放在一起,兑换率才有意义;分开放,兑换率就是一个被作废量污染过的数字。
  3. 到期提醒不许只做成站外触达,必须同时做成余额数字旁边的常驻文字。站外触达负责把人叫回来,站内那行字负责在他已经回来的时候不让他错过。两者不能互相替代。

附带收获:这本账第一次有了共同的量纲

那笔作废金额算出来之后,有个没预料到的效果:会员体系第一次有了一个可以放进损益表的数字。

在那之前,所有关于会员的争论都是定性的——要不要给积分加有效期、要不要提高兑换比例、要不要把汇率写清楚,每一条都能从用户体验和成本控制两个方向各讲出一套道理,谁也说服不了谁。有了那个数之后,这些争论突然有了共同的量纲:加有效期能省下多少、写清汇率会让多少负债更快兑现、提高兑换比例又会把这两个数推向哪边。

由此定下一条做法:做会员体系的第一件事,不是设计规则,是先把这本账的四个总数算出来——发了多少、兑了多少、废了多少、还挂着多少。四个数一列,很多规则问题自己就有答案了。算长期价值老是算错那篇讲的是同一件事在获客侧的版本:先把口径立住,再谈优化。

那个跑批任务当初为什么会那么写

回头看这件事,最值得记的不是谁疏忽了,而是那段代码在写的时候,每一个决定都是合理的。

过期逻辑通常是这么诞生的:产品说积分一年有效,开发想的是每天跑一次,把到期批次的可用额度清掉。这是一个数据清理任务,不是一个业务事件——它的心智模型跟清理临时文件、归档老日志是同一类。而数据清理任务从来不需要给用户写通知,也不需要往事件表里写行。

问题就出在这个心智模型上。在开发眼里它是一次清理,在用户眼里它是一次扣款。同一个动作,两边看到的性质完全不同,而代码是按前一种写的。

这也解释了为什么这个坑这么普遍:它不是某个团队水平不行,是“到期”这件事天然长得像技术任务,不长得像业务事件。识别它需要有人主动把视角切到用户那一侧,而在需求评审会上,通常没有一栏是留给“这个动作在用户看来是什么”的。

卡在门槛下方那批人,为什么最该被叫回来

那次事后分析里最扎心的一段,是被清零的用户里有很大一块,余额停在兑换门槛下方一点点。

这批人的处境值得琢磨:他们不是不想兑,是差一点点。而这个“差一点点”在设计上恰恰是分层激励最想要的状态——用户为了凑够而多买一单,这是整套机制成立的核心。结果这个最理想的状态,在没有到期提示的情况下,变成了流失率最高的状态。

更难受的是它的二阶效应。一个攒到差一点点然后被清零的人,下一次的行为不是重新开始攒,而是确认了一件事:这套东西攒了也白攒。这个结论比从没参与过更难扭转,因为它是他自己用一年时间验证出来的。

所以到期提醒的优先投放对象根本不该是余额最多的那批人(他们的分足够多,随便一次兑换就用掉了),而是余额刚好卡在门槛下方的那批。给他们的提示也不该是“你有多少分即将到期”,而是“再买多少就够换了,而且你的分下个月到期”——两句话合成一句,它同时解决了折算和紧迫感。这条规则不需要任何算法,一个区间判断就能实现。

跟前几次失手的形态,区别在哪

保哥写这类复盘写了不少次,每次都会刻意去对一下形态,免得把同一个教训换个壳再讲一遍。这一次的位置和以往几次都不一样:

  • 有几次是预警根本没有响——监控没覆盖到那个维度;
  • 有几次是预警响了但用了别的部门的语言,收件人看不懂;
  • 有一次是预警被当成捷报,数字朝着好的方向动,实际是口径坏了;
  • 还有一次是响了、准了、但收件人不对,看到的人无权处理。
  • 上一次是好消息的失败——指标对、方向对、涨幅是真的,但它描述的是一个混合群体,而混合比例本身在动。

这一次压根不存在预警这个东西。不是它没响、没被听懂、没被送对人,是那个事件在系统里从来没有过一行记录,所以没有任何东西可以拿来响。前几次失败的是信号的传递,这一次失败的是记录本身。

把这个区别记清楚很重要,因为它决定了你该去哪里找问题。信号传递出问题,你去查监控、查报警规则、查收件人;记录本身缺席,查这些一无所获,你得去查的是事件表里有没有这一类行。而这件事只能主动去做——一个从来没被写进去的记录,不会在任何一次排查里自己冒出来。

还有一个后来才想明白的点:这件事之所以能藏住九个月,一部分原因是它的受害者不会重叠。每个月被清零的是不同的一批人,每个人只经历一次,谁都不会觉得这是个系统性问题,只当自己没注意。

哪五个数不用新增埋点就能看,又该按什么顺序动?

五个数全在你已经存了很多年的表里:余额表、订单表、注册时间、结账时优惠到底有没有被用上。

最后一节收口:先给五个不用新增埋点就能看的数,再给一个决定先动哪一件的排序法。

五个免埋点指标

第一,积分余额分布的形状,尤其是卡在兑换门槛下方那一段。数据就在余额表里,一条查询的事。要看的不是平均值,是把余额按兑换门槛切开之后两侧的人数比,以及门槛下方那一段有多密。上一节那家客户被清零的用户里挤满了这一段的人,而这个形状在事发前一直就摆在库里,没人查过。

第二,首次兑换发生在注册后第几天。一个会员这辈子会不会真正使用这套体系,几乎在第一次兑换那一刻定型;从来没兑换过的人,后面也基本不会兑。所以这个数不是用来做报表的,是用来划线的——超过多少天还没有第一次兑换,就该把这批人从“会员”挪到“注册过的普通用户”这一格里重新对待。

第三,注册当天下单率与注册之后的下单率之差。这个差值能把两种人分开:为了眼前这一单的权益而注册的,和为了长期打算而注册的。前一种人的数量往往远超预期,Cole Haan那位受访者说的“我就注册一下,因为能免运费”就是典型。两种人的后续运营完全不该一样,混在一起算留存,得到的是一个谁都不像的平均数。

第四,进过账户中心却从没点开过积分那一栏的人数占比。这是“他根本没在攒”的最早信号,比余额本身早得多。访问日志里就有,不需要新埋点。这个数如果超过一半,说明你的问题还没轮到激励设计,还停在可见度那一层。

第五,也是保哥最看重的一个——有可用积分却在结账时没有使用的订单占比。这个动作在订单表里是有痕迹的:优惠有没有被应用,是一个已经存在很多年的字段。

为什么这个数最有说服力?因为一个手里有分、结账时却不用的人,是在用行动告诉你他不知道自己有分,或者不知道那些分值多少钱。这句话不会出现在任何一份满意度问卷里,也不会变成任何一张工单。把它跟兑换率放在同一页,兑换率就从一个营销数字变成了一个界面诊断。

四格交叉,先动哪一格

把第五个指标展开成两维:有没有可兑换余额 × 本单有没有用上。

本单用了本单没用
有可兑换余额体系正常运转,观察即可先动这一格:他有钱不花,说明界面没告诉他
没有可兑换余额不成立看注册时长再判断,别急着下结论

右上那一格是最高性价比的靶子,因为这批人已经在体系里、已经有余额、已经在下单,三个最难的条件全都满足了,卡住的只是最后一层信息。

右下那一格容易被误读成“这些人对积分没兴趣”。别急,先看注册时长——新客第一单本来就没有余额可用,把他们混进来会让这一格的结论完全变形。避免假胜利的那几个公式讲的是同一件事在实验设计上的版本:分组之前先想清楚这一格里到底装着谁。

一个不建议算的数

不建议算人均积分。发放极不均匀,少数重度用户能把平均值拉到一个没有任何真人待在那里的位置。

但这次要换个说法:在积分体系里,连中位数也没什么用。因为这本账上唯一有行为意义的分界线是兑换门槛,而门槛是一个固定值,不会因为你的用户分布而移动。中位数落在门槛左边还是右边,这个信息量远大于中位数本身是多少。所以正确的做法是看门槛两侧的人数比,而不是看任何一个集中趋势指标——集中趋势描述的是一个不存在的平均用户,人数比描述的是两群会做出不同行为的真人。

排序法:两维相乘

手上有一串要改的东西时,按这两维交叉排,比按预估收益排靠谱得多:

  • 第一维:这件事用户能不能当场自己折算成钱。不能折算的排前面。理由在第一节讲过——不能折算的东西在用户心里估值是零,你在它上面投入再多也换不回感知。
  • 第二维:这件事失败之后在你系统里有没有行号。没有行号的排前面。理由在第九节讲过——没有行号的失败永远不会自己浮出来,你不主动去做,它就会一直发生下去。

两维都占的那几件事,就是这篇文章从头到尾在讲的东西:汇率没写、有效期没提示、作废没留痕。它们既不能被用户折算,失败之后又在系统里一片安静,所以它们能安安静静地损耗一个会员体系好几年,而每年的复盘会上都没有人提。

挂成卡点,而不是做成专项

最后一条做法上的建议:凡是需要长期维持的一致性,都不该做成一次专项,要做成一个卡点。

专项的问题在于它有结束的那一天。这一轮把汇率写上去了,半年后改版,那一行小字在重新设计的会员页上没了位置,没有人会注意到——因为当初做它的人已经在忙别的了。

卡点的形式可以很轻。会员相关页面提测前过一张四行的清单:余额旁边有没有换算、有没有到期提示、流水能不能加出总数、待入账是不是独立显示。四行,两分钟。

放在提测前而不是上线前,这一点值得单说:上线前发现问题的代价是延期,于是它会被商量掉;提测前发现问题的代价是改两行代码,于是它会被改掉。同一张清单挂在不同的位置,通过率能差出一大截。

还有一条配套的提醒,是保哥吃过亏才记住的:新加的检查项必须先造一个会失败的例子跑一遍,确认它真的会红。否则你挂上去的是一个永远为真的检查,看起来在守,其实什么都没守——这跟本文开头那位受访者的处境,本质上是同一种:屏幕上有一个数字,背后什么都没有。

验收只需要一个动作

说了这么多,验收其实只有一个动作,而且不需要任何工具。

拿一个真实老会员的账号(不是测试号,测试号的数据往往是干净得不真实的那种),从首页出发,不用搜索、不直接输网址,看几步能走到“我这些分值多少钱”这一句话。

数不出来,就是没有。不用再讨论了。

这个动作之所以有效,是因为它同时验了三件事:这句话在不在(内容)、能不能被找到(信息架构)、以及要走几步(优先级)。三件事里任何一件不合格,用户的体验都是“不知道自己那些分有什么用”。

它没被做过,通常不是因为难,而是因为公司里每个人都知道汇率是多少。这句话值得多想两秒:一个团队对自己产品的熟悉程度,恰恰是它最难发现这类问题的原因。你不会去找一件自己已经知道答案的事,而用户要找的正是这个答案。

五个数怎么排进一张周报

五个指标全都不用新增埋点,但要真正起作用得挂在能被看到的地方。保哥的排法是三行,别贪多:

看它的目的
第一行本期发放、兑换、作废、期末挂账这本账的规模和方向,给财务和管理层看
第二行有可用余额却未使用的订单占比界面诊断,给产品看
第三行门槛下方人数、首次兑换中位天数运营抓手,决定这周该叫谁回来

第一行里那个作废数是整张表的锚。有了它,所有关于规则的争论都能落到同一个量纲上;没有它,会员体系永远是一个只有输入没有产出的黑箱——每年批一笔预算,每年拿不出一个能放进损益表的数。

顺带提醒一句:这三行数不该按自然月切,该按积分的有效期周期切。作废是按批次到期发生的,用自然月切会把同一批的作废劈成两半,画出来的曲线全是锯齿。这跟做实验时观察窗口要对齐用户行为周期是同一个道理,只是这里的周期不是用户定的,是你自己在发分那一刻定的。

最后一句

把整篇收成一句话:会员体系的成败不在于你给了多少,在于用户能不能算清你给了多少。

免运费之所以一句话就能说服人,是因为那笔账他一秒就算完了;积分之所以攒着攒着就没人管了,是因为那笔账他从头到尾没法开始算。中间隔着的不是激励力度,是三条你完全有能力补上的信息——这一笔从哪来、一分值多少、什么时候没。

三条信息加起来,成本是一张列表页、一行文案和一条数据库记录。这个报价,和它挡住的那些安静流失比起来,实在不算贵。

最后补一条排期上的提醒:这几件事最好一次做完再上线,别拆成三个季度。只有汇率没有流水,用户会觉得你在报一个自己都证明不了的数,反而比什么都不说更可疑。

常见问题解答

把积分汇率明明白白写出来,兑换率上去了,成本是不是也跟着上去了?

当期支出确实会上去,但那不是新增成本,是把一笔早就欠着的账提前还掉。按收入准则,未兑换的积分本来就挂在合同负债里,兑换只是让它从负债变成实际支出,你并没有多欠任何人一分钱。真正会变的是两件事:作废收益会变少,因为过期前被换掉的人多了;复购会变多,因为兑换本身几乎总是伴随一次下单。所以正确的算法不是比较兑换支出的增减,而是比较兑换带来的增量订单毛利和少掉的那部分作废收益。保哥经手的几次里,这个差额都是正的,但确实需要先把四个总数算出来才敢下结论。

我们站会员基数很小、积分池也小,这四块还值得做吗?

越小越该早做,成本也越低。积分体系的信任是在用户第一次看余额那一刻定型的,那时候他的余额通常只有几十分,你会觉得完全不值得投入——可等余额攒到值得他认真对待的规模,他早就不看那一栏了。而且盘子小的时候做,工作量是一张列表页加一行文案;等积分池大了再补,你要先面对历史数据能不能还原成流水这个麻烦,很多站的老数据根本回填不出每一笔的来处。这件事的成本随时间单调上升,收益随时间单调下降,所以“等做大了再说”几乎总是最贵的那个选择。

积分到底该不该设有效期?会不会显得很抠门?

该设,但决定成败的是告知方式而不是期限长短。有效期本身在业内是常态,用户对“一年有效”的接受度远高于团队想象;真正让人反感的是到期那天悄无声息地清零,事后连一行记录都查不到。所以设期限的同时必须配三样:余额旁边常驻显示最近一批的到期时间和数量、到期前的站外提醒、以及作废之后流水里那一行。三样齐了,期限设一年设两年都行;三样缺了,设三年用户照样觉得被坑,因为他根本不知道自己被扣了什么。另外,到期提醒优先投给余额卡在兑换门槛下方那批人,他们最容易被叫回来。

我们已经做了到期提醒邮件,站内那行文字是不是重复建设?

不是重复,两者拦的是不同的人。邮件负责把已经不来的人叫回来,站内那行字负责在人已经来了的时候不让他错过。这两拨人的重叠比想象中小:会打开会员邮件的通常是本来就在关注的那批,而站内看到余额的那一刻,恰恰是用户最可能立刻行动的时刻。保哥在运动营养那个客户身上栽的跟头就在这里,只做了邮件就当这条线收尾了,结果一年被清零的积分按面值算相当于当年发放量的四成多。只做一半的代价,是它在报表上看起来跟做完了一模一样。

会员价和积分,如果只能先做一个,先做哪个?

先做会员价,理由有两条。第一,它的折算成本接近零,用户看一眼就知道省多少,说服力不需要任何解释;积分要先回答能挣多少、值多少、什么时候没三个问题才能被定价。第二,会员价能通过结构化数据出现在搜索结果里被非会员看到,等于自带一个招募渠道,而积分在规范里连表达价值的字段都没有,搜索侧拿不到任何位置。要注意的是折扣得够大,谷歌只在会员折扣达到常规价百分之五以上或者五个单位货币以上时才展示,卡在下面等于没做。

用户跑来说积分对不上,客服该怎么处理才不越描越黑?

核心是别用规则回答账目问题。用户问的是“我这一单的分呢”,客服回一段积分规则,等于确认了他最担心的那件事——你们自己也说不清每一笔。正确的做法是把那笔具体记录调出来给他看:哪一天、哪一单、加了多少、当时余额多少。如果确实是退款反扣或者活动补发,就把事由写成人话说给他听,用户对合理的扣分接受度很高,对不作说明的扣分接受度为零。长期的解法当然是把流水页做出来,让他自己就能查到,客诉这条线自然会瘦下去。

会员计划的结构化数据现在就上,还是再等等?

如果你的市场在谷歌已经开放的那八个国家里,并且已经有会员专享价,那就现在上,因为它是少数几个能把会员权益推到搜索结果里的通道。要留意的是这套标记要求站上展示的信息和提交的数据对得上,谷歌会去核对,对不上会导致商品被拒,所以上之前先把商品页、会员总览页和条款页三处的口径统一一遍。反过来说,如果你的会员权益目前只有积分没有会员价,那这套标记暂时给不了你什么,可以先把站内那本账补完再回头看。要提醒的是,会员计划的标记该嵌在组织信息之下、写在放企业信息的那一页上,不必每个商品页复制一份。

权威参考资料

分享到
标签
版权声明

本文标题:《免运费三个字让所有测试用户当场注册,积分那一栏他们连自己攒了多少都说不清》

本文链接:https://zhangwenbao.com/loyalty-points-ledger-verifiability-member-pricing.html

版权声明:本文原创,转载与引用请注明作者与原文链接。许可协议: CC BY 4.0

继续阅读
发表评论
分享到微信 或在下方手动填写
支持 Ctrl + Enter 提交