华企号 软件工程 抽奖系统开发设计分享案例

抽奖系统开发设计分享案例

抽奖系统的使用场景
1,主动使用的场景,抽奖是一种游戏产品出现的,利用的是人们对“赌”的一种天然偏好。抽奖人通过完成任务或者使用虚拟资产来获得抽奖机会,常用于各种推广或促活的场景。
2,被动使用的场景,对于大量人竞争少量物品的时候,抽奖则是一种较为有效的机会分配方式。例如火车票、限量商品等的购买。

什么是抽奖系统?抽奖软件购买和开发交流,李铁牛15889726201

抽奖系统开发设计分享案例插图

可以简单理解为一个转盘,每个奖品占据一个角度区域,和不中奖一起构成一个完整的圆形。每次抽奖即启动一次指针旋转,最后指针停在的角度区域就是抽奖结果。

抽奖系统的关键因素:奖品及其中奖概率;还有一些与抽奖系统无关,但也会影响关键因素的因素:奖品数、抽奖次数(人数)。

从一个例子出发

某一天,同时接到两个业务方的需求,都要做抽奖,都是奖品有上限的情况,但他们对抽奖的需求偏好却不太相同。具体如下:

业务1的期望:在活动时期内,希望中奖数能均匀产出,即在每个时段的中奖数相同,不希望很快就被客户抽完所有的奖品,以保证活动的时效性。

业务2的期望:在活动时期内,希望用户随时进来时都有相同的中奖概率,即在每个时段的中奖概率相同,让抽奖人获得持续的正向刺激,以保证活动的吸引力。

满足的情形

1,当每个时段的抽奖次数都不大于预期且数量恒定不变时。

——但这种情形几乎不可能发生,主要是参与抽奖的人数量不可能恒定。

不满足的情形

1,当每个时段的抽奖次数都不大于预期,且数量变化

能满足概率恒定,但不满足中奖数均匀。因为根本没达到投放量。

2,当每个时段的抽奖次数都大于预期

能满足中奖数均匀,但不满足中奖概率恒定。因为奖品发完后,后面的人中奖概率只能自动调为0。

且无论大于预期还是不大于预期,都是我们所不能控制的。

结论:不可能同时满足上述两条要求,而只可能满足其中一条。

方案1:只满足每个时段的中奖数相同

将奖品数量平均分布到每个时段上,根据预计的抽奖次数计算出基准中奖概率。

如果某个时段的抽奖次数大于预期,即奖品不够,采用先到先得,后来的人中奖概率调为0,就存在时间的不公平性;

如果某个时段的抽奖次数小于预期,即奖品多了发不完,但这本身不是系统的问题,而是活动策划与推广的问题。

如果能接受时间不公平,方案1就是可行的。而如果不能接受,那就要突破每个时段中奖数相同的前提来进行优化了。

方案1优化:

动态调整投放量,最终通过调整抽奖次数来延缓时间不公平性的到来。

当上个时段的抽奖次数小于或者大于我们的预期次数,我们在下一个时段相应地调低或调高投放量。

怎么调?计算公式有待研究,调的幅度如何控制。

方案2,只满足每个时段的中奖概率相同

将所有奖品一起投放,所有人的中奖概率相同,先到先得,发完奖品活动就结束。——虽然保证了时间公平性,但活动的时间可能达不到预期。

如果能接受活动提前结束的问题,方案2就是可行的。而如果不能接受,那就要突破每个时段中奖概率相同的前提来进行优化了。

方案2优化:

允许每个时段的中奖概率不同,尽可能达到活动的时间要求。

每个时段的中奖量不设限,但根据上一时段结束时累计已中出的奖品数,实时调整后续时段的基准中奖概率,当奖品发完时,则结束该奖品的抽奖。——但如果前面的抽奖次数太多,活动依然可能会提前结束,而且也必然存在调整中奖概率带来的时间的不公平问题,只是问题暴露的没那么突兀,而是一个逐渐变为0的过程。

调整方式:

假设总奖品数是100个,基准中奖概率50%,希望10个小时发完,那么每个小时的投放量是10个奖品。且假设小样本的实际比率等于概率。

如果上一个时段中出了5个奖品,那么后续时段的基准概率,则为95/(100/50%)*9/10=52.8%

如果上一个时段中出了15个奖品,那么后续时段的基准概率,则为85/(100/50%)*9/10=47.2%

如何判断用哪个方案?

从技术角度来讲,方案2肯定是最简单的,方案1次之,两个优化方案会相对复杂。但也要考虑优化方案和基础方案的差异有多大。

首先,我们能否预估到可能的总流量,如果可以的话,设定一个较大的预计抽奖次数,那么方案2无疑是最佳的。

其次,我们能否预估到流量的变化趋势,如果可以的话,方案1的优化方案甚至可以提前人为的设定。

另外,因为各种方案有不同的优缺点,那我们就要选择我们更侧重的目标。例如是更看重活动的时间,还是更看重用户抽奖的体验。

中奖概率如何设定

中奖概率只取决于我们希望达到的活动的ROI。因为抽奖次数算是收益,而中奖数是成本,那么ROI就是我们的中奖概率。

PS:关于抽奖次数是否完全等于我们的收益,就需要检测抽奖用户的质量了,防止垃圾流量的涌入。

多奖品抽奖

单个奖品的逻辑相同,某个奖品抽完后,该奖品的中奖概率被补给“未中奖”

特殊规则

1,需要调整某些人的中奖率,甚至必中

前面的讨论,基本把用户平等对待的,但为了保证活动的效果,有时候,我们会需要调整不同用户的中奖概率。

方案如下:

对每个奖品增加配置项,允许不同角色的人获得不同权重的中奖概率。

假设奖品A有10个,基准中奖概率是10%,奖品B有20个,基准中奖概率是20%。

同时,对于奖品A,允许特殊人群A获得2倍中奖权重,奖品B,允许特殊人群A获得3倍中奖权重。

那么特殊人群A,当前的奖品A的实际中奖概率为10*2/(10*2+20*3+70)=13.3%,当前的奖品B的实际中奖概率为20*3/(10*2+20*3+70)=40%——70是“未中奖”的个数。

如果要必中奖呢?

方法1:将权重调整到一个极大值,可尽可能地实现必中某个或某几个奖品;(正常方案)

方案2:不会进入抽奖系统,而是直接走白名单模式?——如果是要求必中某个奖品还好,如果是从某几个奖品中随机呢?

以上的方案会对抽奖系统会产生一些什么影响?

因为加快了奖品的产出的速度,对于前面的4种抽奖方案会产生不同程度的影响。例如调整的方案是按抽奖系统的中奖结果来调整的,还是按实际派奖的结果来调整的。

2,每个人只允许中一次奖;

为了让奖品尽可能覆盖到更多的人,有时候我们需要限制每个人的中奖次数,例如每个人只能最多中1次。

方案1:先判断该用户是否中过某个奖品,如果有,将该奖品的中奖概率直接调为0;

方案2:先进入摇奖系统,如果中奖了再比对该用户是否已中过奖,如果中过,直接改为未中奖。

以上的方案会对抽奖系统会产生一些什么影响?

因为减慢了奖品的产出的速度,对于前面的4种抽奖方案也会产生不同程度的影响。例如调整的方案是按抽奖系统的中奖结果来调整的,还是按实际派奖的结果来调整的。

以上的方案会对参与抽奖的人产生什么影响?

是否会对参与抽奖的人造成困扰,例如宣传的中奖率很高,但实际抽了几次都没中时,就会怀疑这个中奖率了。——还好,因为一个人只有少量的抽奖机会,少样本下本身就不能保证他的中奖率就符合中奖概率。

作者: 李铁牛程序员

李铁牛,一直致力于企业客户软件定制开发,计算机专业毕业后,一直从事于互联网产品开发到现在。微信技术交流:tieniu6636
上一篇
下一篇

发表回复

联系我们

联系我们

028-84868647

在线咨询: QQ交谈

邮箱: tech@68v8.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部