阿里云天池:https://tianchi.aliyun.com/dataset/dataDetail?dataId=649&userId=1
UserBehavior.csv
原始数据有100150806条,数据量过大,不方便使用Mysql进行操作,本例先使用python对数据进行处理,选取其中的999999条数据用于本次用户行为分析。
user_id:用户id
item_id:商品Id
category_id:商品类别id
behavior_type:用户行为类型
timestamp:时间戳
其中behavior_type包括:
pv(点击)
cart(加入购物车)
fav(收藏)
buy(购买)
① 时间戳转日期型
ALTER TABLE userbehavior_random ADD COLUMN datetime TIMESTAMP(0) NULL;
UPDATE userbehavior_random SET datetime = FROM_UNIXTIME(timestamp);
② 提取年月日
ALTER TABLE userbehavior_random ADD COLUMN dates CHAR(10) NULL;
UPDATE userbehavior_random SET dates =SUBSTR(datetime,1,10);
③ 提取时分秒
ALTER TABLE userbehavior_random ADD COLUMN hours CHAR(10) NULL;
UPDATE userbehavior_random SET hours = SUBSTR(datetime,12,8);
④ 提取小时(Tableau中绘图时使用)
ALTER TABLE userbehavior_random ADD COLUMN time CHAR(10) NULL;
UPDATE userbehavior_random SET time = SUBSTR(datetime,12,2);
① 查看时间的最大最小值
SELECT MAX(timestamp),
MIN(timestamp),
MAX(datetime),
MIN(datetime)
FROM userbehavior_random;
② 删除异常值
本次分析针对2017年11月25日至2017年12月3日数据,对异常值进行删除,共删除508行。
DELETE FROM userbehavior_random
WHERE dates < '2017-11-25' OR dates > '2017-12-03';
SELECT * FROM userbehavior_random
目前还剩999491条数据
SELECT DISTINCT * FROM userbehavior_random
显示有999491条数据,无重复值。
SELECT COUNT(user_id),COUNT(item_id),COUNT(category_id),COUNT(behavior_type),COUNT(timestamp)
FROM userbehavior_random
2017年11月25日-2017年12月1日 活跃人数较为平稳,但也有增长趋势,12月1日-12月3日增长相对较迅速,活跃用户人数约增加 26%。
SELECT COUNT(DISTINCT user_id)AS 'UV',
(SELECT COUNT(*) FROM userbehavior_random
WHERE behavior_type='pv')AS 'PV',
(SELECT COUNT(*) FROM userbehavior_random
WHERE behavior_type = 'pv')/(COUNT(DISTINCT user_id) ) AS 'PV/UV'
FROM userbehavior_random;
UV:独立访客数
PV:页面流量次数
PV/UV:平均一个独立访问者所浏览的页面访问量
SELECT dates,
SUM(CASE WHEN behavior_type='pv' THEN 1 ELSE 0 END)AS '日均访问量',
COUNT(DISTINCT user_id)AS '日均UV用户'
FROM userbehavior_random
GROUP BY dates
ORDER BY dates;
将上述查询所得表格导入Tableau中,绘制PV、UV每日变化趋势图。发现在2017年11月25日-2017年12月3日期间,PV与UV随日期的变化趋势相似,11月25日-12月1日较平稳,12月2日开始有明显增长,增长率约为27%。
将userbehavior_random表导入Tableau中,绘制PV、UV每时变化趋势图。可以发现18点到23点,uv波动不大,而pv波动较大,说明用户开始频繁访问。
从上图可以看出:
(1)四种行为的分布趋势基本一致。
(2)用户在晚上18点到23点会频繁点击浏览网页,收藏与加入购物车数量也随之增加
(3)其中购买曲线与收藏曲线趋势更为接近,在一定程度上说明客户对于收藏商品更为偏爱,而购物车里的一部分商品可能只是作为一种比较或者是排除购买的作用,可以关注客户购物车和收藏的商品进行精准推送。
跳失率=只有浏览行为的用户数/总用户数
SELECT SUM(IF(t.fav_num=0 AND t.cart_num=0 AND t.buy_num=0,1,0))/COUNT(t.user_id)*100 AS '跳失率'
FROM(
SELECT user_id,
SUM(IF(behavior_type='fav',1,0)) fav_num,
SUM(IF(behavior_type='cart',1,0)) cart_num,
SUM(IF(behavior_type='buy',1,0)) buy_num
FROM userbehavior_random
GROUP BY user_id
) t
可得跳失率约为23.98%,说明详情页对用户吸引力扔有待提高。
2017年11月25日-2017年12月1日交易人数呈平稳状态,并有少量增加,12月1日-12月3日 交易用户人数约增加32%;
复购率 = 购买次数两次及其以上的人数/有购买行为的用户总数
select concat(round((sum(case when 购买量>=2 then 1 else 0 end)/
sum(case when 购买量>0 then 1 else 0 end))*100,2),'%') as 复购率
from userbehavior1;
create view userbehavior1
as select user_id,
count(behavior_type) as '用户行为总数',
SUM(case when behavior_type = 'pv' then 1 else 0 end)as '点击量',
sum(case when behavior_type = 'buy' then 1 else 0 end)as '购买量',
sum(case when behavior_type = 'fav' then 1 else 0 end)as '收藏数',
sum(case when behavior_type = 'cart' then 1 else 0 end)as '加购数'
from userbehavior_random
group by user_id;
select sum(点击量) as total_pv,
sum(购买量) as total_buy,
sum(收藏数) as total_fav,
sum(加购数) as total_cart
from userbehavior1;
select concat(round(sum(点击量)/sum(用户行为总数)*100,2),'%') as total_to_pv,
concat(round((sum(收藏数)+sum(加购数))/sum(点击量)*100,2),'%') as pv_to_favCart,
concat(round(sum(购买量)/sum(点击量)*100,2),'%') as pv_to_buy
from userbehavior1;
使用Tableau绘制用户漏斗模型,在2017年11月25日-2017年12月3日期间,用户的点击率为89.54%,收藏或加购的占比为9.47%,最终购买率为2.22%;
n日后留存率=(注册后的n日后还登录的用户数)/第一天新增总用户数
以2017-11-25作为第一天,计算次日、3日、7日留存率
--第一天新用户数
create table liucun
as select count(distinct user_id) as 第一天新用户数
from userbehavior_random
where dates = '2017-11-25';
-- 第二天留存用户数
alter table liucun add column 第二天留存用户 INT;
update liucun set 第二天留存用户=
(select count(distinct user_id) from userbehavior_random
where dates = '2017-11-26'
and user_id in (SELECT user_id FROM userbehavior_random WHERE dates = '2017-11-25'));
-- 第三天留存用户数
alter table liucun add column 第三天留存用户 INT;
update liucun set 第三天留存用户=
(select count(distinct user_id) from userbehavior_random
where dates = '2017-11-27'
and user_id in (SELECT user_id FROM userbehavior_random WHERE dates = '2017-11-25'));
-- 第五天留存用户数
alter table liucun add column 第五天留存用户 INT;
update liucun set 第五天留存用户=
(select count(distinct user_id) from userbehavior_random
where dates = '2017-11-29'
and user_id in (SELECT user_id FROM userbehavior_random WHERE dates = '2017-11-25'));
alter table liucun add column 第七天留存用户 INT;
update liucun set 第七天留存用户=
(select count(distinct user_id) from userbehavior_random
where dates = '2017-12-01'
and user_id in (SELECT user_id FROM userbehavior_random WHERE dates = '2017-11-25'));
SELECT CONCAT(ROUND(100*第二天留存用户/第一天新用户数,2),'%')AS 次日留存率,
CONCAT(ROUND(100*第三天留存用户/第一天新用户数,2),'%')AS 三日留存率,
CONCAT(ROUND(100*第五天留存用户/第一天新用户数,2),'%')AS 五日留存率,
CONCAT(ROUND(100*第七天留存用户/第一天新用户数,2),'%')AS 七日留存率
from liucun;
用户留存率相对稳定,七日留存率略有回升,可能是因为当天12月1日是星期五,正好是客户活跃度上升的一个转折点,可能是有购物优惠活动。
本项目运用MySQL+Tableau+python,从100150806条用户行为数据中随机选取999999条数据进行分析,下面结合AARRR模型,对应用户生命周期中的5个重要环节,对用户行为进行总结。
1、Acquisition–用户获取
由PV、UV每时变化趋势图可知18点到23点是用户频繁访问的时间,也是获取更多潜在客户的黄金时间。可以用最小的获客成本进行小游戏邀请、热门社交或小视频平台合作推广、app卖家推送等增加渠道曝光量进而增加渠道转化率。
本项目中跳失率约为23.98%,说明详情页对用户吸引力扔有待提高,可以进行精准人群推广、视觉优化等方式降低跳失率。
2、Activation–用户激活
本项目中2017年11月25日-2017年12月1日 DAU较为平稳,12月1日-12月3日增长相对较迅速。本项目分析了用户的四种行为,包括点击、购买、加入购物车、收藏。
点击量占总行为的89.54%,而收藏和加入购物车的用户仅占9.47%,最终购买的用户只有2.22%,转折点在加入购物车和收藏,要考虑为什么用户浏览了那么多商品却只有9.47%的用户加入购物或收藏,可能这中间用户花了太多的时间却没有挑选到满意的商品,那么有一些客户就流失掉了。
可以采取问卷调查的方式分析用户行为推送用户可能感兴趣的商品、优化购物界面使界面布局更加人性化等方式更好的满足用户需求,激活更多用户。
3、Retention–提高留存
在本项目中用户留存率相对稳定,七日留存率略有回升,可能是因为当天12月1日是星期五,正好是客户活跃度上升的一个转折点,可能是有购物优惠活动。
为了提高留存,可以让用户养成习惯,在一定程度上增加用户对产品的依赖性。①每日给用户推送可能感兴趣的商品;②一些签到的小游戏或者签到领积分活动,增加用户登录的频率,进而增加用户浏览时长;③对于年购买量比较大的用户,为了增加这些用户的粘性,可以推出vip服务,让这些用户享受折扣和优惠券,进而提高高价值用户的留存率和对平台的忠诚度;④大力推广直播跟用户互动,计算亲密指数并进行排行,可以让用户与店主之间建立信任,进而增加客户的忠诚度。
4、Revenue–增加收入
为了增加收入要提高成交转化率、复购率以及加购或收藏产品的购买率。
①提高成交转化率,优化用户推荐系统,或者邀请明星做测评推广;②用户复购率为33.65%,说明这些用户对该平台不太满意,可以通过奖励积分或者优惠券等方式鼓励用户重复购买;③通过分析找出价值用户的购买偏好,产品和类目等,给价值用户制定个性化的产品推荐,从而提高用户体验,进而提高购买率。
5、Referral–用户传播
要想让用户自发传播,那这个产品口碑一定要非常好,而且能够充分满足用户的需求,甚至给用户带来期望的需求。所以,要好好打磨产品。
可以采用一些增长策略,像现在比较普遍的老带新裂变营销,把握用户心理策划一些噱头式的活动等。还可以拼团、分享得优惠券、分享到朋友圈额外送积分等方式,鼓励用户进行分享和传播。