介绍
作者目前在某互联网证券社交平台从事产品数据分析工作,本项目解决的是用户从激活APP到首次支付的核心路径问题。
付费转化是任何互联网公司都要面对的“流量—>收入”的核心问题,付费问题又可以分为首次付费和重复购买。
不同产品的付费模式不同,影响因素也不同。证券费用类产品受政策、市场等外部因素影响,也受服务商(投顾)水平影响。投顾水平是核心因素,主要体现在投顾的判断是否准确。
至于首次付费,由于用户并没有真正体验到投顾的水平(并未买票),所以这个因素就从投顾的实际指导效果转化为用户对老师的印象,而印象来自于用户在站点(包括APP)内的体验,也就是老师的免费服务,比如答疑、直播互动、文章解析等。免费服务是投顾+站点提供给用户的,所以提升首次付费用户的用户体验,进而提升付费转化是站点可以掌控的。至于复购问题,正如上文所说,由于产品本身的特性,受投顾判断能力影响很大,站点无法在短时间内明显提升这种能力。同时,判断某一领域专家的判断是否准确,本身就是一个复杂的话题。基于这些原因,复购问题的复杂度远高于首次付费,因此本次分析不再涉及。笔者认为复购分析最好应用于具有刚性需求、影响因素可控的付款分析,比如电商洗发水分析,需求(洗发)是刚性需求,而影响因素(产品调性、价格等)可以由电商平台通过选择供应商来解决,因此能更好地分析复购问题。
以上就是本次分析的原因,下面逐一介绍分析项
分析逻辑:从APP用户从激活到支付的所有点击行为中,找到结果为“支付”的行为路径,筛选出出现次数最多的路径,优化促成支付的路径。(注:此方法刚好和用户行为漏斗相反,应该用在漏斗行为之前,请思考一下为什么)
样本要求:非羊毛党用户,即对APP本身感兴趣而使用APP的用户。通过某些渠道或活动吸引来的用户,比如下载APP送话费的用户、ASO带来的用户等,应该排除。否则后果如下:1.误导行为路径;2.无效样本过多,导致计算量过度膨胀,效率降低。
分析环境:R语言
分析代码:代码分为“重点点击建模分析”和“注册支付时差分布及消费金额分布”两部分,建议以脚本方式运行
按键点击建模分析
######################导入模型包################
()
()
()
()
()
(深渊)
###################读取数据(点击9.1到12.13)################
根
文件
# 文件中某些行的产品名称中包含“#”符号。在 R 中,“#”是默认的注释符号,这会导致文件被读取为
# 信息是注释,不算是数据,所以会出现“line did not have 17”的错误,也就是少了一行。
#元素问题,因此使用“.char”参数确认没有注释
踏
头(t.read)
############先按照ID然后排序
#t.读取$
#(踏)
踏
吨。
#头部(t.)
.csv(t.,文件="E:\\R\\\\\r.csv")
######################流程项目和表格矩阵################
#(tl)
tl
#(t.读取$)
t df
#(t.df)
#str(t.df[1:5])
t.tr
#(t.tr[1:5])
#(t.tr)
#str(t.tr)
##########处理id及格式必须是数字,且必须按顺序排列################
id.new
。新的
(t.read$“用户名”)
id.new[1]
.新[1]
for (i in 2:(t.read$"用户名")){if (t.read$"用户名"[i]==t.read$"用户名"[i-1]) {id.new[i]
.新[i]
否则 {id.new[i]
.新[i]
#t.read$"用户名"[1:20]
#data.(t.read$"用户名",id.new,.new)[1:20,]
# 导入和
(t.tr)$
(t.tr)$
(t.tr)
#(t.tr[1:130,])
#(t.tr)
#str(t.tr)
数据.t.tr
# 输出表
.csv(数据.t.tr,文件="E:\\R\\\\\.csv")
##################################
#条件限制
t.cs
= 5,=2),
=列表(= TRUE))
出门
.csv(t.out,文件=“E:\\R\\\\\\ut.csv”)
##################################正则表达式查找以“”为目标的序列########################################
t.cs
#t.cs
#head(t.cs)
#t.cs$
踢.付
t.cs.pay
(t.cs.pay)
t.cs.pay
t.cs.pay。
################过滤关键页面#########################
#累计计算支持率,找出对支持率影响最大的按钮。
和。
t.cs.pay。
max. = 0.7# 考核影响达70%
# 排列表格并添加相关数据项
t.cs.pay。
#(t.cs.pay.$)
##########找到导致付款的重要预点击############
踢蚂蚁
对于(i.seq 在 t.cs.pay.$){
头部.seq1
.seq1
kick.ant[i]
#踢.蚂蚁
###############计算点击了上一个项目的人数##################
#点击了第一项()的人数,这里第二项()指的是“支付”,请注意这是点击按钮的人数,而不是点击次数
踢。
对于(i.kick 在 kick.ant 中){
踢.[一世]
################计算置信度############
#生成的序列有多少个实例,序列的大小*序列中的人数
踢。
#计算影响付费点击的置信度()
康.踢。
#最终结果:将优化后的序列结果,以及之前的点击名称和置信度放在一起。
。
头(。)
#(.)
#输出
.csv(.,file="E:\\R\\\\\\\.csv")
#绘画
#支持
(as.(.$,nrow=1),ylim=c(1,0),=TRUE,xlab = "点击名称",main = "引导用户点击并支付重要点击分析")
#画线
(0.5 + c(1:nrow(.)),.$,类型=“b”,col =“红色”)
文本(0.5 + c(1:nrow(.)),.$,=((.$*100,2),“%”,sep =“”))
#轴标签
轴(1,at = 0.5 + c(1:nrow(.)),= .$.kick,tick =)
《注册付款时差分布及消费金额分布》
#####《注册付款时差分布及消费金额分布》#####
######################导入模型包################
()
()
()
()
()
(深渊)
()
###################读取数据(点击9.1到12.13)################
根
文件
# 文件中某些行的产品名称中包含“#”符号。在 R 中,“#”是默认的注释符号,这会导致文件被读取为
# 信息是注释,不算是数据,所以会出现“line did not have 17”的错误,也就是少了一行。
#元素问题,因此使用“.char”参数确认没有注释
踏
######################计算并过滤掉点击过##########的用户
()
踏
(t.读取$用户名)
######################付款与报名时间差分布###############
液晶显示
##############################################################
# 一定要注意时间格式,例如“Y”是“年份”,如 1919,#
# “y” 表示“年份 (00–99),例如 19”#
##############################################################
#
()
吨。
#删除列中的重复行,''返回一个逻辑值来确定某个数字是否会重复它之前的数字,
#这里我们创建一个索引
#请注意,可以使用索引删除重复的值
吨。
t.[1:5,]#点击用户去重
# 接下来画图
(吨$)
#(((t.$
均值差
差异标准差
差异变量
#异常值范围
。
。
c(.,.)
。
对于(i 在 1:(t.$)) {
如果 (t.$[i]>=.)
{.[我]=.}
别的
{.[i]=t.$[i]}
(.)
吨。
#将时间差分布导出到表中
.csv(t.,文件="E:\\R\\\\\\\.csv")
#par(=c(1,1))
hist(., = seq(0,364,7),freq =TRUE, . = TRUE, main = "注册付款时间差异分布",
xlab = "注册和付款之间的时间间隔",ylab = "频率",
xlim = c(0,400),ylim = c(0,60))
######################付费产品价格分布#############
head(t.)#有点击用户去除重复数据
# 接下来画图
(t.$付款金额)
支付。
hist(pay., = c(1,3000,100),freq =TRUE, . = TRUE, main = "注册付款时间差异分布",
xlab = "付款金额", ylab = "频率",
xlim = c(0,3000),ylim = c(0,60))
.csv(支付.,文件 = "E:\\R\\\\\\\.csv")