vivo日活千万级的活动平台设计之道
如果无法正常显示,请先停止浏览器的去广告插件。
1. vivo日活千万级的活动平台设计之道
vivo互联网架构师/ 康雄
2.
3. 01 平台介绍
目录
CONTENS
02 架构演进
03 多业务中心
04 AI探索落地
05 未来展望
4. vivo活动平台业务概览
以SaaS+PaaS服务 、能同时支撑五大用户群(广告主、线下、游戏CP、线上运营、中小企业)的综合运营平台
广告营销 智慧零售 vivo开发者 APP运营活动 企业客户
为广告提供创意工具 支撑代理线下运营 为200+游戏CP提供平台 支撑公司各大APP运营 为外部企业提供能力接入
5. 业务体量
PV 平台用户 全年活动场次
3500W+ 4000+ 2W+
全年搭建H5页面
12W+
6. 产品形态
7. 活动样例
领券类
抽奖类
九宫格
大转盘
砸金蛋
单张券
投票类
答题类
组合券
答题
话题PK
大屏互动类
大屏赛跑
竞猜活动
摄影投票
组合玩法类
大屏摇一摇
评论抽奖
答题抽奖
预约抽奖
8. 01 平台介绍
目录
CONTENS
02 架构演进
03 多业务中心
04 AI探索落地
05 未来展望
9. 系统发展之路
精细化
平台化
单体式
• 代码堆砌
• 怎么快怎么来
• 积累活动开发经验
• 组件化
• 服务化
• 通用化
• 行为库
• 玩法编排
• 链路监控
• AI辅助
10. 单体式架构1.0
接入层
入口访问
活动配置
业务扩展差!
业务校验
活动上下文构建
稳定性差!
业务
核心层
抽奖玩法
裂变玩法
关卡玩法
榜单玩法
…
服务拆分
存储层
mysql
es
平台改造
11. 平台化架构2.0
网关层
路由转发
鉴权服务
安全管控
审计日志
活动校验
管理台
玩法上下文
玩法配置
玩法模型
接入管理
业务
核心层
抽奖模型
拼团模型
闯关模型
领券模型
通用能力薄!
响应变化慢!
…
数据清理
数据备份
通用服务
存储层
mysql
redis
es
mongoDb
抽象复用
规则引擎
12. 精细化架构3.0
网关层
路由转发
安全管控
鉴权服务
活动校验
审计日志
玩法中心
管理台
玩法组件 通用任务 自定义任务 自定义奖品 开放API
通用模型 业务链路 规则引擎 玩法编排 数据统计
业务
核心层
玩法配置
动态玩法
活动组合
common-sdk
utils
接入管理
类型定义
外部依赖
技术组件
数据清理
核心服务
奖品中心
存储层
mysql
任务中心
磁盘kv
资产中心
redis
资格中心
通知中心
es
数据备份
mongoDb
13. 精细化架构整体流程
manger
统一网关
安全风控
app
pc
CORS
鉴权服务
路由转发
活动校验
业务运行域
业务配置域
玩法类型
垂类玩法模型匹配
活动上下文组装
活动配置管理
动作执行
用户行为库匹配
规则引擎执行
配置JSON
业务核心域
任务中心 奖品中心
权益中心 资产中心
触
达
响
应
通
知
14. 01 平台介绍
目录
CONTENS
02 架构演进
03 多业务中心
04 AI探索落地
05 总结和展望
15. 业务配置---如何优雅的解决繁琐的活动配置?
解决方案
配置项多且杂
垂直化
×
存
配置点独立建表,按照关系型数据
定义配置信息,存放配置数据
× 缺
两大问题
扁平化
结构化
浪
少通
所有活动配置统一收口,配置信息
转为json存储,节点自由定义存取
✔
开发效率低
储
通用
费
用
合理
Json配置进行标准化定义:投放配置
玩法配置、任务配置、奖品配置、权
益配置等标准配置
16. 业务运行域---如何来做活动模型的抽象?
垂类看
水平看
活动
奖励
抽奖
模型
领取
模型
裂变
模型
竞猜
模型
…
资产中心
玩法模型
+
多业务中心
=
用户 参与
行为 资格
任务中心
活动模型
奖品中心
17. 任务中心建设
如何减少开发,快速上架一个任务?
需求A 分享页面 平台方开发
需求B 支付订单 业务方开发
双方0开发?
自定义任务
18. 自定义任务设计思路
行为收集
B
Behavior
•
•
主动上报
被动采集
动作执行
条件匹配
+
C
•
•
Condition
上下文构建
规则引擎
BCA模型—以不变应万变
A
Action
•
奖励发放
19. 如何实现自定义任务?
接入方
活动平台
receiver
producer
任务定义
行为参数定义
behavior 1
获取任务信息
采集信息
behavior 2
user
behavior n
用户信息
{
标准结构行为集
}
+
oper
condition表达式
context构建
filter
行为信息
"user":
"openId":"xxx"
}
" oper":{
"key":"viewvedio",l∥自定义任务唯一标识
"prop":{
"time":15/∥行为参数值
}
long(15)>= long (20) ?
执行Action
结束
true
规则引擎
计算
false
20. 规则引擎使用
动态表单下发
• 设计表单,下发表单信息
• 规则脚本编写或配置生成
录入配置信息
• 任务条件配置
引擎上下文构建
• 任务信息
• 用户信息
• 采集信息
规则带入执行
• 表达式执行
21. 奖品中心建设
自定义奖品实现
奖励流程设计—策略模式
组装统一入参
aviator script
convert params
奖品类型匹配
http invoke
变化部分如何通用?
发奖
策略
1
发奖
策略
2
发奖
策略
3
发奖
策略
4
…
Invoke interface
OK
奖品记录
{
"path":"com.vivo.xxx.XXXFacade“,
"group":"
"version":"1.0.0",
"method":"receiveCouponCommon",
"paramType":"com.vivo.xxx.facade.dto.request
XXXReq“
}
dubbo泛化
组装统一返回
发放成功?
use com.vivo.doraemon.serializer.JacksOn;
XXX
return paramList;
失败
奖品补偿
任务
调度
convert response
use com.vivo.internet.xxx.utils.DateUtils;
let reponseDTO = seq.map();
XXX
return reponseDTO;
22. 复杂活动支撑-多活动的组合
单活动是远远不够业务需求,业务上常常需要多种活动一起去投放,但共享奖品数据
活动A 活动B 子活动C 子活动D
奖池B 奖池B 奖池C 奖池D
奖品信息
X
活动之间的数据是隔离的
奖品信息
奖品信息
组合之后,活动之间的数据可以共享的
23. 复杂活动支撑-playmaker玩法编排
大型活动通常涉及的子活动多、依赖关系复杂
业务场景
签到送福气
活动及依赖关系
签到
活动A
福气值达到20可以
解锁新年签
新年签解锁后可以抽奖
大型新春活动
业务场景
依赖
资产
活动B
依赖
解锁
活动C
依赖
依赖关系
抽奖
活动D
24. 复杂活动支撑-playmaker玩法编排
STEP2
集中式配置
加载playmaker活
动定义
Dependency
Injection
Ready
STEP1
低代码技术拖拽活动、描绘依赖关系
画图开源项目:jsPlumb
STEP3
活动初始化
仅生成活动D
注入依赖活动
创建活动
创建所有子活动并完成依赖关系绑定
参考Sring Bean初始化过程
25. 01 平台介绍
目录
CONTENS
02 架构演进
03 多业务中心
04 AI探索落地
05 未来展望
26. AI在营销活动业务的思考
产出创意 1、营销文案生成、改写、纠错
提升效率 1、业务场景---小说剧情视频自动生成
2、营销素材文生图、图生图、广告文案配图
AI能帮我们做什么?
2、自然语言建站----一句话生成一个站点
27. 产出创意
内容创意生成(text to text)
图片生成(text to image)
28. 构建智能小说场景流程处理
S2
素材处理
S1
数据准备
S3
视频合成
标点拆分
小说风格选择
场景拆分
转场特效
手动拆分
GPT自动拆分
朗读音色选择
字幕配音
tts
小说输入
人物构建lora
场景构建lora
GPT润色作图提示词
AI作图(文生图、图生图)
视频合成
29. Demo示例
Good case
Bad case
Bad case
30. 自然语言建站
自然语言的理解
场景的匹配
业务执行动作
站点的合成
31. AI建站流程
输入想要生成的站点
任务一 场景优选
任务二 组件优选
任务三 文本填充
任务四 团片填充
语言理解
返回生成的站点
任务N
H5站点打包
32. 01 平台介绍
目录
CONTENS
02 架构演进
03 多业务中心
04 AI探索落地
05 未来展望
33. 活动平台的展望
“所有的产品都值得用AI去重塑.”
双向交互
数字人
34. Q&A
案例演示
个人微信
35.