淘宝APP用户行为数据分析

Posted 浪尖聊大数据

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了淘宝APP用户行为数据分析相关的知识,希望对你有一定的参考价值。

(
id id_behave set sql_safe_updates=0;
alter table user add column datetime timestamp(0) null;
update user set datetime = from_unixtime(times);

时间戳转换为日期类型
  • 将其按date和time拆分成两列

  • alter table user add column date char(10) null;--增加date一列
    update user set date = substring(datetime from 1 for 10);--取出年-月-天
    alter table user add column time char(10) null;--增加time一列
    update user set time = substring(datetime from 12 for 2);--取出小时
    年-月-天和小时分成两列

    3.异常值处理

  • 删去11-25至12-03日以外的数据

  •  delete from user where datetime<\'2017-11-25 00:00:00\' or datetime>\'2017-12-04 00:00:00\';

    select *, row_number() over (partition by id order by date) as user_rank from user

  • 统计每日新增用户数DNU

  •  select date,count(id) as DNU from 
    (select *, row_number() over (partition by id order by date) as user_rank from user) as A
    where A.user_rank=1 group by date order by date asc;

    分析:新增用户在11月25日为13927人,处于最高水平,后逐日递减。推测11月25日前后可能存在促销活动或拉新活动。

    2.用户留存率分析

    第N日留存率=新增日之后的第N日再次登录的用户数/第一天新增总用户数。

  • 依次算出每日留存人数

  • select date,count(distinct id) as 留存人数,
    count(distinct id)/(select count(distinct id) from user where date=\'2017-11-25\') as 留存率 from user
    where id in (select distinct id from user where date=\'2017-11-25\')
    group by date order by date asc;
    每日留存率

    分析:由上表可知,11-25之后的8日内留存率均在75%以上,且12月2日-3日的留存率超过98%,说明客户较为稳定,浏览意愿极为强烈。说明客户较为稳定,浏览意愿极为强烈。可能是前期的拉新活动效果较好,每日打卡领金币调动了用户的积极性,为冲刺双十二做准备。

    3.不同时间尺度下用户行为模式分析

  • 创建用户行为视图(按天)

  • create view user_behavior as 
    SELECT date,
    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 user
    GROUP BY date
    ORDER BY date
    每天用户行为

    分析:这9天中,11月25日至12月1日用户浏览量变化幅度小,范围在18万到20万之间,12月2日-3日有较大幅度增加,对比同样是周末的11月25日-26日,pv无明显上涨,因此认为12月2-3日的上涨可能与周末的双十二预热营销活动效果有关。

  • 创建用户每小时的行为视图(按小时)

  • create view time_behavior as SELECT time,
    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 user
    GROUP BY time
    ORDER BY time

    分析:

    (1)1-6点使用淘宝的人数处于低峰,可能是因为此时大部分用户都处于睡眠状态有关;6 -10点使用人数逐渐增多,10-18点使用量趋于稳定状态;18-21点用户行为逐渐活跃,可能与用户下班后有时间使用淘宝购物有关,晚间21-23点达到高峰值,这个时间段是大部分人群的睡前时间,和人们喜欢在睡前购物的心理有关。夜间23-1点(次日)可能是部分人群进入睡眠,导致使用人数下降。

    (2)晚间22-23点为加购峰值,商家可以此时在购物车页面加大活动力度或发红包补贴,刺激用户消费欲望,促进购买转转化。

    4.用户流失分析

  • 计算用户总数

  • select count(distinct id) as 用户总数 from user;
  • 计算跳失率:跳失率=只点击一次浏览的用户数量/总用户访问量

  • select count(*) as 只浏览一次就离开的人数 from 
    (select id from user group by id having count(behavior)=1) as A

    分析:统计时间为9天,只浏览一次就离开的人数为1,总用户访问量为9969,跳失率=1/9969=0.01%,占比几乎可以忽略不计,说明淘宝拥有足够的吸引力让用户停留在APP中。

  • 用户行为数漏斗计算

  • select behavior,count(*) as 行为次数 from user group by behavior;

    分析:由于收藏和加入购物车都为浏览和购买阶段之间确定购买意向的用户行为,且不分先后顺序,因此将其算作一个阶段,可以看到从浏览到有购买只有buy/pv=2.25%的转化率,流失率很高。下面用假设检验分析方法的思路来验证转化率低的原因。

    5.假设检验分析方法

    为了进一步找出转化率低的原因所在,这里提出两个假设:

  • 假设一:用户浏览商品时未使用收藏加购功能,导致产生购买意愿时增加了搜寻成本,从而使购买意愿下降。

  • 假设二:商品热搜产品与热销产品不匹配造成的转化率低。

  • 5.1验证假设一:未把商品收藏或加入购物车增加购买麻烦,降低购买意愿

  • 建立购买流程视图

  • create view 购买流程as 
    select id,item,category,
    sum(case when behavior=\'pv\' then 1 else 0 end) as pv,
    sum(case when behavior\'fav\' then 1 else 0 end) as fav,
    sum(case when behavior=\'cart\' then 1 else 0 end) as cart,
    sum(case when behavior=\'buy\' then 1 else 0 end) as buy
    from user
    group by id,item,category;--分别按照id,item,category分组
  • 不同购买流程分析

  • 本数据集用户行为类型包括点击pv、收藏fav、加入购物车cart、购买buy。由之前分析可知,用户购买流程可分为:

  • 点击后直接购买:pv-buy

  • select count(1) as 浏览人数 from 购买流程 where pv>0;
    select count(1) as 浏览后直接购买人数 from 购买流程 
    where pv>0 and fav=0 and cart=0 and buy>0 ;
  • 点击、收藏后购买:pv-fav-buy

  • select count(1) as 浏览后收藏人数 from 购买流程 where pv>0 and fav>0;
    select count(1) as 浏览后收藏再购买人数 from 购买流程 where pv>0 and fav>0 and cart=0 and buy>0;
  • 点击、加购后购买:pv-cart-buy

  • select count(1) as 浏览后加购再购买人数 from 购买流程 where pv>0 and cart>0 ;
    select count(1) as 浏览后加购再购买人数 from 购买流程 where pv>0 and fav=0 and cart>0 and buy>0;
  • 点击、收藏并加购后购买:pv-fav、cart-buy

  • select count(1) as 浏览收藏加购人数 from 购买流程 where pv>0 and cart>0 and fav>0 ;
    select count(1) as 浏览收藏加购再购买人数 from 购买流程 where pv>0 and fav>0 and cart>0 and buy>0;

    分析:通过上述流程转化分析,发现在pv—fav—buy、pv—cart—buy以及pv——fav、cart—buy中的购买转化率明显大于pv—buy中的购买转化率。这是因为未把商品收藏或加入购物车,用户想要购买时就需要重新搜寻,增加了搜寻成本和麻烦,从而使得用户购买意愿下降。假设一成立。这种情况下可以通过以下方法鼓励用户使用购物车和收藏功能:

    (1)收藏商品再下单可以领取优惠券;

    (2)将商品加入购物车可以不定时享受折扣。

    5.2验证假设二:热搜-热销商品匹配度低

    统计所有商品的购买次数,同时找到购买次数、浏览次数、收藏次数和加入购物车次数最多的商品。取销售排名前50的为热销商品,取浏览+加购+收藏排名前50的为热搜商品,观察商品id重合情况。

  • 提取排名前50的热销商品

  • select * from (select item,count(1) as 热销商品,
    row_number()over(order by count(1) desc )as 热销排名 from user
    where behavior=\'buy\' group by item)as A where A.热销排名<51;
  • 提取排名前50的热销商品

  • select * from (SELECT item, COUNT(1) AS 热搜商品 ,
    row_number() over(order by COUNT(1) desc) as 热搜排名 FROM user
    WHERE behavior=\'pv\' or behavior=\'fav\' or behavior=\'cart\' GROUP BY item) as A where A.热搜排名<51;
  • 热销商品与热搜商品匹配度分析

  • select A.item,A.热销商品,A.热销排名,B.热搜商品,B.热搜排名 from 
    (select * from (select item,count(1) as 热销商品,row_number()over(order by count(1) desc )as 热销排名 from user where behavior=\'buy\' group by item)as A where A.热销排名<51) as A
    inner join
    (select * from (SELECT item, COUNT(1) AS 热搜商品 ,row_number() over(order by COUNT(1) desc) as 热搜排名 FROM user WHERE behavior=\'pv\' or behavior=\'fav\' or behavior=\'cart\' GROUP BY item) as A where A.热搜排名<51) as B
    on A.item=B.item

    分析:

    (1)由此可看出,在销量最高的前50名商品中,热搜商品只有5种,匹配率为10%,说明热销产品和热搜产品的匹配度不高。假设二成立。

    (2)匹配度低可能有以下两种情况:a.推荐算法效果不佳,详情页的信息流展示可能不太合理,导致首页推荐的大部分商品可能未精准匹配用户需求,大多数人只是点击后就离开,并没有购买意愿。针对这种情况建议淘宝APP优化推荐算法,做到精准运营。b.热搜商品优惠力度不够。可能商家为了吸引用户点击在商品展示页投放的价格具有较强吸引力,但商品详情页的实际价格可能远高于展示价格,从而降低了用户的购买意愿。这时建议商家将热搜排名靠前而热销排名靠后的商品加大优惠力度,实行团购打折等手段提升购买转化率。

    6.商品复购分析

  • 按被购买次数划分商品

  • SELECT A.`被购买次数`,COUNT(item) as \'商品数\' from 
    (SELECT item, COUNT(id) AS \'被购买次数\' FROM user WHERE behavior=\'buy\' GROUP BY item) as A
    GROUP BY A.`被购买次数`
    order by A.`被购买次数` asc;

    分析:在本次统计的数据中,复购次数集中在1-4次,呈长尾分布,该阶段用户消费欲望不大。其中只购买一次的产品有27611种,购买两次的产品有3418种,本次分析的商品中用户购买的共有32485种商品,19544名用户中,被购买次数最多的商品仅为35次,没有出现购买用户数量非常集中的商品,而被购买一次的商品占到27611/32485=85%,说明商品售卖主要依靠长尾商品的累积效应,而非爆款商品的带动。建议多开展营销活动,比如淘宝的达成金主的条件限制,鼓励用户复购。对于用户消费习惯的分析,通过了解用户消费的集中时段集中实施各种营销活动,提高投入产出比。

    7.转化率分析

  • 不用时间尺度下的转化率

  • 每日付费转化率

  • select date,浏览数,付费数,付费数/浏览数 as \'转化率\' from user_behavior

    分析:11.25-12.03的9天内,淘宝APP的付费转化率再2%-2.6%之间,其中,在11.26-11.27日转化率呈现较大幅度增长,于11.27达到最高值2.53%,11.27-11.28发生小幅度下降,11.28-11.29呈小幅升高,11.29以后呈下降趋势。

  • 每小时付费转化率

  • select time,浏览数,付费数,付费数/浏览数 as 转化率 from time_behavior;

    分析:由上图可以看出,一天内夜间3:00转化率最低且浏览量也很低,可能是大部分人处于睡眠状态,上午10:00-11:00转化率最高,其次下午15-17点的转化率也较高,之后呈逐渐下降趋势。虽然APP使用量和浏览量在晚间21:00-23:00达到高峰,但此阶段的付费转化率并不高,建议商家可以在这个时间段将优惠力度加大,例如发放一些优惠券等,提升用户的购买欲望,促进购买转化。

  • 不同类别商品的付费转化率

  • SELECT category,
    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 user
    GROUP BY category
    order by 浏览数 desc

    分析:由上图可以看出,商品商品类别为2735466和2885642的两类商品的转化率最高,分别为3.27%和3.26%,类别为154040的商品转化率最低,为0.31%,对于商品浏览量高,而转化率非常低的,建议商家对商品购买流程使用转化漏斗进行分析并进行改善。

    五、基于RFM理论找出有价值的用户

    M-消费金额,由于数据源中没有相关的金额数据,不计入评分。

    R-最近购买时间

    用户数据的时间范围为9天,最近购买时间的区间为0-9,将其分为5档,0-1,1-2,3-4,5-6,7-8分别对应评分1到5。

  • 创建用户购买时间到12-04日的距离视图

  • CREATE VIEW pay_B AS
    SELECT id, DATEDIFF(\'2017-12-04\',MAX(date)) AS B FROM user WHERE behavior=\'buy\' GROUP BY id;
  • 创建R得分视图

  • create view RR as 
    SELECT id,
    (CASE WHEN B BETWEEN 7 AND 8 THEN 1
    WHEN B BETWEEN 5 AND 6 THEN 2
    WHEN B BETWEEN 3 AND 4 THEN 3
    WHEN B BETWEEN 1 AND 2 THEN 4
    WHEN B BETWEEN 0 AND 1 THEN 5
    ELSE null END) AS R
    FROM pay_B ORDER BY R DESC

    F-消费频率

  • 查看用户购买次数

  • SELECT id,count(id)as \'次数\' from user where behavior=\'buy\' group by id order by 次数 desc;

    分析:付费用户中消费次数从低到高为1-72次,将其分为5档,1-15,16-30,31-45,46-60,61-72分别对应评分0到4。

  • 创建用户购买次数视图

  • CREATE VIEW pay_F AS SELECT id, COUNT(*) AS A FROM user WHERE behavior=\'buy\' GROUP BY id;
  • 创建F得分视图

  • create view FF as 
    SELECT id, (CASE WHEN A BETWEEN 1 AND 15 THEN 1
    WHEN A BETWEEN 16 AND 30 THEN 2
    WHEN A BETWEEN 31 AND 45 THEN 3
    WHEN A BETWEEN 46 AND 57 THEN 4
    WHEN A BETWEEN 58 AND 72 THEN 5 ELSE 0 END) as F
    FROM pay_F ORDER BY F DESC;
  • 创建RFM得分视图

  • create view RR_FF as SELECT RR.id,RR.R,FF.F from RR left join FF on RR.id=FF.id
  • 计算R、F平均值

  • select avg(R) as R平均值,avg(F) as F平均值 from RR_FF;
  • 按得分与平均分的关系进行用户分类

  • select 用户分类,count(用户ID) as 人数
    from (select 用户ID,
    (case when R >3.5544 and F >1.3249 then "重要价值客户"
    when R >3.5544 and F <1.3249 then "重要发展客户"
    when R <3.5544 and F >1.3249 then "重要保持客户"
    when R <3.5544 and F <1.3249 then "重要挽留客户"
    else 0 end) as 用户分类
    from RR_FF) as a group by 用户分类;

    分析:

    (1)重要价值客户是指R,F得分都在平均分以上的用户,此类用户的购买力和粘性较高,且近期极有可能再次购买;重要发展客户是指R得分较高,而F得分较低的用户,此类用户近期买过但粘性不高;重要保持客户是指F得分较高,但R值较低的用户,此类用户粘性较好但近期购买行为较少;重要挽留客户是指R,F得分都在平均分以下,粘性不高且近期很少购买,此类用户如果不进行挽留将会成为流失用户。

    (2)根据用户分类结果,用户最主要集中在重要发展客户和重要挽留客户,应针对不用的客户实行不同的运营策略。

    六. 结论与建议

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

    1.一天内用户最活跃的时间段是21-23点,尤其是22点-23点的这一小时。

    建议:把握该黄金时段,集中进行营销活动提高用户购买转化率,例如平台带货直播、分会场促销、限时抢购等。且更多选择热搜热销的商品类目和商品,迎合用户需求。

    2. 用户这9日内的留存率均在75%以上,且12月2日-3日的留存率超过98%,说明客户较为稳定,浏览意愿极为强烈。这可能是因为存在新用户打卡活动等,调动了用户的登录积极性。

    建议:多举办老用户拉活阶梯式奖励、新用户浏览集积分等活动,培养用户登录习惯,调动浏览热情。发放新用户满减优惠券、首单直减等活动,提高新用户的购买转化率。

    3. 用户在点击→收藏→购买、点击→加入购物车→购买、点击→收藏和加购→购买这三个流程的购买转化率都明显大于点击→购买中的购买转化率。这可能是因为收藏或加购能提供购买便捷,提高用户购买意愿。

    建议:增加跨店满减、收藏加购送商品赠品、送福利等活动,引导用户收藏加购行为,从而提高用户购买转化率。

    4.商品热搜和热销并不匹配,大部分商品可能未精准匹配用户需求或优惠力度不够,并没有促使用户进行购买。

    建议:

    (1)优化推荐算法,优先推荐热搜、热销排名靠前的商品,降低用户搜寻成本。

    (2)优化搜索功能,根据用户画像更精准推荐商品,使热搜和热销更为匹配。

    (3)加大热搜商品的优惠力度,提高热搜商品的购买转化率。

    (4)针对浏览量高而购买转化率低的商品,应改善商品页、详情页以及评论区管理。

    5. 用户最主要集中在重要发展客户和重要挽留客户。

    建议:针对不用客户实行不同运营策略。

    (1)对于占比最大的重要发展客户,消费频率低但最近一次消费时间间隔短,可以通过发放满减优惠券等方法提高消费频率;

    (2)对于占比第二大的重要挽留客户,消费频率低且最近一次消费间隔长,面临用户流失风险,可以通过电话邮件等形式主动联系客户,调查问题所在,并有针对地进行挽回;

    (3)对于占比较大的重要价值客户,应提供专属的VIP服务,通过服务质量进一步调高其粘性;

    (4)对于占比较低的重要保持客户,消费频次高但最近一次消费时间间隔长,可以通过短信邮件等方式提醒上新、邀请参加老用户反馈活动等提高复购率。

    淘宝APP用户行为数据分析之一 —— 数据集介绍

    UserBehavior是阿里巴巴提供的一个淘宝用户行为数据集,用于隐式反馈推荐问题的研究。

    数据来源☞ 传送门

    数据情况介绍:

    UserBehavior.csv

    本数据集包含了2017年11月25日至2017年12月3日之间,有行为的约一百万随机用户的所有行为(行为包括点击、购买、加购、喜欢)。

    数据集的每一行表示一条用户行为,由用户ID、商品ID、商品类目ID、行为类型和时间戳组成,并以逗号分隔。

    关于数据集中每一列的详细描述如下:

    列名称 说明
    用户ID 整数类型,序列化后的用户ID
    商品ID 整数类型,序列化后的商品ID
    商品类目ID 整数类型,序列化后的商品所属类目ID
    行为类型 字符串,枚举类型,包括(\'pv\', \'buy\', \'cart\', \'fav\')
    时间戳 行为发生的时间戳

    注意到,用户行为类型共有四种,它们分别是

    行为类型 说明
    pv 商品详情页pv,等价于点击
    buy 商品购买
    cart 将商品加入购物车
    fav 收藏商品

    关于数据集大小的一些说明如下

    维度 数量
    用户数量 987,994
    商品数量 4,162,024
    商品类目数量 9,439
    所有行为数量 100,150,807

    由于源数据量较大(3.41G),后续只对300万条数据进行处理,这部分数据中包含29178名用户的行为记录。

    由于源数据量较大(3.41G),本文只对300万条数据进行处理

    处理时间戳

    异常日期处理

    生成本地CSV文件

    以上是关于淘宝APP用户行为数据分析的主要内容,如果未能解决你的问题,请参考以下文章

    淘宝APP用户行为数据分析 by 一只废鹅

    淘宝APP用户行为数据分析

    淘宝APP用户行为数据分析之二 —— 数据清洗

    淘宝网的质量属性的六个常见属性场景

    用户意愿和用户能力

    python数据分析项目:用户消费行为分析