资料
  • 资料
  • 专题
flink实时规则营销系统教程(第39期,2023版)
推荐星级:
类别: 软件/EDA/IP
时间:2024-02-20
大小:2.59KB
阅读数:102
上传用户:学习菜鸟小弟弟
查看他发布的资源
下载次数
1
所需E币
0
ebi
新用户注册即送 300 E币
更多E币赚取方法,请查看
close
资料介绍
一、《flink实时规则营销系统》项目背景
传统的“精准营销平台”由营销人员基于画像标签数据去圈选人群,进行营销推送,存在不足;
这种传统手段,往往无法抓住那些 “转瞬即逝的营销机会”;

如:一个促销狂热型用户,正在浏览包包时,及时推送出正在做促销活动的包包信息,是最有效的;
如:一个价格敏感型用户,正在犹豫不决反复查看他购物车中的某目标商品时,适时推送优惠券,是最有效的;

这些场景,显然无法通过营销人员通过人工手段去发现,需要用软件系统自动、实时监控用户的行为,并实时做出判断,并进而驱动营销消息推送系统推送相关营销内容;
总之,在应对这一类的需求时,以前的传统的“基于用户画像标签库的精准营销平台”显得力不从心;

因而,擅长用键鼠改变世界的攻城狮们,决定为公司的推广、运营部门开发一个应对上述场景的自动化、智能的、实时、规则动态可变的营销利器 —— 《实时动态规则智能运营系统》

二、需求分析
2.1 营销规则举例
- 搜索兴趣词包含“商务休闲”的用户,如果浏览包含“商务休闲”的商品页面,则触发一个优惠券推送消息;
- 活跃度等级为C的用户,且在规则发布前的3天内,发生过 “搜索雀巢” AND “加购” ,当他再次上线时,触发一个app弹窗消息;
- 活跃度等级为C的用户,规则发布前2天内,发生过A事件3次以上,规则上线后发生了B事件,且之后间隔1天再次发生B事件,则触发;
- 规则运行时,检测到用户发生了下单事件,而在随后的15分钟内没有支付,则触发;
- 规则运行时,一个用户如果搜索的关键词符合某正则表达式,则触发;
- 宝妈用户,在2022-08-07开始,做过A行为3+次,做过(B行为,E行为)序列2+次,则触发;

2.2 规则营销需求的宏观抽象
- 营销规则有多样化的灵活的定义(不光参数可以支持自定义,且运算模型也可以自定义);
- 营销规则通常针对满足某画像的人群,也可没有针对性
- 营销规则通常都有有效期(也有可能是无限期的),要求系统能够支持动态增加、停用运营计划(规则)
- 营销规则根据需求的变化,需要能够方便地进行在线管理,如新增、停用、修改

三、行为判断的逻辑分析
1)行为判断:行为事件的类型及属性的判断
判断用户的某个行为事件,是否是规则条件中要求的事件
- 简单的,可能就是 
event_id = "X"  
 AND
properties["p1"] =/>/!=/< "v1"

- 稍微复杂的 ,可能就是 
 event_id = "X"  
  AND 
 properties["p1"]  包含 "kw1"

- 再复杂点的,可能就是  
event_id = "X"  
 AND 
properties["p1"]  + properties["p2"] > 100   
 AND
properties["p3"] 满足 正则表达式  [1,10]*?a

2)行为序列的判断
判断用户的一系列行为事件中,是否满足规则条件所要求的依次发生的序列,比如A   B   E
行为序列判断,是上述 “行为判断” 的衍生
本质上,就是在 判断事件 的基础上,加上时间先后的序列关系
这个逻辑,可以用 正则匹配进行计算(全窗口运算);  也可以用滚动聚合的方式计算;

3)事件(序列)发生次数的判断
判断要求的事件或事件序列,发生了多少次
是上述 “行为判断”、“行为序列判断” 的衍生
本质上,就是在 判断事件(或序列)的基础上,进行次数累计

四、画像条件判断的实现难点
初略考虑,应该就是查询用户画像标签库即可;
站在系统的角度来考虑时: 什么时机去查询?  去哪里查?
比如: 
查询时机:  当一个人的某个行为触发了某个规则,此时去查询该用户的画像标签是否满足规则的人群画像条件
查询的目标:  用户画像标签数据库

如果画像数据库在hbase中,可以用如下伪代码来快速判断
## 如果条件是: 活跃等级 = C   AND     首单时间< "2022-06-01"
get = new Get(guid)
get.addColumn("活跃等级")
get.addColumn("首单时间")

result = table.get(Get)

activeLevel = result.getValue("活跃等级")
firstOrderDate = result.getValue("首单时间")

if(activeLevel = 'C'  &&  firstOrderDate< "2022-06-01") 
return true;

## 如果条件是: 兴趣词 :包含 "速溶咖啡"
## 这种条件,用hbase的支撑就不太好处理了
// favroitWords : [海底捞, 咖啡伴侣, 小罐速溶咖啡,乔丹 ,篮球 ]
favroitWords = result.getValue("兴趣词")  

版权说明:本资料由用户提供并上传,仅用于学习交流;若内容存在侵权,请进行举报,或 联系我们 删除。
相关评论 (下载后评价送E币 我要评论)
没有更多评论了
  • 可能感兴趣
  • 关注本资料的网友还下载了
  • 技术白皮书