小程序SAAS用户行为分析平台架构设计与实践

200 阅读4分钟

一、背景与业务价值

SAAS服务商的应用大多数都是一对多的模式,这种场景下微信小程序提供的的We分析工具很难满足业务的诉求。期望搭建用户行为分析平台不仅可以满足客户需求,同时内部基于用户行为数据分析SAAS各个模块的活跃度,对活跃度低的模块重新调研调整。

定义:

用户行为分析是系统性研究用户在数字产品中的操作(如点击、浏览、购买、停留时长等),通过数据挖掘、统计分析和机器学习等技术,提炼出用户行为背后的规律与动机,从而指导业务决策。

业务价值:

用户行为数据分析驱动产品价值增长。

20250427.png

二、方案设计

行为分析的实现采用前端上报数据,可视化平台分析的方式。支持各产品线内部应用打通,数据统一归纳分析。

  • 前端SDK@lib/mini-track
  • 基础日志服务SLS
  • 可视化平台(星图)
[数据采集SDK] → [数据清洗层] → [分析计算引擎] → [可视化平台]
     ↑              ↑               ↑
   数据埋点      数据标准化      模块化分析模型

三、数据体系

数据采集

接入前端SDK,用户行为自动上报。上报的字段数据设计如下:

层级字段示例说明
用户标识distinct_id用户匿名标识
基础属性app_info、device_info、page_info、network_info设备与环境信息
行为日志app_type、page_type应用及页面行为事件
业务扩展custom_info、custom_type1.支持新增参数 (更新唯一标识如: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产品依旧是辅助工具。产品要结合用户行为分析去持续不断的优化,努力将产品从能用向好友转换。