
零、闲话
无论是刚入行的新人还是工作个几年的‘老油条’或多或少都有些不清楚,数据分析师是每天取数的工具人?还是可视化报表的maker?还是好不容易做出来一个专题分析,却被业务说纸上谈兵,不说“人话”。这谁心中不是委屈气愤,想搂掉业务两根头发。

一、什么是漏斗分析?
业务流程从起点到终点每经历一个环节都会有用户流失,于此,我么想了解分析每一步业务流程的转化效率和用户流失情况,所以漏斗模型应运而生,就是解决这个问题的经典方法。
这玩意最早由St. Elmo Lewis (美国知名广告人)在1898年提出的,叫做消费者购买漏斗(the purchase funnel),也叫消费者漏斗customer funnel、营销漏斗sales/marketing funnel等,是一种品牌广告的营销策略,准确的概括出了顾客关于产品或者服务的流程。
Lewis提出的这个策略,后来被称为AIDA模型,即意识-兴趣-欲望-行动。在接下来的100年里,随着漏斗模型的推广,为了适应新的媒体平台,以及用户行为路径的改变,它经过多次的修改和扩展,产生了各种衍生版本,比如AIDMA、AISDALSLove、AISAS、AARRR等。
漏斗分析最常用的是转化率和流失率两个互补型指标,流失率=1-转化率。用一个简单的例子来说明,假如有16899人访问某APP,有3362人点击注册,有575人注册成功。这个过程共有三步,第一步到第二步的转化率为19.89%,流失率为80.11%,第二步到第三步转化率为17.1%,流失率82.9%;整个过程的转化率为3.4%,流失率为96.6%。该模型就是经典的漏斗分析模型。


二、漏斗分析常用模型

AARRR模型:
AARRR模型是2007年由Dave McClure(500 Startups创始人)提出的一种业务增长模式,是做用户增长和生命周期最常用的漏斗模型,从用户增长各阶段入手,包括Acquisition用户获取,Activation用户激活,Retention用户留存,Revenue用户产生收入,Referral自传播等用户的生命阶段,进行漏斗分析,判断用户流失大致处于哪个阶段,进而对问题阶段的用户进行细分,精细化运营,完成用户向成熟用户和付费用户的引导,实现用户增长。


AIDMA模型


AISAS模型
因为AIDMA模型缺少用户反馈的环节,且随着互联网用户教育的完成,消费者行为模式发生了改变,随之衍生出了AISAS模型(Attention,Interest,Search,Action,Share),也就是注意-兴趣-搜索-行动-分享
用户从接受到产品的宣传营销信息(硬广or 软文),到引起兴趣,然后开始搜索进行了解(百度、知乎、微博、淘宝),到在线下载or支付,以及后续的评价分享环节(产品内、微信微博)。


三、漏斗分析行业应用
1、招聘漏斗:人力资源行业

每家公司HR招聘都是这个流程,邀请面试、面试人来访、初试、终试、过了发放offer、最终入职才算招聘完成,完成人员转化。
2、营销漏斗:广告行业

广告行业的展点消漏斗是很经典的案例,详细明了展现出平台的广告展现->点击->消耗->成交。结合相关的数据,可以根据此漏斗定位问题,或是优化产品/落地页,或是增强目标人群投放的精准度。
3、销售漏斗


四、漏斗分析流程

第一步:梳理关键节点,绘制流程与路径。根据业务场景的设定规则或节点的定义,绘制事件的流程;

第二步:收集对各环节的痕迹数据,进行数据分析。针对整个漏斗形成过程首先要进行指标的定义和数据的收集。

第三步:确定需要优化的节点。通过在关键指标上与同类用户的平均水平、行业平均水平等进行比较,分析差距、找到自身的薄弱环节;通过与自身历史同期水平进行比较,确定某一流程中需要优化的节点,采取措施进行针对性整改。


五、漏斗分析案例
分析背景:某电商平台一个阶段的成单流程转化漏斗分析
构造数据:
环节 人数浏览商品 8000加入购物车 3000生成订单 2000支付订单 800完成交易 600
代码分析:
from pyecharts import Funnel # 从pyecharts包中导出创建漏斗图的函数import pandas as pdimport numpy as np# 构造数据data = pd.DataFrame()data['环节'] = ['浏览商品','加入购物车','生成订单','支付订单','完成交易']data['人数'] = [8000,3000,2000,800,600]data# 根据给定数据求出单一环节转化率:temp1 = np.array(data['人数'][1:])temp2 = np.array(data['人数'][0:-1])single_convs = temp1 temp2single_convs = list(single_convs)single_convs.insert(0,1)single_convs = [round(x,4) for x in single_convs] # 利用round函数将转化率保留四位小数data['单一环节转化率'] = single_convs# 根据给定数据求出总体转化率:temp3 = np.array(data['人数'])temp4= np.ones(len(data['人数'])) * data['人数'][0]total_convs = (temp3 temp4).tolist()total_convs = [round(x,4) for x in total_convs]data['总体转化率'] = total_convsdataattrs = data['环节'].tolist()attr_value = (np.array(data['总体转化率'])* 100).tolist()funnel1 = Funnel("某电商平台转化漏斗",width=800, height=400, title_pos='center')funnel1.add(name="商品交易行环节", # 指定图例名称attr=attrs, # 指定属性名称value = attr_value, # 指定属性所对应的值is_label_show=True, # 指定标签是否显示label_formatter='{c}%', # 指定标签显示的格式label_pos="inside", # 指定标签的位置legend_orient='vertical', # 指定图例的方向legend_pos='left', # 指定图例的位置is_legend_show=False) # 指定图例是否显示funnel1.render()
结果展示:





