一、背景与业务价值
SAAS服务商的应用大多数都是一对多的模式,这种场景下微信小程序提供的的We分析工具很难满足业务的诉求。期望搭建用户行为分析平台不仅可以满足客户需求,同时内部基于用户行为数据分析SAAS各个模块的活跃度,对活跃度低的模块重新调研调整。
定义:
用户行为分析是系统性研究用户在数字产品中的操作(如点击、浏览、购买、停留时长等),通过数据挖掘、统计分析和机器学习等技术,提炼出用户行为背后的规律与动机,从而指导业务决策。
业务价值:
用户行为数据分析驱动产品价值增长。
二、方案设计
行为分析的实现采用前端上报数据,可视化平台分析的方式。支持各产品线内部应用打通,数据统一归纳分析。
- 前端SDK
@lib/mini-track - 基础日志服务SLS
- 可视化平台(星图)
[数据采集SDK] → [数据清洗层] → [分析计算引擎] → [可视化平台]
↑ ↑ ↑
数据埋点 数据标准化 模块化分析模型
三、数据体系
数据采集
接入前端SDK,用户行为自动上报。上报的字段数据设计如下:
| 层级 | 字段示例 | 说明 |
|---|---|---|
| 用户标识 | distinct_id | 用户匿名标识 |
| 基础属性 | app_info、device_info、page_info、network_info | 设备与环境信息 |
| 行为日志 | app_type、page_type | 应用及页面行为事件 |
| 业务扩展 | custom_info、custom_type | 1.支持新增参数 (更新唯一标识如:guide_id) 2.支持扩展行为 (支持A/B测试) |
行为链路
用户行为链路解决的是用户行为完整性描述,不能给出一个模糊的设计方案。比如用户从A页面进入到B页面,那么就需要在B页面上报该页面的前置页面用作链路完整性,同时要计算出用户在B页面的大概停留时长用作参考。要明确一点:数据是描述完整性的唯一标准。
[应用启动] -> [匿名用户A]-> [页面A] ->[页面B] -> [应用关闭]
代码实现如下: 下面的代码实现的能力如下:
- 计算页面前置路由
- 计算页面浏览时长
- 计算应用浏览时长
let meta = {
page_show_time: '',
app_show_time: '',
page_map: []
}
// 应用启动
const appShow = () => {
meta.app_show_time = Date.now();
}
// 获取前置页面信息
const getRefPage = () => {
let refInfo = {}
if (meta.page_map.length > 1) {
return meta.page_map[0]
}
return refInfo
}
// 设置前置页面信息
const setRefPage = () => {
let refInfo = {}
let pages = getCurrentPage();
if (pages && pages.route) {
refInfo.route = pages.route
refInfo.title = pages.title
let len = meta.page_map.length;
if (len >= 2) {
meta.page_map.shift();
meta.page_map.push(refInfo);
} else {
meta.page_map.push(refInfo);
}
}
}
// 获取是否有前置页面信息
const setPageRefData = (props) => {
let refInfo = getRefPage()
props.referrer = refInfo.route || '';
props.referrer_title = refInfo.title || '';
}
// 进入页面
const pageShow = () => {
let props = {}
meta.page_show_time = Date.now();
// 每次监听到页面进入
setRefPage()
// 获取页面前置信息
setPageRefData(props)
//公共上报方法
track('pageshow', props)
}
// 离开页面
const pageLeave = () => {
let props = {}
if (meta.page_show_time >= 0) {
meta.page_show_time = Date.now();
let page_stay_time = (Date.now() - meta.page_show_time) / 1000;
if (page_stay_time < 0) {
page_stay_time = 0;
}
// 计算页面停留时长
props.event_duration = page_stay_time.toString();
}
//公共上报方法
track('pageleave', props)
}
// 离开应用
const appHide = () => {
let props = {};
if (meta.app_show_time) {
let app_stay_time = (Date.now() - meta.app_show_time) / 1000;
if (app_stay_time < 0) {
app_stay_time = 0;
}
// 计算应用停留时长
props.event_duration = app_stay_time.toString();
}
//公共上报方法
track('apphide', props)
}
四、 业务实践
星图平台当前已接入的SAAS产品有导购、会俱产品线,通过用户行为分析已解决的问题如下:
- 验证店长发布任务需求的合理性(A\B测试)
- 验证导购查看素材库交互的易操作性(文件夹样式、列表样式)
- 评估营销类H5活动的转化效率
- ......
五、运营思考
SAAS商家会使用将导购体系、会员体系导入到不同的运营工具中,这样每个商家的运营数据都是庞大的,但是商家的固有思路是使用已有的功能满足导购管理、会员体系运营,即通过工具去满足一部分工作即可。可是从产品的角度来讲无论是B端客户、C端客户我们的主要的目标是运营转化,如果产品最终不能打动终端用户,SAAS产品依旧是辅助工具。产品要结合用户行为分析去持续不断的优化,努力将产品从能用向好友转换。