这是第7次逻辑训练的练习题,每周1次逻辑训练,坚持下去,我相信,有什么会发生一些变化。 命题介绍 一个抽奖功能,用户每天都可以抽1次,可能抽到现金,也可能抽到优惠券。 我们认为,相同的优惠券,如果第一张优惠券没有被使用,第二张也不会被使用,也就是重复的优惠券,没有产生价值。 同样是5元的水果优惠券,如果你第一张没有使用,那么第二张也不会使用,这是我们的设计初衷。 基于以上观点,我们设计了一个小的逻辑,当用户抽奖抽到重复的优惠券时,可以触发一个活动,通过将优惠券赠送给自己的好友,可以增加1次抽奖机会。 这次的练习内容如下便是:绘制该业务的数据流向图。 强调一下:这一次 我们绘制的是数据流向图,也就是前后端逻辑分离的流程图。 练习作业解析 这是我的练习作业,完整逻辑更加复杂,因此练习的过程中,选择了一些必要的且特殊的逻辑进行练习。 我们将整个数据流向图分成了三个区域,分别是重复卷判定,用户选择以及最终处理三个环节。 简单来讲,按照命题的要求,我们需要先考虑送券的触发事件,也就是用户获得了两张相同的优惠券,同时,也不能直接触发送券逻辑,需要由用户来进行选择。 尽管,我们在理论上有了一些观点,但仍然不排除用户想要持有多张相同券的场景,更重要的是,与领取一张相同的券相比,增加一次抽奖次数,显得更加吸引人,这对于用户主动的分享行为有很好的刺激作用。 最后,我们还需要做一些最终处理,比如把这张优惠券注销或者让其失效,同时生成一批新的优惠券。 通常情况,优惠券的ID,是有多个参数构成的,至少会包含用户信息,以及优惠券信息。也就是说,某人拥有某张优惠券,这样的组合才是一个完整的优惠券信息。 这里说的失效,也是指让"某人拥有的某张优惠券失效",我们拆解来看看吧。 (1)重复券判定 在重复券判定环节,我设置了两个判断条件,第一个是判定是否存在重复的优惠券,这很好理解。 但第二个判断条件是为一些特殊条件构造的,是更近一步的判定:重复券有效性判定。 存在某些特殊的场景,尽管用户拥有了相同的券,但我们依然可以将优惠券直接发放给他,目的是产生订单转化。 这里有个知识点:有时,订单转化的权重大于用户分享的权重 比如两张相同面额,相同使用条件的优惠券,或许第一张优惠券已经过期了,或者临近过期,此时,也可以将其视为无效,从而不触发送券逻辑。 这取决于我们如何定义重复的优惠券。 有一种比较复杂的做法,我们将优惠券的所有信息都进行比对,包括时间上的信息。我们甚至需要提供一个偏差值,比如:11日过期的优惠券,相对10日过期的优惠券,也判定为重复的优惠券。 这很复杂,但针对性却比较强,只是性价比不是很高,这里原本只是分支中的分支业务,不太合适投入过多的资源,将其做的太复杂。所以,判定基础信息是否相同,再根据有效性进行深度判定,更加简单,也更符合命题的场景。 (2)用户选择 尽管,系统已经判定存在相同的优惠券,才会触发用户选择的环节,但我们仍然需要由用户来完成业务的实际决策走向,而不能帮助用户进行决策。 帮助用户进行决策,也是比较通用的产品概念,但比较通用并不等于100%适用,实际产品设计过程当中,仍然是因地制宜,找到最适合的那种做法。 让用户自由选择的主要原因有以下几点。 1)与预期向匹配 对于用户而言,这里的前置条件并不是重复券的判定,而是"抽奖"这一行为。在用户的期望里,我执行了抽奖的行为,应该得到的是奖品,而不是"再抽一次"。 这里的"再抽一次"和"再来一瓶",给用户产生的情感是截然不同的,前者是难以接受的,表示用户损失了奖品,后者是喜悦的,表示用户得到了奖品。 2)是放弃还是收下这个优惠券 严格上来讲,这不是两个选项的选择,而是两组选择的选择。 A组:领取优惠券和抽奖次数; B组:放弃优惠券和抽奖次数。 用户的分享行为是无法强行捆绑的行为,不受系统控制,即使我们只提供给用户 抽奖次数,对于用户而言,也只是第二组选择:在放弃优惠券和增加抽奖次数之间进行选择。 很多用户不太愿意打扰自己的朋友,也不太能接受分享的行为,这种情况下 他们只能选择"放弃优惠券"。 这样的感受很糟糕,而领取一张相同的优惠券,至少还有一种安慰奖,参与奖的体验。 3)有对比时,更容易产生交易 另一方面,重复的优惠券本身也和抽奖次数形成了对比关系,在题干里,抽奖是有概率抽到现金红包的。相信大部分用户是冲着现金红包 参与抽奖,而不是冲着优惠券而去抽奖。 收下一张已经有的优惠券,与 获得现金的机会进行对比,用户更容易选择后者,尤其是 这张优惠券也是给到好友的福利,并不是单纯的广告。这就像你愿意将美团的外卖红包分享给朋友,同事一样。 当用户选择了执行送券逻辑时,我们便要对整个业务进行最终处理,主要由两部分构成,其一是将分配给该用户,但用户由未领取的优惠券进行失效处理。同时,还需要根据用户的赠送行为生成新的优惠券。 我想,你已经知晓一张完整的优惠券是由用户信息和优惠券信息组合而成,这表示,当用户的好友访问送券的链接时,将会生成新的优惠券。这就到了另一个领券的环节了,这里我们就不展开了。 实际上,在分享环节还应该对分享有效性进行判定,在此命题里,应该是前端完成分享有效性判定,需要对分享成功和分享失败做差异化处理。 在抽奖这个瞬时场景,我们只能默认分享成功即有效,无法准确判断分享的质量,也无法将分享价值和用户激励进行捆绑。因为,这是一个瞬时场景,用户需要得到即时反馈,而对于一些长周期的场景,我们就可以更进一步,需要好友访问以后才视为有效分享。 许多固定模块的裂变功能,均是后者,像是好友助力,师徒系统等,这里就不展开赘述了。 总结 这次的练习,我们经历了一个小闭环的逻辑,从触发条件的判定,到最终执行的逻辑,练习的过程中,也有一些小的收获,简单总结如下: 基于一些"介质"的判定,往往会跟随。有效性判定,对"介质"本身的有效性进行判定。 始终要记得用户有"放弃"这个选项,尽管这个选项没有在视觉当中呈现出来。 给到用户A和B两个选项,且两个选项之间存在巨大的价值差异时,更有利于用户选择高价值的环节,尽管需要支付一些额外的条件。 完整的优惠券是由用户信息和优惠券信息共同构成。