互联网和产品 · 2019年12月18号 0

为什么你总是不中奖?谈谈抽奖类产品的概率设计

平心而论,你有没有觉得很多抽奖活动根本就是骗人的?反正没抽中我,我就感觉是骗人的。

其实也不怪大家会有这种感觉,因为抽奖的概率基本上对用户来说是黑盒,你完全不知道程序到底做了什么。因此才会有某某公司年会抽奖现场审查代码的桥段,即使自己公司的人,也不相信这抽奖代码没问题,更别说素不相识的用户了。

那么,除了那句冷冰冰的“该活动最终解释权归 xxx 公司所有”之外,我们还能否了解更多关于抽奖逻辑的信息呢?答案是肯定的。

本文中姬小光将向大家展示,一些基本的概率设置以及可能出现的”潜规则“,就算找客服也可以聊得明明白白。

一、简单的抽奖

抽奖的基础依赖一个随机数,确切地说是伪随机数,即并非真正的随机。但是在统计学意义上,具有足够的不确定性,所以可以当作随机数来用。那么,假设我们有 5 个奖品,则使用程序语言抽取 1-5 之间的随机数:rand (1, 5)

那么得到的结果,一定是 5 个奖品中的一个,并且概率均为 1/5。

这个例子比较简单,只是让大家了解抽奖的基本原理。这个逻辑是最简单直观不容易掺假的,因此,如果年会一定要看着代码抽奖,那么就用一个简单的随机数算了,把全公司的人丢进去随机即可,至少看起来很公平。

二、增加奖品

按照简单抽奖的逻辑,如果需要增加奖品,只需要将随机数的范围加大即可,比如奖品数变为 10 个,则从 1-10 中取随机数:rand (1, 10)

这样每个奖品被抽中的概率就是 1/10:

为什么你总是不中奖?谈谈抽奖类产品的概率设计

三、非必中

前面展示的都是必中的逻辑,注意,只是逻辑上的必中,实际的抽奖还会发生很多状况。

那么,如果不希望所有人都中怎们办?只需要中间的某个坑位当作“谢谢参与”即可。同样,此时“谢谢参与”的概率也是 1/10。

你还可以把更多的坑位当成“谢谢参与”:

为什么你总是不中奖?谈谈抽奖类产品的概率设计

但是抽奖的 UI 上,如果有多个“谢谢参与”可能会引起用户的不满。因此我们需要的是,“谢谢参与”只占一个坑位,但是被抽中的概率可能非常非常大。

四、调整概率

目前,我们的随机数是限定区间内的整数,刚好可以和第 N 个奖品对应,概率只能平均分布。那么如何让 90% 的人都抽到“谢谢参与”呢?

假设我们仍然是 10 个坑位,其中一个是“谢谢参与”。想象随机数区间是一把长度为 10 厘米的尺子,我们要做的,就是把 9 个奖品都放在尺子的第一格,只有随机数为 1 的才能中奖,其余都是“谢谢参与”。这样就做到了 10% 的人中奖,90% 的“谢谢参与”。

那么问题来了,9 个奖品都在第一格,抽中了给哪个?

按照之前的思路,这个问题也很好解决,想象 10 厘米的尺子上面有毫米刻度,即 100 毫米。那么第一个厘米格内就又有 10 格,可以将其中 9 个分别分配给 9 个奖品,剩下一格也作为“谢谢参与”。最后得到的就是 91% 的“谢谢参与”和 9% 的中奖。

当然,你也可以把两格都分配同样的奖品,或者准备 10 个奖品放在第一格,就仍然是 90% 的“谢谢参与”和 10% 的中奖了:

为什么你总是不中奖?谈谈抽奖类产品的概率设计

按照这个思路,我们可以把尺子拆成 1000 个单位,10000 个单位,以此来精细控制抽奖概率。

五、百分比概率

等等,概率不应该都是百分比吗?

这个看不懂啊……假设程序产生的伪随机数是均匀分布的,那么,我们可以很容易地将百分比转换为区间使用。假设总区间有 10000 个单位,那么某奖品设置 5% 的中奖概率,即相当于把奖品放在 1-500 的格子内:

为什么你总是不中奖?谈谈抽奖类产品的概率设计

六、库存控制

前面讲了基本的概率设置,那么如果用户抽到了包含奖品的格子,但是奖品没库存了怎么办?两个选项:

  1. 通知用户未中奖;
  2. 如实通知用户奖品无库存。

显然,第一个选择要更好一些,因为抽奖过程是黑盒,用户不知道是因为概率没抽中,还是什么其他原因。但是你如果告诉用户抽中了,却通知用户没有库存,这就很难接受了,除非你有后续补货给用户的流程。

为什么你总是不中奖?谈谈抽奖类产品的概率设计

七、其他异常

与库存类似,抽奖过程还可能出现其他异常,也只能通知用户未中奖:

为什么你总是不中奖?谈谈抽奖类产品的概率设计

八、百分百中奖

运营活动中经常希望实现百分百中奖,以此作为噱头吸引用户。但现实中可能有如此确定之事吗?

当然不能。想象一种场景,用户刚刚点击了抽奖,但是用户的网络断了,那么这时候服务器是没有收到请求的。假设你的抽奖 UI 是个转盘,360 度无死角全都是奖品,那这种情况下指针停到哪里呢?隐藏?还是告诉用户系统出错了,本次抽奖作废?

如果不想有这些糟糕的体验,那么也有两个选项:

  1. 不告诉用户出问题了,指针停到最小奖品;
  2. 预留“谢谢参与”放弃百分百中奖噱头。

选项 1 的体验无疑是最好的,那么你要接受的就是,用户拿着手机截图过来要奖品,你只能认。因为你服务器没有任何记录。如果恶意用户发现这个可行,找一群人拿截图要奖品,就比较麻烦了。当然,最小奖品也可以是无价值的卡券,比如需要消费才能使用的优惠券,就不怕了。

选项 2 是推荐的方案,不如直接放弃百分百的噱头,就像话不能说得太死一样,活动规则设置也要留有余地。

九、抽完奖品

有些时候,我们的预算是固定的,不花白不花,因此就需要有足够的人把奖品抽完。在概率一定的情况下,假设我们有 100 件奖品,中奖概率是 10%,那么理论上只需要 1000 左右的人即可抽完。但概率毕竟是概率,只有重复抽奖的次数足够多的时候,才能接近理论值。因此,严格来说,这种固定的概率设置不太可能把奖品抽完。

那么调高概率是不是就很容易被抽完呢?

也不一定,假设有 100 件奖品,设置了 99% 的中奖概率,但是只有 50 个人参与了活动(太惨了吧),也还是抽不完。所以,如果一定要把东西都送出去,我们就需要动态地调整抽奖概率。

十、动态调整概率

所谓动态调整,就是根据活动参与情况,奖品库存情况,是否有薅羊毛等异常情况,以及其他一些特殊情况来实时调整抽奖概率。

大致可以分为三种类型:

1. 快快抽完

如果希望奖品尽快被全部抽完,那么假设活动时间都过了一半,奖品还剩下很多,则说明最初的中奖概率设置过低,要适当调高概率。可以直接调高某个奖品的概率,也可以将库存耗尽的奖品的概率区间平摊给其他奖品。比如:总共 6 个奖品,其中一个中奖率为 10% 的奖品无库存,那么可以让其他 5 个奖品每个增加 2% 的中间概率,覆盖这部分无库存的区间。

2. 慢慢耗你

按照 1 的逻辑,如果不小心把概率调高了,活动还剩下一周的时间,可是奖品没了,也是很尴尬的。所以作为运营,最稳妥的方式还是慢慢耗,保证奖品以相对稳定的速率消耗,才能保证活动的持久性。因此,某个固定奖品数量的抽奖活动的开始和结束时间附近,可能更容易中奖。

3. 紧急刹车

我们搞运营活动,总是难免遇到一些异常情况,比如忽然出现的羊毛党。那么此时,对于高价值的奖品,最好有个紧急的开关,可以直接拦截恶意操作。比如微信发放红包的接口,就需要可以快速关停的功能。

这里出于安全考虑,最好是有系统的判断逻辑,如果等运营人员发现之后手动修改概率或开关,可能就来不及了。当然,这里可以设置多道防线,比如微信商户后台可以每天只充当天的预算金额,大不了薅掉两百块。

不管是哪种策略,其实都是要维护参与人数与奖品库存、概率三者的平衡,才能让抽奖活动稳定进行。

目前为止,我们讲的都是诚实可信的良心活动,那么如果这个抽奖活动完全是空手套白狼,没有奖品,我们有什么办法呢?没有,毕竟最终解释权归 xxx 所有。

小提示:商家在活动页面写这句话是不具有法律效力的,还可能被行政处罚,具体原因请见相关法律法规。

“经营者向消费者提供商品或者服务使用格式条款、通知、声明、店堂告示等的,应当以显著方式提请消费者注意与消费者有重大利害关系的内容,并按照消费者的要求予以说明,不得作出含有下列内容的规定:… (六)规定经营者单方享有解释权或者最终解释权;……”

——《侵害消费者权益行为处罚办法》第十二条

十一、默认奖品

有时候,虽然系统出现异常,或者某些奖品无库存,但我们并不希望当前这个用户抽到“谢谢参与”。为了不让用户失望,我们可能会设置一个默认奖品,即当系统出现问题,或者某个奖品无库存的时候,自动发放这个奖品。那么这个奖品,除了基本的中奖概率设置外,还要保证充足的库存,如果这个也没库存了,那就还是落到“谢谢参与”。

十二、必中奖品

对于经常参与抽奖活动的用户,你一定不想让 TA 失望。在用户抽了很多次都没中的情况下,我们可能想安抚一下用户,主动给用户派发某个奖品。这里,就需要记录用户的未中奖次数,累加到我们规定的数值时,即可发给用户某个奖品,然后再将累加记录清零即可。

十三、提高个别用户的概率

如果经常参与的用户太多,可能必中逻辑也扛不住,那么可以考虑只是增加特定人群的概率,姑且称之为“概率膨胀”吧。那么按照前面散落区间的理论,假设整体的区间为 1-10000,而用户抽到了随机数 9296,刚好落在了“谢谢参与”。

那么概率膨胀要做的就是,把用户的随机数两侧扩充一定的范围,看扩充后的范围能否命中某个奖品:

为什么你总是不中奖?谈谈抽奖类产品的概率设计

十四、降低个别用户的概率

提高概率相对容易,只是把单点的随机数,扩充为区间即可。那么,要想降低某个用户中奖的概率该怎么办呢?用户的随机数是没法改变了,也就是说,用户已经站在了那个点不动了。

这时系统有三种选择:

  1. 大奖换小奖;
  2. 缩小奖品的中奖区间;
  3. 不给中奖。

综合考虑平台对用户的定性,是黑名单不允许中奖,还是其他原因降低概率,然后分别采取这三种措施即可:

为什么你总是不中奖?谈谈抽奖类产品的概率设计

十五、没有奖品的抽奖概率

对于没有奖品的抽奖,目的一般有三种:促活;消耗积分等资产;搜集用户资料

既然没有奖品,那么也没什么概率了,所有都返回“谢谢参与”即可。这种活动属于欺骗消费者,但是往往很难取证,因此才有第三方的代码 review 公司,可以审查运营活动的代码,并出具证明。实际操作起来还是有很多问题要解决的,比如审查到哪个版本,如果继续迭代发布如何处理等等。

好了,以上就是关于抽奖概率的全部,我们可以总结一下你不中奖的原因大概有:

  1. 没有奖品;
  2. 抽到了没库存的奖品;
  3. 系统故障;
  4. 干过坏事被拉黑;
  5. 真的没抽中。

综上所述,没抽中可能有多种原因,但是归根结底,还是运气差了些。不过,起码看完本文之后应该可以心理平衡一些了。