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

2022-11-10 18:14:33 浏览数 (1)

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

前言

本文针对淘宝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 THEN '4' 
WHEN recent_rank>(6589)/4 AND recent_rank<=(6589)/2 THEN '3'
WHEN recent_rank>(6589)/2 AND recent_rank<=6589/4*3 THEN '2'
ELSE '1' END,
CASE WHEN freq_rank<=(6589)/4  THEN '4' 
WHEN freq_rank>(6589)/4  AND freq_rank<=(6589)/2 THEN '3'
WHEN freq_rank>(6589)/2 AND freq_rank<=6589/4*3 THEN '2'
ELSE '1' END
)AS user_value
FROM 
(SELECT a.*,(@rank:=@rank 1) AS recent_rank FROM
(SELECT user_id,
DATEDIFF('2017-11-25',max(dates)) AS recent
FROM userbehavior AS t1 WHERE behavior='buy' GROUP BY user_id ORDER BY recent
)AS a,(SELECT @rank:=0) AS b) AS r,
(SELECT *,(@rank2:=@rank2 1) AS freq_rank FROM
(SELECT user_id,count(*) AS frequency FROM userbehavior WHERE behavior='buy' 
GROUP BY user_id  ORDER BY frequency DESC)
AS a,(SELECT @rank2:=0)AS b) AS f 
WHERE r.user_id=f.user_id;
4.商品销售分析

1)商品销售情况

统计所有商品的购买次数,同时找到购买次数、浏览次数、收藏次数和加入购物车次数最多的商品。

本次分析的商品共有392778中,用户购买的商品共有16743种,却没有出现购买数量非常集中的商品;在本次统计的数据中,只购买一次的商品有14817种,占用户购买商品数的88.5%,说明商品售卖主要依靠长尾商品的累积效应,而非爆款商品的带动。

代码语言:javascript复制
SELECT product_buytimes, COUNT(*) AS product_type_count
FROM
(SELECT COUNT(user_id) AS product_buytimes
FROM UserBehavior
WHERE behavior = 'buy'
GROUP BY item_id) AS product_buypool
GROUP BY product_buytimes
ORDER BY product_buytimes ASC;

● 商品销量top20 列出销量前20位的商品,item_ID为3122135的商品销量最高,为15次,那么是否浏览次数最高的商品销量也最高呢?

● 商品浏览top20 我们看到浏览数最高的商品为812879,而浏览次数最高的商品甚至没有进入销量前20,说明这些吸引用户更多注意力的商品没有很好的转化为实际销量。

● 商品收藏top20 下图为收藏数前20的商品,可以看到排在收藏前1、15、20位的商品在浏览top20中也有出现,分别排名2、10、4,说明收藏和浏览的同步几率更大。

● 商品加购top20 在加入购物车次数最多的前20个商品中,可以看到销量第3、4、10位的商品在加购数中排第1、10、8,说明加购数与销量的关系更为直接。

2)商品类目销售情况 商品类目销售情况中有较为明显的集中趋势,top20如下表所示,可根据畅销类目优化商品展示、加强商品捆绑,进而提高销量。

代码语言:javascript复制
SELECT category_id , COUNT(*) AS cat_count
FROM userbehavior
WHERE behavior = 'buy'
GROUP BY category_id
ORDER BY cat_count DESC;

五、结论与建议

本文分析了淘宝APP用户行为数据共100万条,从四个不同角度提出业务问题,使用AARRR模型和RFM模型分析数据给出如下结论和建议。

1.通过AARRR模型分析用户使用的各个环节

1)获取用户 由于数据中没有给出每个用户第一次的登陆的时间,我们暂且把2017年11月25日作为每个用户的第一次登陆时间来处理。

在研究时段内,每天都有新增用户,但是新增用户在递减,仅在推出营销活动的周末有小幅回升,故推出的营销活动能够对新用户产生吸引,营销活动的推广渠道或许是用户量增长多少的关键。

2)激活用户 在购物环节中收藏和加入购物车都是确定购物意向的行为,没有先后之分,所以将这两个环节合并为购物环节中的一步。

从浏览到有购买意向只有9%的转化率,当然有一部分用户是直接购买,但也说明大多数用户以浏览页面为主而购买转化较少,此处为转化漏斗中需要改善和提高的环节。

针对这一环节改善转化率的建议有: ①优化电商平台的搜索匹配度和推荐策略,主动根据用户喜好推荐相关的商品,优化商品搜索的准确度和聚合能力,对搜索结果排序优先级进行优化; ②给客户提供同类产品比较的功能,让用户不需要多次返回搜索结果反复查看,便于用户确定心怡产品; ③在商品详情页的展示上突出用户关注的重点信息,精简信息流的呈现方式,减少用户寻找信息的成本; ④优化加入购物车和收藏按键的触达,用户在滑屏时也能方便触达,增加功能使用的次数。

3)提高留存 留存分析同样把2017年11月25日作为每个用户的第一次登陆时间来处理。

淘宝APP的留存相对而言较为稳定,周留存表现优秀,但次日留存略显不理想,可以结合产品设计和新用户转化路径来分析用户的流失原因,通过不断的修改和调整来降低用户流失,提升次日留存率;另外,12月2日、3日的留存率相较之前有2%-8%的上涨,故营销活动能为提升留存带来一定正向的影响,可以多推出一些营销活动,让用户提高使用淘宝电商平台的频率。

4)增加收入 使用APP的用户中有61%的付费用户,付费转化率相当高。

有购买行为的用户中,大概有65%的用户会重复购买,淘宝APP的整体复购率相对可观,应将经营重点转化为培养用户的忠诚度上,鼓励用户更高频次的消费。

高复购次数的用户少,商家可以从商品质量、服务质量、物流体验三方面寻找原因,定位所在问题点,寻求高复购率突。

5)用户推荐 淘宝本身用户基数庞大,知名度高,个人认为在一二线城市的用户基本已经达到饱和,传播工作需要针对三四线城市的渠道下沉,在这些地区针对用户价格敏感度高的特性开展类似拼多多的拼团转发和打折促销活动,扩大这部分用户的使用率。

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

研究的9天内共有两个周末,第一个周末仅有小幅上涨,而第二个周末因有营销活动预热,出现点击量和加购量的大幅上涨,故周末可多推出营销活动,上班族周末空闲时间的消费欲望还存在很大的挖掘潜力。

每天有两个高峰期,晚8点至10点,上午10点至下午1点,用户通常喜欢晚上加购收藏,早上进行购买。

针对高峰期进行营销活动收益最高,此时使用人数最多,活动容易触达用户,营销活动的形式可以通过促销、拼团等形式进行。

3.通过RFM模型找出最具价值的核心付费用户群,对这部分用户的行为进行分析

评分是44的用户是体系中的最有价值用户,需要重点关注。并且活动投放时需谨慎对待,不要引起用户反感。

对于价值评分是14的用户,其粘性不强但消费时间间隔较短,运营活动可以重点针对这部分用户,提高用户的产品使用频率,通过拼团打折、积分兑换等活动唤起用户注意力。

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

商品售卖主要依靠长尾商品的累积效应,而非爆款商品的带动。销量最高的商品在浏览数榜单上默默无闻,而浏览次数最高的商品甚至没有进入销量前20,说明这些吸引用户更多注意力的商品没有很好的转化为实际销量。

针对浏览量高而销量不高的这部分商品,商家可以从以下几个方面提高销售额: ①诚信吸引用户,有的商家为吸引用户点击,在商品展示页投放的价格具有较强吸引力,而实际价格偏高,反而造成用户流失; ②从用户角度出发设计详情页信息流展示,便于用户获取信息; ③优化商品展示的形式,可以采用视频等更直观的展示方式; ④评论区评价管理,尤其对于差评区的用户反馈进行认真对待,分析自身劣势,并做出积极的回应和弥补。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/188469.html原文链接:https://javaforall.cn

0 人点赞