电商用户行为数据分析系统的设计与实现

您所在的位置:网站首页 用户行为分析系统架构图 电商用户行为数据分析系统的设计与实现

电商用户行为数据分析系统的设计与实现

2024-07-14 05:26| 来源: 网络整理| 查看: 265

大家好,又见面了,我是你们的朋友全栈君。

前言

本文针对淘宝app的运营数据,以行业常见指标对用户行为进行分析,包括UV、PV、新增用户分析、漏斗流失分析、留存分析、用户价值分析、复购分析等内容; 本文使用的分析工具以MySQL为主,涉及分组汇总,引用变量,视图,关联查询等内容。

一、提出问题1.本次分析的业务问题以及分析逻辑

本次想通过对淘宝用户行为数据的分析,为以下问题提供解释和改进建议:

1)基于AARRR漏斗模型,使用常见电商分析指标,从新增用户数量、各环节转化率、新用户留存率三个方面进行分析,确定影响新增用户数量的因素,找到需要改进的转化环节,发现留存现存问题

2)研究用户在不同时间尺度下的行为规律,找到用户在不同时间周期下的活跃规律

3)找出最具价值的核心付费用户群,对这部分用户的行为进行分析

4)找到用户对不同种类商品的偏好,制定针对不同商品的营销策略

以下为本次分析逻辑:

在这里插入图片描述在这里插入图片描述2.本次分析所使用的模型和体系

电商分析通常从四个方面展开,即流程效率分析、流量/用户分析、商品分析、产品分析,通过流程效率拆解追踪问题产生环节,通过用户粘性、价值、满意度分析来进行用户分层及流失预警,通过商品生命周期及关联分析来划分商品等级,通过产品分析提升用户浏览-购买过程体验; 本文通过常用的电商数据分析指标,采用AARRR漏斗模型拆解用户进入APP后的每一步行为;并使用RFM模型,对用户价值进行评价,找到最有价值的用户群,针对这部分用户进行差异化营销。 电商数据分析体系 电商数据分析指标 AARRR漏斗模型

二、理解数据1.数据来源

数据集包含了2017年11月25日至2017年12月3日之间,约一百万随机用户的所有行为(行为包括点击、购买、加购、喜欢)。数据集大小情况为:用户数量约100万(987,994),商品数量约410万(4,162,024),商品类目数量9,439以及总的淘宝用户行为记录数量为1亿条(100,150,807)。

2.本次选取的数据样本

原数据集一共有1亿条数据记录,数据量庞大,本次分析选取了大约100万条记录进行分析,数据整体情况参考如下表格。

3.字段含义及数据量在这里插入图片描述在这里插入图片描述三、数据清洗1. 选择子集

数据集的每一个字段都有效,此处全部选择。

2. 列名重命名

原数据集没有表头,用sql语句创建表及6个字段,把淘宝用户行为数据导入Mysql数据库。

3. 删除重复值

数据导入时,将主键定义为:user_id,item_id,timestamps,保证没有重复数据。

4. 缺失值处理

在创建表格的时候,5个字段均定义为NOT NULL,数据导入保证没有缺失值。

5.一致化处理

转换时间数据类型,并添加datentime,dates,hours三个字段,将转换好的数据放进去

代码语言:javascript复制ALTER TABLE UserBehavior ADD COLUMN datentime TIMESTAMP(0) NULL; UPDATE UserBehavior SET datentime = FROM_UNIXTIME(timestamps); ALTER TABLE UserBehavior ADD COLUMN dates CHAR(10) NULL; UPDATE UserBehavior SET dates = SUBSTRING(datentime FROM 1 FOR 10); ALTER TABLE UserBehavior ADD COLUMN hours CHAR(10) NULL; UPDATE UserBehavior SET hours = SUBSTRING(datentime FROM 12 FOR 2);6. 数据异常值处理

检查日期是否在规定范围内:2017年11月25日至2017年12月3日。

代码语言:javascript复制SELECT MAX(timestamps), MIN(timestamps), MAX(datentime), MIN(datentime) FROM UserBehavior;

检查时间是否正确,并将不符合规定的数据删除

代码语言:javascript复制DELETE FROM UserBehavior WHERE datentime < '2017-11-25 00:00:00' OR datentime > '2017-12-04 00:00:00';

一共删除了509行数据,再次验证日期时间的准确性,结果符合要求。

完成清洗后的数据:

在这里插入图片描述在这里插入图片描述四、构建模型1.分析用户行为的漏斗模型

数据主要涉及每日新增用户数,用户购买转化环节从浏览到最终购买整个流程的流失情况(包括浏览、收藏、加购、购买),用户次日、3日、7日留存情况,以及用户在研究时段内的复购次数和复购率

1)获客:每日新增用户情况

此处选取2017年11月25日为APP启用的首天,并定义新增用户为出现第一次购买行为的用户。 如下图所示,2017年11月25日至2017年12月3日期间,每天都有新增用户,但是新增用户在递减,在12月2日当天有小幅回涨,故周末推出的营销活动或正在预热的双十二营销活动能够吸引新用户。

在这里插入图片描述在这里插入图片描述

2)转化:转化及流失情况

● AAP在9天内的各项指标情况如下

访问用户总数(UV):9768 页面总访问量(PV):897293

代码语言:javascript复制#计算UV,PV SELECT COUNT(DISTINCT(user_id)) AS 'UV', (SELECT count(behavior) FROM UserBehavior WHERE behavior = 'pv') AS 'PV', FROM UserBehavior;在这里插入图片描述在这里插入图片描述

● 跳失率=只点击一次浏览的用户数量/总用户访问量

当统计时长为9天时,有586个人浏览了一个页面就离开了APP,占总访问量的0.65%,几乎可以忽略不计,说明淘宝有足够的吸引力让用户停留。

代码语言:javascript复制SELECT COUNT(DISTINCT user_id) AS '跳失用户数' FROM UserBehavior WHERE user_id NOT IN(SELECT DISTINCT user_id FROM UserBehavior WHERE behavior = 'fav') AND user_id NOT IN(SELECT DISTINCT user_id FROM UserBehavior WHERE behavior = 'cart') AND user_id NOT IN(SELECT DISTINCT user_id FROM UserBehavior WHERE behavior = 'buy');在这里插入图片描述在这里插入图片描述

● 用户行为转化漏斗计算

在购物环节中收藏和加入购物车都是确定购物意向的行为,没有先后之分,所以将这两个环节合并为购物环节中的一步。 由下图可以看到,从浏览到确定购买意向只有9%左右的转化率,夹点出现在点击-收藏或加购这一过程中,可能原因是用户花了大量时间寻找合适的产品,可以针对性的优化平台的筛选功能,让用户能够更容易的找到合适产品,并将流程指标再细化后进行分析,找出影响用户流失的关键问题点。

在这里插入图片描述在这里插入图片描述代码语言:javascript复制# 首先创建用户行为视图 CREATE VIEW user_behavior AS SELECT user_id, count(behavior), SUM(CASE WHEN behavior='pv' THEN 1 ELSE 0 END) AS '点击数', SUM(CASE WHEN behavior='fav' THEN 1 ELSE 0 END) AS '收藏数', SUM(CASE WHEN behavior='cart' THEN 1 ELSE 0 END) AS '加购数', SUM(CASE WHEN behavior='buy' THEN 1 ELSE 0 END) AS '购买数' FROM userbehavior GROUP BY user_id ORDER BY COUNT(behavior) DESC; # 再计算转化率 SELECT CONCAT(ROUND(SUM(点击数)/SUM(点击数)*100,2),'%') AS 'pv', CONCAT(ROUND((SUM(加购数)+SUM(收藏数))/SUM(点击数)*100,2),'%') AS 'pv_to_favcart', CONCAT(ROUND(SUM(购买数)/SUM(点击数)*100,2),'%') AS 'pv_to_buy' FROM user_behavior;转化率转化率

● 独立访客漏斗计算

APP约有68%的付费用户,用户付费转化率相当高。

代码语言:javascript复制SELECT behavior,COUNT(DISTINCT user_id) AS '用户数' FROM userbehavior GROUP BY behavior ORDER BY COUNT(DISTINCT user_id) DESC;在这里插入图片描述在这里插入图片描述

3)留存:新增用户的留存情况

由下表数据,次日、3日、7日留存率均维持在20%左右,数据作为周留存率来看,表现还是非常优秀的,但作为次日留存来看,就不是很理想了,可以结合产品设计和新用户转化路径来分析用户的流失原因,通过不断的修改和调整来降低用户流失,提升次日留存率;另外,12月2日、3日的留存率相较之前有2%-8%的上涨,故促销活动能为提升留存带来一定正向的影响。

注:本次研究把2017年11月25日当天的用户全作为新用户,与实际情况不符,考虑实际情况进行分析,淘宝APP的留存已经过了流失期和蒸馏期,进入稳定期,在这样的条件下,若留存率达到20%还是很可观的。

在这里插入图片描述在这里插入图片描述

4)变现:复购分析

下图展示了不同复购次数对应的用户数量,发现复购5次以上的用户仅占有购买行为用户数的10%,我们发现高复购次数的用户很少,商家可以从商品质量、服务质量、物流体验三方面寻找原因,定位所在问题点,寻求高复购率突破。

在这里插入图片描述在这里插入图片描述

经下面代码块计算,复购率为65%,淘宝APP的整体复购率相对可观,应将经营重点转化为培养用户的忠诚度上,鼓励用户更高频次的消费。

代码语言:javascript复制SELECT CONCAT(ROUND (SUM(case when 购买数>=2 then 1 else 0 end) / SUM(case when 购买数>0 then 1 else 0 end) * 100), '%') AS '复购率' FROM user_behavior;在这里插入图片描述在这里插入图片描述2.不同时间尺度下的用户行为模式分析

分别以研究全时段(9天,此处觉得再研究单周意义不大),日为单位,分析用户购买行为,找出活跃用户规律。

1)分析2017年11月25日至12月3日 9天中每天的用户行为

由图可见在研究日期范围内用户活跃度较为平稳,仅在12月2日、3日有明显增长,该日期和11月25日、26日同为周末,故除特别营销活动外,周末能为提升用户活跃度带来的影响较小; 另外,几项指标在12月2日点击数涨幅最大,收藏数涨幅最小,可能是双十二促销活动刚开始预热,用户开始大量浏览商品;加入购物车是用户在批量购买商品时的前置动作,因此加入购物车的行为发生次数同样大幅增加。

在这里插入图片描述在这里插入图片描述代码语言:javascript复制SELECT dates, COUNT(behavior), SUM(CASE WHEN behavior='pv' THEN 1 ELSE 0 END) AS '点击数', SUM(CASE WHEN behavior='fav' THEN 1 ELSE 0 END) AS '收藏数', SUM(CASE WHEN behavior='cart' THEN 1 ELSE 0 END) AS '加购数', SUM(CASE WHEN behavior='buy' THEN 1 ELSE 0 END) AS '购买数' FROM userbehavior GROUP BY dates ORDER BY dates;

2)分析一天中每小时的用户行为

这里用SQL提取每天的数据,用Excel绘成动态图表,观察发现每日各项行为数据变化趋势相同,这里我们仅选择一个周五2017年12月1日进行分析; 观察下图发现,12月1日这天共有两个高峰期,分别是晚上20点至22点和上午10点至下午13点,对应了许多上班族中午和晚上休息的时间,符合大部分人的作息规律; 另外,我们发现加购和收藏量的峰值出现在晚上20-22点,而购买量的峰值则在早上10点,大部分人喜欢晚上收藏加购,早晨购买,说明收藏和购买是异步的用户行为,收藏的峰值通常发生在购买行为的前一段时间,加购则是购买的前置动作,其峰值也会发生在购买行为前。

在这里插入图片描述在这里插入图片描述3. 用户价值分析

1)用户价值分层(RFM模型)

由于数据缺少M(消费金额)列,暂且通过R(最近一次购买时间)和F(消费频率)的数据对客户价值进行打分。

通过打分可以了解每位顾客的特性,从而实现差异化营销。例如对于user_value=44的用户,可划分为VIP用户重点关注,并且投放活动时不要引起反感;而对于user_value=14这类用户粘性不强而消费时间间隔较短,运营活动可以重点针对这部分用户,提高用户使用产品的频率,可以通过拼团打折、积分兑换、捆绑销售等活动唤起用户注意力;对于user_value=41这类忠诚度不高而购买能力强的用户,则需要关注他们的购物习惯做精准化营销。

在这里插入图片描述在这里插入图片描述代码语言:javascript复制SELECT r.user_id,f.frequency,recent_rank,freq_rank, CONCAT( CASE WHEN recent_rank(6589)/4 AND recent_rank(6589)/2 AND recent_rank


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3