开始之前
作者以前开发设计采集器参考了 Google 的那套设计思路。这套设计方式基本都能满足分析需求,如果要区分用户和用户行为,采集的数据模型需要开发跟数据同学约定好。
本篇讲解的采集器,需求来源于用户行为分析平台,数据模型是固定的,设计思路会有些不同。
说明
- 文中代码只展示关键点,具体请参考源码。
- 本篇并非是从头到尾教大家如何开发一个完整的采集器,那不是一篇文章能够讲清楚的。主要是讲解了设计思路,几个重点实现。相信大家看完本篇分享,再结合源码,最终能够理解并自己实现一套采集器,会比作者做的更加出色。
数据模型和设计实现
数据采集后,数据分析(机器学习)专家一般会对数据进行筛选、降维、建模。这个过程中数据筛选是花费最多的环节,所以在采集数据的环节,我们有必要定义好一定的数据规则(模型),在数据源头上,让采集器做更多的工作,减少数据筛选的工作量。这里扩展一下,当前工业上比较流行的机器学习库 TensorFlow 出了个 JS 版本,官方针对微信小程序开发了一套小程序插件 tfjs-wechat,大家可以尝试一下,说不定可以让采集器智能化。
对于采集分析用户行为的数据,我们先从采集器使用的数据模型开始讲起。
模型
当前数据分析平台的数据模型由两块组成:用户属性和用户事件。
用户属性
用户属性指的是:用户 id、年龄、姓名、性别、所在的地区、首次注册时间、vip 等。
用户事件
用户事件指的是:用户在小程序上做了什么操作,比如点击了购买按钮这个行为事件,访问了某个页面。
模型:
在这里插入图片描述内置事件
内置事件指的是采集器自动处理上报的事件,分为两类。
- 一类是采集器监听小程序的行为事件,有 访问页面(screen)、分享(share)、应用开启(onLaunch)、应用展示(onShow);
- 另一类是系统内置的事件,有 会话相关事件(session_start、session_close)、登陆登出注册事件(login、logout、signup)、应用首次激活事件(activate)、广告点击事件(ad_click)、A/B 实验事件(abtest)、数据异常错误事件(send_error)、设置用户属性事件(user_profile)、转发分享事件(share)。
自定义事件
自定义事件指的是用户自己设置的事件,通过调用采集器的 API 上报事件。比如:上报一个点击购买按钮的用户行为事件,sdk.track ("buy", {price: '¥10'})
, 其中事件名是 "buy",事件属性是 "price"。
用户内置属性
用户内置属性指的是平台内置的用户属性字段,通过调用采集器封装好的 API,传入属性值上报。比如:realName(姓名)、age(年龄)、city(城市)、country(国家)、$gender(性别)等。
用户自定义属性
用户自定义属性指的是用户自定义的用户属性字段, 通过调用采集器的 API,传入属性字段以及值。
设计
先上模块关系图:
在这里插入图片描述
网友评论