产品分析

产品分析

在产品分析模块,你可根据埋点上报的用户行为事件、属性等数据分析用户在应用内的行为,了解应用的运营现状。如分析发布了VIP限时折扣活动后VIP购买人数变化,分析浏览、加购、购买的转化漏斗,分析用户打开app后的行为路径等。

image2023-5-12_17-30-17 (1)

事件分析

用户在产品上的行为我们定义为事件,它是用户行为的一个专业描述,用户在产品上的所有获得的程序反馈都可以抽象为事件进行采集,用于追踪或记录的用户行为或业务过程。

事件分析是指通过事件的属性、维度对各个事件进行统计分析,展示对应指标的变化趋势。支持灵活自定义分析指标,并将分析结果进行可视化展示,对分析后的用户结果可不断下钻查看用户详情或保存至用户群。

image2023-5-12_17-15-58

【新建事件分析】

在事件分析中,可以对一个指标进行分析,也可以再添加一个指标,同时对多个指标进行分析,最多可以同时添加六组指标。

1)选择要分析的指标

指标由事件、事件属性和计算汇总维度组成。在一般指标的设置中,可以选择事件类型、事件类型的筛选维度、事件属性、事件属性的汇总维度。

image2023-5-12_17-23-5

点击指标(1)选择指定事件,再次点击指标(1)可增加事件个数。点击编辑名称(2)可以修改指标名称,点击筛选(3)可以选择对该事件的属性进行进一步筛选,点击删除(4)将删除该指标,点击日期(5)可以选定事件分析的时间窗口,点击筛选用户群(6)可以选择计算成功的人群。

a、指标计算维度相关逻辑:

对于所有事件,都可以选择以下计算逻辑:

  • 总次数:在选定时间范围内,该事件的触发次数
  • 用户数:在选定时间范围内,触发该事件的独立用户数
  • 人均次数:在选定时间范围内,独立用户触发该事件的平均次数
  • 自定义指标:只能在按天查询下使用,根据事件发生时间或选定时间范围进行汇总统计,在自定义指标的使用示例中会详细介绍

对于所有类型的属性,都可以选择以下值作为分析指标:

  • 去重数:在选定时间范围内,该属性出现的独立去重个数

对于包含数值型属性的事件,可以选择以下值作为分析指标:

  • 总和:在选定时间范围内,该属性的取值总和
  • 均值:在选定时间范围内,该属性取值的算数平均值
  • 人均值:在选定时间范围内,该属性取值总和除以该属性对应的用户人数去重值之和。
  • 最大值:在选定时间范围内,该属性取值的最大值
  • 最小值:在选定时间范围内,该属性取值的最小值
  • 中位数:在选定时间范围内,该属性取值的中位数
  • 去重数:在选定时间范围内,该属性出现的独立去重个数

b、自定义指标设置:

特定分析场景,需要自定义指标公式时,可以使用自定义指标分析,点击自定义指标(1)进行自定义指标的添加。

  • 自定义指标可以选择事件类型、事件属性、事件属性汇总维度;
  • 可以选择运算类型,支持的运算类型包含加、减、乘、除、常数、括号;
  • 最多可以输入四组指标

点击保存(2)进行自定义指标的保存,保存后该操作框呈置灰状态,点击删除(3)即可删除。

image2023-5-12_17-23-5

在自定义指标中,可以自定义指标名称。

点击自定义指标后的保存按钮,可以保存自定义指标公式并自动开始计算。保存后,自定义指标为不可插入光标编辑状态,如需重新编辑,需要点击编辑按钮进入编辑状态。

自定义指标中最多可支持输入四组指标参与计算,保存计算公式前,需要确认公式合法性,否则将不能保存指标。

2)展示维度设置

展示维度指事件分析的数据图表以什么维度进行数据展示,如指标选择启动APP的人数,选择按用户属性(手机品牌)展示,则图表会拆分每个手机品牌展示启动APP的人数趋势图。

可以选择总体、用户属性、事件属性三种类型,可同时添加五组展示维度。

3)筛选用户群

指定用户群进行事件分析,此处为全局过滤条件,用户群单选,如指标选择启动APP的人数,用户群选中“北京地区用户”,则分析图表中仅展示北京地区用户启动APP的人数趋势图。

4)查看分析结果

分析结果包含趋势图和详细数据。

图表中可以同时展示多组指标,图下方会标示指标编号和指标名称,可以选择当前展示的图类型,图表类型包含折线图、柱状图

img

可查看详细数据中某个群体的用户列表,或直接将其另存为用户群,供后期使用(漏斗分析、路径分析同理)。

image2023-5-12_17-24-27

【将事件分析图表添加至看板中】

image2023-5-12_17-25-51

对于列表中保存的分析图表,可根据使用场景,将其添加至看板中统一管理,数据每日会自动更新。如认为首页相关的数据比较重要,创建一个首页分析看板,将首页相关的分析图表数据添加至看板中(漏斗分析同理)。

漏斗分析

漏斗分析是一套流程式的数据分析模型,通过将用户行为起始的各个行为节点作为分析模型节点,来衡量每个节点的转化效果,是转化分析的重要工具。漏斗模型主要用于分析一个多步骤过程中每一步的转化与流失情况。

image2023-5-12_17-31-9

【新建漏斗分析】

支持自定义设置转化事件和筛选条件,并对分析结果进行可视化展示;支持查看每个步骤的流失、转化人数,并可对人群进行明细查看或保存为用户群。

image2023-5-12_17-34-40

1)选择漏斗步骤\

  • 点击“新建漏斗”进入漏斗创建界面。
  • 左边是漏斗步骤选择区域,可以选用埋点上报的事件,一个漏斗中至少包含 2 个步骤,最多包含10个步骤,每个步骤对应一个事件(可附带一个或多个筛选条件),并可以进行指定过滤条件。
  • 在筛选(2)中可以加一个或者多个筛选条件,每个筛选条件表示一个转化流程中的一个关键性的步骤,最多可添加10个。
  • 点击(3)可以删除已选用事件。在“全局过滤条件”中点4可以选择需要过滤掉的具体条件。

2)查看漏斗分析结果\

  • 日期(6):用户完成漏斗的时间限制,即只有在这个时间范围内,用户从第一个步骤,行进到最后一个步骤,才能被视为一次成功的转化。
  • 转化周期(7):用户完成漏斗第一步之后子啊后续N天之内完成漏斗的最后一步则判定该用户完成了转化,最长可选择30天。

对于所有事件,都可以选择以下计算维度:

  • 用户数:在选定时间范围内,触发该事件的独立用户数;
  • 流失用户数:在选定时间范围内,本次事件用户数-上一步骤事件用户数;
  • 上一步转化率:在选定时间范围内,本次事件用户数/上一步骤事件用户数(第一步事件的转化率为100%)
  • 总体转化率:在选定时间范围内,本次事件用户数/第一步骤事件用户数

img

【将漏斗分析结果添加至看板中】

逻辑同事件分析该功能,此处不再赘述。

img

路径分析

功能介绍

用户路径分析功能支持分析用户在app内的行为路径,产品运营人员通过用户路径分析可以更直观地查看用户在产品内各个模块功能之间流转的规律及特点,发现用户在哪个环节或者页面流失,为运营效果分析、APP迭代分析提供数据依据,提升用户活跃与转化。

image2023-5-12_17-37-6

操作说明

1、开通个推用户运营,使用用户路径分析功能

登录个推开发者中心,进入用户运营-产品分析-路径分析页面,新建路径分析

2、新建路径分析,配置路径分析的内容

1)选择路径的起始或结束事件

  • 如分析用户浏览商品后的路径,则选择“起始事件”为“浏览商品”;分析用户付费前的路径,则选择“结束事件”为 “付费”
  • 若需要指定事件属性进行分析,如指定浏览了某个商品id后的行为路径,可以点击“筛选事件属性”进行对应属性的选择

2

3

2)选择参与分析的事件

  • 选择用户路径中需要分析的事件行为,如浏览商品后,主要关心分享、加入购物车、取消订单等关键用户行为。
  • 针对参与分析的事件行为,可以进行事件属性筛选。例如加入购物车行为,可选择商品ID、商品名称等不同事件属性进行更深入的用户路径分析。

image2023-5-12_18-13-0

image2023-5-12_18-13-48

3)选择需要分析的时间段

  • 如分析近一周的行为路径,时间可选近一周

image2023-5-12_18-14-57

4)其他设置说明:设置中的内容为非必填项

  • 全局筛选用户:可以选择已有用户群或指定带有某些用户属性的用户进行分析,如仅分析北京地区用户的行为路径
  • 合并连续重复事件:可以将连续的事件合并,如电商类APP用户在首页点击过多次搜索,将其展开会导致路径变得很长且无分析意义,合并后多次搜索只会展示在一个节点中
  • 设置session间隔:可以设置两个路径之间的间隔,缩短路径长度,如视频类app,用户在看完一个视频(10分钟)后重新进入搜索页搜索新的内容查看,可以认为客户进入了一次新的行为路径,此时配置session 间隔为10分钟即可,无需在一次路径中展示 搜索-查看-搜索-查看-搜索-查看。

3、查看分析结果

  • 选择“起始事件”为“浏览商品”时的分析结果

image2023-5-12_18-16-23

  • 选择“结束事件”为“支付订单”时的分析结果

image2023-5-12_18-15-49

4、可将路径中的指定用户保存为用户群进行后续运营

  • 比如在申请退货环节中,需要重点分析哪类用户喜欢申请退货,则可以将“申请退货”节点中的用户保存为用户群,进行用户洞察分析然后根据洞察分析的结果进行策略制定以及用户触达,减少申请退货量。

image2023-5-12_18-16-45

自定义分析

为了降低运营人员的使用门槛,提升产品易用性,目前用户运营平台主要针对日常运营中常用或重要的指标及流程进行了可视化的功能呈现,针对现有用户运营平台其他功能模块不能分析出来的复杂数据需求,我们提供了SQL查询的自定义分析模块,满足更高阶的分析场景。

点击自定义分析的“新建分析”功能,进入SQL查询页面
image2023-5-12_18-18-30

通过SQl查询数据

在新建分析页面通过SQL查询想要的数据,可在页面左侧查看可用的数据表和字段信息,书写好SQL语句后,点击执行,查询目标数据,目前仅支持select类型的SQL语句,单次可查询10000条数据,列表视图中仅展示前100条数据,查询出的所有数据可导出。

img

保存SQL模板

高阶的数分人员或数据研发人员编辑SQL内容后,可将SQL另存为SQL模板,供以后复用,或提供给运营人员使用。

img

结果数据可视化

img
SQL查询数据正常展示后,可通过图表可视化功能将数据配置为易于分析的图表,点击“图表视图”,点击页面中的“立即编辑”,打开【可视化图表编辑】弹框,可在该弹框中通过托拉拽的方式配置图表。当前支持的图标样式有:折线图、饼图、柱状图三种。

注意:图表配置部分更改内容后,需点击“更新图表”刷新最新的图表效果。

image2023-5-12_18-20-43

image2023-5-12_18-21-3

image2023-5-12_18-21-24

点击“确定”后编辑的图

image2023-5-12_18-22-27表会在图表视图中展示

SQL查询相关细节

数据表

数据表有历史事件表和用户信息表,通过这两张数据表能实现数据查询功能,两表均有默认存在字段及用户扩列字段、扩列字段均无对应的字段类型,均为text类型,如要对其进行使用需要进行类型的转化。

1、历史事件表(event_history)

历史事件表包含了所有事件的信息,每一行代表埋点上报的事件记录,默认字段如下:

字段 数据类型 说明 备注
gtcid string 用户ID
event_id string 事件id
create_date date 事件发生日期
session_id string 会话id
timestamp string SDK生成事件时间
platform string 平台,android/ios
sys_$wifi string 是否为wifi状态 有事件上报后默认会有该字段
sys_$network_type string 网络类型 有事件上报后默认会有该字段
sys_$carrier string 网络运营商 有事件上报后默认会有该字段
sys_$app_version string 应用版本 SDK1.3.3.0后新增,有事件上报后默认会有该字段
sys_$channel_id string 渠道id SDK1.3.3.0后新增,有事件上报后默认会有该字段
sys_$lib_version string SDK版本 SDK1.3.3.0后新增,有事件上报后默认会有该字段
sys_$manufacturer string 设备制造商 SDK1.3.3.0后新增,有事件上报后默认会有该字段
sys_$model string 设备型号 SDK1.3.3.0后新增,有事件上报后默认会有该字段
sys_$os string 操作系统 SDK1.3.3.0后新增,有事件上报后默认会有该字段
sys_$os_version string 操作系统版本 SDK1.3.3.0后新增,有事件上报后默认会有该字段
sys_$package_name string 包名 SDK1.3.3.0后新增,有事件上报后默认会有该字段

2、用户信息表(user_info)

用户信息表包含了用户属性相关的信息,每一行为埋点上报的用户属性信息,默认字段如下:

字段 数据类型 说明 备注
gtcid string 用户唯一id
create_time string 用户生成时间
active_time string 活跃时间,客户端时间
sys_$ip_province string 所在省份 有事件上报后默认会有该字段
sys_$ip_city string 所在城市 有事件上报后默认会有该字段
sys_$ip_country string 所在国家 有事件上报后默认会有该字段
sys_$app_version string 版本名称 有事件上报后默认会有该字段
sys_$channel_id string 来源渠道 有事件上报后默认会有该字段
sys_$lib_version string SDK版本 有事件上报后默认会有该字段
sys_$manufacturer string 手机品牌 有事件上报后默认会有该字段
sys_$model string 手机型号 有事件上报后默认会有该字段
sys_$os string 操作系统 有事件上报后默认会有该字段
sys_$os_version string 操作系统版本 有事件上报后默认会有该字段
sys_$screen_height string 屏幕高度 有事件上报后默认会有该字段
sys_$screen_width string 屏幕宽度 有事件上报后默认会有该字段
sys_$ip string ip地址 有事件上报后默认会有该字段
sys_$activetime string 活跃时间,服务端时间 有事件上报后默认会有该字段
sys_$firstvisittime string 首次访问时间 有事件上报后默认会有该字段
sys_$package_name string 包名 SDK1.3.3.0后新增,有事件上报后默认会有该字段

数据类型

出于查询效率的考虑,自定义查询功能对不同的数据类型有不同处理,同时某些数据类型有一些使用上的限制。

类型转换

bigint: 数值类型,长整数,常用于存储日期时间戳

string: 字符串类型,对于用户自行上传的数据均为string类型,如需使用需要对其进行相对应的转化。

date: 日期类型

datetime: 时间类型

timestamp: 时间戳类型

常用函数说明

使用自定义分析常用的函数:

1)时间日期函数

## toDateTime:string转datetime格式
select toDateTime('2023-05-25 00:00:00');

## formatDateTime:datetime或者date类型转string
select formatDateTime(create_time, '%Y-%m-%d');

## hour:截取datetime/date类型字段的小时数
select hour(create_time);

## day:截取datetime/date类型字段的天数
select day(create_time);

## month:获取datetime/date类型字段的月份
select month(create_time);

## year:获取datetime/date类型字段的年份
select year(create_time); -- create_time是datetime或者date类型

## now:获取当前时间
select now();

## dateDiff
## 获取两个datetime/date类型数据相差的月份数
select dateDiff('month', create_time1,create_time2);
## 获取两个datetime/date类型数据相差的周数
select dateDiff('week', create_time1,create_time2);
## 获取两个datetime/date类型数据相差的天数
select dateDiff('day', create_time1,create_time2);

## dateAdd:date/datetime类型数据增加指定时间
select dateAdd((now()),INTERVAL 1 day);

2)字符串函数

## lower:string字符串转小写
select lower('ABc');

## upper:string字符串转大写
select upper('ABc');

## ltrim:string字符串去除左边空格
select ltrim('  Abc  ');

## rtrim:string字符串去除有边空格
select rtrim('  Abc  ');

## substring:string字符串分割
SELECT substring('hello world', 1, 5);

## replace:string字符串替换
select replace('  Abc  ', ' ', '');

## reverse:string字符串反转
select reverse('ABc');

3)数字函数

## avg:获取数值类型数据的平均值
select event_id,avg(cast(剩余额度 as float)) from event_history where 剩余额度 != '' group by event_id;

## count:获取数量
select count(1) from event_history where create_date between '2022-01-25' and '2022-02-11';

## max:获取数值类型数据的最大值
select max(cast(剩余额度 as float)) from event_history;

## min:获取数值类型数据的最小值
select min(cast(剩余额度 as float)) from event_history;

## sum:获取数值类型数据的总和
select sum(cast(剩余额度 as float)) from event_history;

常见问题

1)字段名加单引号查询不出数据

clickhouse '' 包裹的认为是字符串,并不能查询出对应的所需字段

-- 不可用

select 'create_time' from user_info;

-- 正确查询字段方式

select create_time from user_info;
或
select `create_time` from user_info;
或
select "create_time" from user_info;

2) 在SQL中转化字段数据类型可视化分析时会存在错误

由于指标/Y轴均为数字在运行时会做强制化转化,如果对于预制字段并不做对应的转化,可能将潜在的问题带到可视化,建议在自定义查询时就将字段转化完毕。

常见案例

1)查询指定时间点的用户行为数据

查询 VIP、非VIP用户在近一周晚上7-11点的启动APP的启动人数

select "是否会员",count(0) as open_count from (

select gtcid,

case when "是否为企业客户" = 'true' then '会员' else '非会员' end as "是否会员"

from

user_info

where

cast(sys_$active_time as datetime) >= now() - interval '1 week'

and extract(hour from cast(sys_$active_time as datetime)) >= 19

and extract(hour from cast(sys_$active_time as datetime)) <= 21

) as t group by "是否会员";

2)计算最后一次/第一次行为的行为属性

查询近90天内未启动APP用户的最后一次访问页面的页面名称

select

pay_count ,regist_count ,pay_count / regist_count as "注册7日内的付费率"

from

(

select

(

select

count(regist_gtcid)

from

(

select

 distinct gtcid as regist_gtcid,

 cast(sys_$firstvisittime as datetime) as start_date,

 cast(sys_$firstvisittime as datetime) + interval '7 day' as end_date

from

 user_info

where

 cast(sys_$firstvisittime as datetime) >= cast('2021-10-20 11:36:45' as datetime) - interval '30 day'

) t1

left join event_history as e on

e.gtcid = t1.regist_gtcid

and e.event_id = '付费'

where  e.create_date >t1.start_date

and e.create_date <= t1.end_date

) as pay_count,

(

select

count(0)

from

(

select

 distinct gtcid as regist_gtcid

from

 user_info

where

 cast(sys_$firstvisittime as datetime) >= cast('2021-10-20 11:36:45' as datetime) - interval '30 day'

) as a1) as regist_count

) as b;

3)根据业务需求进行活跃用户数去重:

查询播放歌曲的月活用户数

select count(distinct gtcid) from event_history where event_id = '播放音乐' and create_date between '2022-03-01' and '2022-03-31';

文档中心搜索

技术
咨询

微信扫一扫

随时联系技术支持

在线
咨询