暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

游戏用户生命周期观测 | 时序模型业务洞悉

原创 大数据模型 2024-10-10
156

前文

下面简称D公司, D公司经营电子宾果、电子BC、体育BC、特色游戏及扑克在内的多元化业务,随着业务的扩展,游戏地区将覆盖东南亚、未来将辐身南美州一带的国家。

当前目前的日注单量为 10亿/天,预计明年将达到 50亿/天。行为数据和埋点事件量目前为 20亿/天,期望增长至 80亿/天

要做到这一点,必须要做到大量的用户增加和高质量的转换,提高用户的留存率和付费率,增用用户的活跃度,促使用户快速进行转换。

关系型数据可以做这个事,过去的用户数据分析用的是RFM模型,用来衡量客户价值和创收能力,对不同价值的客户使用不同的运营策略,把公司有限的资源发挥到最大的效果,实现精细化运营。

  • R(Recency):最近一次消费时间与截止时间的间隔。通常情况下,最近一次消费时间的间隔越短,客户对商品或服务最有可能感兴趣。
  • F(Frequency):客户在某段时间内所消费的次数。消费频次越高的客户也是满意度越高的客户,其忠诚度越高,客户价值越大。
  • M(Monetary):客户在某段时间内所消费的金额。消费金额越大的客户,消费能力自然也越大。
用户分类 最近一次消费时间间隔(R) 消费频率(F) 消费金额(M)
重要价值用户
重要发展用户
重要保持用户
重要挽留用户
一般价值用户
一般发展用户
一般保持用户
一般挽留用户

基于考虑使用时序数据库,TDengines是一款国产时序数据库,通过TD实现时序数据建模,以时间点做为ID打通数据。

建模需求

  • 最小单位精确到秒,目的当前用户生命的周期阶段的权重
  • 最小单位精确到秒,每一次用户的投注数额及相关行为状态变化。
  • 最小单位精确到秒,反映出用户的创建、转换、销毁的基本属 性
  • 最小单位精确到分,反映用户的投注和整体状态变化
  • 最小单位精确到分,反映用户行为和注单的趋势
  • 最小单位精确到分,反映用户注单与活动紧密趋势
  • 最小单位精确到时,从中洞悉用户与社区、游戏的联络获取能力。
  • 最小单位精确到时,获取用户在每个小时的变化状况
  • 最小单位精确到时,获取用户的行动分析结果。
  • 最小单位精确到天,今天的数据变化改进相对昨天差异变化
  • 最小单位精确到天, 各个游戏厅的消费以及存款
  • 最小单位精确到天,游戏账号、注单号、下注时间、下注金额、派奖金额、输赢面。

原来关系表

基本属性

juese_num 角色数量
play_time 游戏时长
character_level 最高职业等级
character_var 角色最大职业等级方差
chongwu_flag 宠物标识
create_day_now 角色创建时间距今天数
balance 余额
fd_reg 当天注册当天首存用户
fd_reg7day 7天内注册当天首存用户
fd_reg30day 30天注册当天首存用户
dab 投注人数
new_dab 当天首投用户
existing_dab 当天复投用户

登录属性

login_cnt 累计登录次数
login_cnt_wk1 上周登录次数
login_cnt_wk2 上上周登录次数
login_day 累计登录次数
login_day_wk1 上周登录次数
login_day_wk2 上上周登录次数
login_first_day_now 首次登录距今天数
login_last_day_now 末次登录距今天数
login_times 累计登录时长

消耗属性

con_amt 累计消耗金额
con_amt_wk1 上周消耗金额
con_amt_wk2 上上周消耗金额
con_cnt 累计消耗次数
con_cnt_wk1 上周消耗次数
con_cnt_wk2 上上周消耗次数
con_first_day_now 首次消耗距今天数
con_last_day_now 末次消耗距今天数

充值属性

dep_amt 累计充值金额
dep_amt_wk1 上周充值金额
dep_amt_wk2 上上周充值金额
dep_cnt 累计充值金额
dep_cnt_wk1 上周充值金额
dep_cnt_wk2 上上周充值金额
dep_first_day_now 首次充值距今天数
dep_last_day_now 末次充值距今天数

金币属性

coin_amt 累计获得金币过
coin_amt_wk1 上周数获得金币数
coin_amt_wk2 上上周获得金币数

死亡

death_cnt 累计死亡次数
death_cnt_wk1 上周死亡次数
death_cnt_wk1 上上周死亡次数

经验属性

exp_get_total 累计获得经验值
exp_get_wk1 上周获得经验值
exp_get_wk2 上上周获得经验值

好友属性

friend_by_num 活跃好友数
friend_by_ratio 活跃好友占比
friend_num 好友数

副本属性

fuben_cnt_wk1 上周副本次数
fuben_cnt_wk2 上上周副本次数

讨伐属性

monster_cnt 累计讨伐战次数
monster_cnt_wk1 上周讨伐战次数
monster_cnt_wk2 上上周讨伐战次数
monster_exp 累计讨伐战次数
monster_exp_wk1 上周讨伐战次数
monster_exp_wk2 上上周讨伐战次数
monster_seal 讨伐战累计获得军票数量
monster_seal_wk1 上周讨伐战获得军票数量
monster_seal_wk2 上上周讨伐战获得军票数量

任务属性

renwu_complete 累计完成任务次数
renwu_complete_wk1 上周完成任务次数
renwu_complete_wk2 上上周完成任务次数

注单属性

login_name 登录名称
bet_site_id 站点
total_bel_amount 存储次数
total_ggr 总输赢
turnover_range 投注额
deposit_times 存款次数
deposit_amount 存款金额
withdraw_times 取款次数
withdraw_amount 取款金额
betamount 总存款
ggr ggr

TDengine建模

时序建模是 时间+名称+指标 = 数值 ,时间代表粗细粒度,通过秒、分、时、日控制业务属性。

  • 时序秒用于用户行为数据、登录属性、当时注单属性、任务属性

  • 时序分采用用户域数据、登录属性、当时注单属性、任务属性等多个属性

  • 时序时主要用于体察用户的消费变化、活动趋势。

  • 时序天从宏观的层面来看,重视注单属性、交易属性、活动属性、活跃属性的交互,洞察客户内部的机会转换

部分建模实例

taos> create table user_basic(tt timestamp,juese_num varchar(20),play_time varchar(20),character_level varchar(50),charac ter_var varchar(50),chongwu_flag varchar(50),create_day_now varchar(50),fd_reg varchar(50),fd_reg7day varchar(50),dab v archar(50),new_dab varchar(50),existing_dab varchar(50)); Create OK, 0 row(s) affected (0.002534s) taos> create table trans_summary(tt timestamp, login_name varchar(30), bet_site_id int,total_bel_amount int,total_ggr int, turnover_range float,deposit_times int,deposit_amount float,withdraw_times int,withdraw_amount float,betamount float,ggr float); Create OK, 0 row(s) affected (0.004061s) taos> create table recharge(tt timestamp, dep_amt varchar(30), dep_amt_wk1 int,dep_amt_wk2 int,dep_cnt int,dep_cnt_wk1 float,dep_cnt_wk2 int,dep_first_day_now int,dep_last_day_now int); Create OK, 0 row(s) affected (0.004376s) taos> create table fight(tt timestamp, monster_cnt varchar(30), monster_cnt_wk1 int,monster_cnt_wk2 int,monster_exp int ,monster_exp_wk1 int,dep_cnt_wk2 int,monster_seal int,monster_seal_wk1 int,monster_seal_wk2 int); Create OK, 0 row(s) affected (0.002640s) taos> create table transact(t1 timestamp, login_name varchar(30),bet_site_id varchar(30),total_bel_amount int,total_ggr int,turnover_range double,deposit_times int,deposit_amount double,withdraw_times int,withdraw_amount float,betamount float,ggr float ); Create OK, 0 row(s) affected (0.002162s)

测试总结

  • 作为MySQL使用者,TDengine的使用风格接近MySQL,建库建表使用较容易上手
  • 在时序秒的业务场景里面,针对注单10亿的数据,时序建模应用较佳 ,相对关系型数据库好一点。
  • 从数据的浏览视角来看,时序排列更加轻易阅读,方便数据运营人员浏览查看。
  • 时序相对于RFM模型,技术本质等于重新组装成了一个大宽表,涵盖更丰富的数据。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论