在产品分析模块,你可根据埋点上报的用户行为事件、属性等数据分析用户在应用内的行为,了解应用的运营现状。如分析发布了VIP限时折扣活动后VIP购买人数变化,分析浏览、加购、购买的转化漏斗,分析用户打开app后的行为路径等。
用户在产品上的行为我们定义为事件,它是用户行为的一个专业描述,用户在产品上的所有获得的程序反馈都可以抽象为事件进行采集,用于追踪或记录的用户行为或业务过程。
事件分析是指通过事件的属性、维度对各个事件进行统计分析,展示对应指标的变化趋势。支持灵活自定义分析指标,并将分析结果进行可视化展示,对分析后的用户结果可不断下钻查看用户详情或保存至用户群。
在事件分析中,可以对一个指标进行分析,也可以再添加一个指标,同时对多个指标进行分析,最多可以同时添加六组指标。
指标由事件、事件属性和计算汇总维度组成。在一般指标的设置中,可以选择事件类型、事件类型的筛选维度、事件属性、事件属性的汇总维度。
点击指标(1)选择指定事件,再次点击指标(1)可增加事件个数。点击编辑名称(2)可以修改指标名称,点击筛选(3)可以选择对该事件的属性进行进一步筛选,点击删除(4)将删除该指标,点击日期(5)可以选定事件分析的时间窗口,点击筛选用户群(6)可以选择计算成功的人群。
a、指标计算维度相关逻辑:
对于所有事件,都可以选择以下计算逻辑:
对于所有类型的属性,都可以选择以下值作为分析指标:
对于包含数值型属性的事件,可以选择以下值作为分析指标:
b、自定义指标设置:
特定分析场景,需要自定义指标公式时,可以使用自定义指标分析,点击自定义指标(1)进行自定义指标的添加。
点击保存(2)进行自定义指标的保存,保存后该操作框呈置灰状态,点击删除(3)即可删除。
在自定义指标中,可以自定义指标名称。
点击自定义指标后的保存按钮,可以保存自定义指标公式并自动开始计算。保存后,自定义指标为不可插入光标编辑状态,如需重新编辑,需要点击编辑按钮进入编辑状态。
自定义指标中最多可支持输入四组指标参与计算,保存计算公式前,需要确认公式合法性,否则将不能保存指标。
展示维度指事件分析的数据图表以什么维度进行数据展示,如指标选择启动APP的人数,选择按用户属性(手机品牌)展示,则图表会拆分每个手机品牌展示启动APP的人数趋势图。
可以选择总体、用户属性、事件属性三种类型,可同时添加五组展示维度。
指定用户群进行事件分析,此处为全局过滤条件,用户群单选,如指标选择启动APP的人数,用户群选中“北京地区用户”,则分析图表中仅展示北京地区用户启动APP的人数趋势图。
分析结果包含趋势图和详细数据。
图表中可以同时展示多组指标,图下方会标示指标编号和指标名称,可以选择当前展示的图类型,图表类型包含折线图、柱状图
可查看详细数据中某个群体的用户列表,或直接将其另存为用户群,供后期使用(漏斗分析、路径分析同理)。
对于列表中保存的分析图表,可根据使用场景,将其添加至看板中统一管理,数据每日会自动更新。如认为首页相关的数据比较重要,创建一个首页分析看板,将首页相关的分析图表数据添加至看板中(漏斗分析同理)。
漏斗分析是一套流程式的数据分析模型,通过将用户行为起始的各个行为节点作为分析模型节点,来衡量每个节点的转化效果,是转化分析的重要工具。漏斗模型主要用于分析一个多步骤过程中每一步的转化与流失情况。
支持自定义设置转化事件和筛选条件,并对分析结果进行可视化展示;支持查看每个步骤的流失、转化人数,并可对人群进行明细查看或保存为用户群。
1)选择漏斗步骤\
2)查看漏斗分析结果\
对于所有事件,都可以选择以下计算维度:
逻辑同事件分析该功能,此处不再赘述。
用户路径分析功能支持分析用户在app内的行为路径,产品运营人员通过用户路径分析可以更直观地查看用户在产品内各个模块功能之间流转的规律及特点,发现用户在哪个环节或者页面流失,为运营效果分析、APP迭代分析提供数据依据,提升用户活跃与转化。
1、开通个推用户运营,使用用户路径分析功能
登录个推开发者中心,进入用户运营-产品分析-路径分析页面,新建路径分析。
2、新建路径分析,配置路径分析的内容
1)选择路径的起始或结束事件
2)选择参与分析的事件
3)选择需要分析的时间段
4)其他设置说明:设置中的内容为非必填项
3、查看分析结果
4、可将路径中的指定用户保存为用户群进行后续运营
为了降低运营人员的使用门槛,提升产品易用性,目前用户运营平台主要针对日常运营中常用或重要的指标及流程进行了可视化的功能呈现,针对现有用户运营平台其他功能模块不能分析出来的复杂数据需求,我们提供了SQL查询的自定义分析模块,满足更高阶的分析场景。
点击自定义分析的“新建分析”功能,进入SQL查询页面
在新建分析页面通过SQL查询想要的数据,可在页面左侧查看可用的数据表和字段信息,书写好SQL语句后,点击执行,查询目标数据,目前仅支持select类型的SQL语句,单次可查询10000条数据,列表视图中仅展示前100条数据,查询出的所有数据可导出。
高阶的数分人员或数据研发人员编辑SQL内容后,可将SQL另存为SQL模板,供以后复用,或提供给运营人员使用。
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';
以上文档对您是否有帮助?