vivo积分任务体系的架构演进-平台产品系列05

这篇具有很好参考价值的文章主要介绍了vivo积分任务体系的架构演进-平台产品系列05。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

作者:vivo 互联网平台产品研发团队- Mu JunFeng

积分体系作为一种常见营销工具,几乎是每一家企业会员营销的必备功能之一,在生活中随处可见,随着vivo互联网业务发展,vivo积分体系的能力也随之得到飞速提升,本篇主要介绍vivo积分任务体系的系统建设历程。

一、前言

1.1 什么是积分体系?

积分体系如今越来越普遍,是很多线上线下商家都会采用的用户消费激励体系,例如:淘宝的金币、京东的京豆等;此外,各大运营商、航空公司、连锁酒店、线下商超等也都有自己的积分玩法。积分的价值是连接用户,增加活跃、保持用户粘性。通过增加用户积分价值感的手段,实现业务内循环。

vivo积分体系能力已经非常丰富,主要包括以下能力:

  • 积分商城:积分体系主入口,提供丰富的礼品兑换、活动玩法,强化积分价值感知

  • 任务中心:重要的积分获取入口,引导用户了解业务、培养用户习惯的重要玩法

  • 活动中心:提供丰富的活动玩法,增加积分体系的可玩性和丰富度,更好地提升用户参与度

vivo积分贯穿整个vivo生态下的互联网应用,同时手机厂商互联网业务的独特性(不仅局限于单一类型业务)也造就了vivo积分与其他行业生态积分体系的差异性,这些差异性着重体现在vivo积分是与各个业务形态紧密合作,相互渗透。如下图例显示在对应签到、任务中心都与业务方强相关联。

在积分体系里任务体系是很重要的一环,行业内会基于任务的形式刺激用户活跃,引导用户完成业务上高价值的行为,最终给予用户回馈(发放积分)。

1.2 什么是任务?

玩过游戏的同学都知道,游戏内日常都会有任务,有目的地指引玩家进行游戏活动,并给予玩家一定奖励。

对于积分产品(业务)而言,任务体系一般希望引导用户了解产品、提高产品活跃度、培养用户习惯,总而言之是期望用户在使用产品的过程中不断产生价值行为,通过直接或间接的方式帮助业务方达成业务指标,同时用户因完成任务得到奖励,有持续产生高价值行为的动力,最终形成正向循环。

1.3 福格模型

基于以上分析我们可以看出积分任务体现出来的是典型的“福格模型”,通过合理的奖励去推动符合业务价值的行为。

(图片来自网络,混沌大学)

福格行为模型是一个用来探寻用户行为原因的模型,它认为要让一个行为发生,必须同时具备三个元素:动机、能力、触发器

也就是说,只有当一个人有足够的动机,并且有能力去做到,而且有能触发用户行动的触发器来提醒的时候,一个行为才最终可能发生。

那么vivo的任务体系是如何搭建的呢,系统建设又走过了哪些历程?在本次文章中我们将为大家慢慢揭晓。

二、发展

2.1 阶段一:初探

(1)业务模型分析

  • 任务模型:“用户 A 完成了 B 动作发放 C 奖励(或者触发某种逻辑)”,我们将满足这种模式的需求定义为一个任务。

  • 任务周期:结合业务场景,我们发现任务周期大致分为:新手任务(全局只能完成一次)、每日任务、每月任务。

  • 任务状态:存储业务状态,包括任务的完成状态,以及奖励领取状态。

(2)系统目标

  • 快速配置任务,按周期以及业务场景确定任务类型

  • 记录任务完成状态及奖励领取状态

(3)实现方案

:上图中“业务方”特指vivo生态下的服务方;“端侧”特指客户端APP。

如上图所示,阶段一的设计方案虽然有配置,但在逻辑层还是有很大的开发成本, 在阶段二我们着重解决定制化开发效率的问题。

2.2 阶段二:用户行为激励体系建设

(1)痛点分析

积分任务中心初版在线上运行一段时间后发现,虽然任务基础信息可以通过配置化完成,但远没有达到预期:通过配置化就能够实现任务快速上线

回顾阶段一的设计,其实仅仅是引入了任务的定义与配置,但任务的行为以及达成判定都由业务方实现,在项目对接上有不少弊端

  • 跨项目协作周期长:跨项目管理难度大,进度对齐、沟通协调,case by case开发,系统耦合严重,灵活性低,业务方逻辑重、开发成本高。

  • 业务上运营效率低:一个季度上线不了几个任务,加上数据分析周期,整体跨度长,效果不理想。

通过分析积分任务的业务场景,我们发现大多数任务行为都是app端侧产生的行为,比如用户在浏览器端浏览新闻给予积分奖励。

结合互联网业务都有日常埋点,我们很容易想到可结合埋点上报捕获用户行为,同时为了解决我们初版任务系统的弊端,我们重新梳理出vivo积分任务系统需要支持的核心功能点

  • 引入行为模型:建设集行为定义、采集、计算、触达为一体的模型体系

  • 建设行为SDK:拉取行为配置、上报行为、行为在端侧支持过滤、任务完成触达提醒

  • 支持实验能力:支持任务灰度测试能力,同时支持基于用户标签定向投放任务

(2)行为上报流程

(3)方案交互序列图

整体流程:

  • App 端启动时激活行为SDK拉取端侧行为配置

  • 行为SDK针对上报的行为埋点,经过匹配、过滤、去重等策略,最终将行为上报

  • 行为上报至服务端进行用户标签判断、实验策略判断、行为计算,最终将任务结果返回给行为SDK

  • 行为SDK接收到响应后将奖励结果通过toast/snackbar将配置的UI交互展示给用户,用户可手动领取积分奖励,或者自动发放

(4)场景示例

用户浏览新闻,点赞资讯评论,行为SDK上报此事件,判定达成任务,返回snackbar提示用户手动领取奖励。

(5)业务效果

经过以上升级,我们的任务系统可以支持以下能力:

  • 涉及埋点型任务,业务方可以优雅对接,不需要额外关心任务达成的判断,直接基于SDK透传埋点即可;

  • 新任务可以快速支持配置,业务方一次接入,后续零成本开发;

  • 基于用户标签、AB实验平台,支持任务实验配置能力,可快速验证任务上线效果。

上线周期大大缩短:原行为类任务从需求评审,到设计开发测试上线,再到生产环境灰度测试,完整的周期可由原来的1-3个月缩短至1-3人天。

2.3 阶段三:扩大行为采集源,丰富触达形式

(1)痛点分析

场景引入:

某天游戏侧反馈希望接入我们的任务,但场景是“给游戏付费用户发送积分奖励,同时要求付费指定类型的游戏,且奖励的积分值根据付费金额而定(不同的区间给予不同的奖励,不足1元按1元计算)”。

在剖析这个应用场景时,我们延展发现以下主要痛点

  • 行为采集源单一:非埋点行为类的任务不支持

  • 触达形式单调:只支持简单的toast以及snackbar

为了解决以上痛点,我们做了多方面的技术调研。

(2)业务模型

从本质上业务模型并没有大的变化,依然是“收集行为、判定任务关联行为是否达成、任务的奖励发放、对用户的触达”,其实我们需要着重关注的是以下几点:

  • 行为采集源的拓展

  • 支持复杂行为计算

  • 动态的规则配置

(3)数据采集层

在数据采集层上我们尽可能覆盖更多的数据源,包括埋点、数据库(MySQL)、消息队列、API/RPC接口等,以下为当前数据采集的数据流向图:

采集能力完善

  • 集群管理:不同的业务方、不同的任务,相应产生的数据量级各不一样,为了防止单点导致业务数据处理不及时,我们在设计上可以支持为采集任务动态配置集群,提升消息处理及时性。

  • 数据“源”管理:定义采集来源,可动态配置RocketMQ/Kafka消息,并支持动态创建监听器。

  • 元数据管理:定义指定采集行为的基础信息,包括行为事件存储介质、事件类型、过期时间、集合名等等。

  • 数据预处理:主要指数据过滤,通过对比排查,我们最终选择aviator的表达式引擎进行过滤处理。

  • 数据归一:业务方采集的源数据定义格式各一,为了数据计算层的统一,我们会将元数据进行“格式化”,便于后续统一处理。

  • 数据存储:源事件存储,在存储介质选择上我们有多维度的考量,数据量大、能够满足聚合计算、方便清理,最初我们选择了ES,但通过性能测试对比,ES在聚合计算时性能有明显的差距,最终我们选择了MongoDB以及TiDB。

数据归一配置示例:

(4)规则计算层

事件的采集与计算层,我们在设计上将其独立开,采集层通过分布式消息将事件上报到计算层,经过计算最终将结果行为异步通知到任务层。

规则配置示例:

(5)表达式引擎

再回到最初的业务场景需要“要求付费指定类型的游戏,且奖励的积分值根据付费金额而定(不同的区间给予不同的奖励,不足1元按1元计算)”,为了满足业务层灵活多变的逻辑需要,我们引入了表达式引擎,便于业务灵活动态调整。

从多个维度的技术调研,最终我们选择AviatorScript做为我们的表达式引擎。

AviatorScript是一个高性能、轻量级的java语言实现的表达式求值引擎,主要用于各种表达式的动态求值。现在已经有很多开源可用的java表达式求值引擎,为什么还需要Avaitor呢?

  1. Aviator的设计目标是轻量级和高性能 ,相比于Groovy、JRuby的笨重,Aviator非常小,加上依赖包也才450K,不算依赖包的话只有70K;当然,Aviator的语法是受限的,它不是一门完整的语言,而只是语言的一小部分集合。

  2. Aviator的实现思路与其他轻量级的求值器很不相同,其他求值器一般都是通过解释的方式运行,而Aviator则是直接将表达式编译成Java字节码,交给JVM去执行。

简单来说,Aviator的定位是介于Groovy这样的重量级脚本语言和IKExpression这样的轻量级表达式引擎之间。

表达式引擎使用示例

// 数据清洗过滤
originEvent.pay_status == 1 && string.contains("11,12,13,14,15,16,92,93,95", originEvent.product_type + "")
 
// 规则计算
let value = eventObject.value / 100;
let success = value >= 1;
return seq.map('success',success,'data',value);

(6)任务层

在应用层,用户直观感觉的任务层,主要包括以下逻辑:任务与行为的关联配置、任务的投放、任务的奖励发放、用户的触达、用户任务的状态。

(7)触达层

  • 自定义弹窗:业务方可基于vivo建站平台自动创建丰富多彩的页面交互效果,异步事件任务可以基于push中转透传结果。

  • 消息透传:任务结果可通过MQ消息异步传递至业务方端侧,可消费转入消息盒子,或用作其他逻辑。

触达交互示意图:

三、整体系统架构

四、服务稳定性

4.1 系统防护

  • 服务降级:接入限流、熔断组件

  • 集群隔离:按业务场景做服务单元隔离,避免高并业务场景影响整个服务

  • 异步执行:非核心功能异步化(例如行为轨迹)、服务依赖方接口异步(例如请求业务方发放礼品)

4.2 服务拆分

大系统根据业务模块拆分,整个积分任务系统按业务职责主要拆分为如下几个系统:

  • 事件采集服务(事件采集、过滤、映射、存储)

  • 事件计算服务(事件计算、通知)

  • 任务服务(任务判定达成、奖励触达)

4.3 服务监控

  • 系统监控:完善的CPU、日志中心告警、DB主从延时、消息积压、慢服务等

  • 数据监控:完成的行为事件链路监控,便于排查定位

五、写在最后

5.1 任务中心建设过程感想

  • 系统设计上需要关注业务模型抽象的能力,避免一开始就留坑;

  • 系统防护设计,常规套路:限流、熔断、降级、基于CAP理论执行;

  • 使用发展的眼光看待系统建设,系统的设计需要经过反复的迭代,不断完善,“稍稍跑在业务前面的技术架构”可能是最理想的。

5.2 未来构思

  • 打造平台扩展能力:将任务能力封装完善,能够拓展对上层业务提供复用能力。

  • 奖励平台能力建设:当前任务发放的奖励主要形式为vivo积分,后续可进一步扩展,接入全品类的奖励类型。

  • 组合时序行为事件:当前业务上只支持单行为事件的采集,还不支持行为有前后依赖关系,或者多个行为事件共同达成后完成任务。

  • 实时计算能力提升:当前设计可能存在实时性波动的风险,例如MQ消息消耗阻塞、数据库binlog监听延迟,对实时性要求高的场景不友好。

附:

关于用户行为数据采集的私密性:很多人普遍认为SDK采集数据会涉及个人隐私,这主要还是不了解SDK数据采集的技术原理。

 

SDK:Software Development Kit,直译过来就是软件开发包,用N行软件代码采集数据。SDK采集的任何数据都来自用户的主观行为,企业在正常商业活动中获取的个人隐私数据并不违反法规,而我们积分的任务其实是用户有意主动去完成行为而获得一定的收益,同时我们也通过隐私声明明确告知用户且获得用户同意。文章来源地址https://www.toymoban.com/news/detail-433243.html

到了这里,关于vivo积分任务体系的架构演进-平台产品系列05的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 大数据处理平台的架构演进:从批处理到实时流处理

    🎈个人主页:程序员 小侯 🎐CSDN新晋作者 🎉欢迎 👍点赞✍评论⭐收藏 ✨收录专栏:大数据系列 ✨文章内容:大数据框架演进 🤝希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,大家一起学习交流!🤗 大数据处理平台的架构演进经历了从批处理到实

    2024年02月10日
    浏览(49)
  • 英伟达显卡系列与架构、代表产品

    1、GeForce系列:         GeForce系列是NVIDIA最主要的消费者显卡系列,用于游戏和娱乐。包括不同性能水平的产品,从入门级到高端。 2、Quadro系列:         Quadro系列是专业级别的显卡,主要用于专业图形工作站,如CAD(计算机辅助设计)和3D建模。 3、Tesla系列:   

    2024年02月04日
    浏览(45)
  • 【USRP】产品型号、参数、架构全解析系列 6:N320 / N321

    通用软件无线电外设( USRP ) 是由 Ettus Research 及其母公司National Instruments设计和销售的一系列软件定义无线电。USRP 产品系列由Matt Ettus领导的团队开发,被研究实验室、大学和业余爱好者广泛使用。 大多数 USRP 通过以太网线连接到主机,基于主机的软件使用该链路来控制 USRP

    2024年02月09日
    浏览(37)
  • 【USRP】产品型号、参数、架构全解析系列 4:N200 / N210

    通用软件无线电外设( USRP ) 是由 Ettus Research 及其母公司National Instruments设计和销售的一系列软件定义无线电。USRP 产品系列由Matt Ettus领导的团队开发,被研究实验室、大学和业余爱好者广泛使用。 大多数 USRP 通过以太网线连接到主机,基于主机的软件使用该链路来控制 USRP

    2024年02月10日
    浏览(35)
  • 软考高级系统架构设计师系列论文七十九:论软件产品线技术

    根据公司软件系统开发的需要,我们在软件的开发过程中引入了软件产品线技术,成立了基于软件产品线的项目组。本人有幸参加了该项目,并在其中担任软件分析与设计、软件产品线核心资源开发的工作。 在软件产品线的开发过程中,我们使用了ROSE建模工具,有效地完成

    2024年02月11日
    浏览(75)
  • 软考高级系统架构设计师系列论文七十七:论软件产品线技术

    本人在测井行业的一个国有企业软件开发部工作,从2021年初开始,我陆续参加了多个测井软件开发项目,这些项目都是测井行业资料处理解释软件,具有很强的行业特征,其开发方向和应用范围都非常相似,从“测井资料处理集成软件”项目,开始我实施了软件产品线技术,

    2024年02月11日
    浏览(83)
  • 运营-18.积分体系概念

    积分体系是一种通过平台补贴来提升用户忠诚度、为平台各项业务的导流的运营手段; 作用 1. 积分体系可以引导用户逐渐投入沉没成本,包括时间、精力和金钱; 2. 沉没成本越高,用户越难以离开; 3. 积分体系可以给其他业务导流; 成本核算 积分跟金钱挂钩,所以要核算

    2024年02月06日
    浏览(52)
  • 【USRP】产品型号、参数、架构全解析系列 1:B200 / B210 / B200mini / B205mini

    通用软件无线电外设( USRP ) 是由 Ettus Research 及其母公司National Instruments设计和销售的一系列软件定义无线电。USRP 产品系列由Matt Ettus领导的团队开发,被研究实验室、大学和业余爱好者广泛使用。 大多数 USRP 通过以太网线连接到主机,基于主机的软件使用该链路来控制 USRP

    2024年02月10日
    浏览(35)
  • 5G安全的全球统一认证体系和标准演进

    【摘要】 为了介绍5G安全的全球统一认证体系和标准演进,首先论述5G网络安全的全球统一框架(即GSMA NESAS/3GPP SCAS 5G安全认证框架),接着论述5G安全的标准演进,包括5G基础网络安全、5G云化安全、5G MEC安全以及几个5G典型的垂直行业安全,然后论述5G安全相对于公有云、W

    2024年02月16日
    浏览(40)
  • 互联网应用架构的演进(八大架构的演进过程)

    博主最近在学中间件,理解互联网应用架构的演进过程,对于理解中间件在整体结构中的定位是十分重要的 应用(Application)/系统(System) 完成某种服务的一个/一组程序 模块(Module)/组件(Component) 系统中,一个独立的功能称之为一个组件 分布式(Distributed) 系统中的模

    2024年02月07日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包