实现用户行为监测之webfunny
webfunny 实现用户行为监测
用户行为监测
用户行为,指的是用户与产品UI的交互行为,主要表现在Android App、iOS App与Web页面上。这些交互行为,有的会与后端服务通信,有的仅仅引起前端UI的变化,但是不管是哪种行为,其背后总是伴随着一组属性数据。对于与后端发生交互的行为,我们可以从后端服务日志、业务数据库中拿到相关数据;而对于那些仅仅发生在前端的行为,则需要依靠前端主动上报给后端才能知晓。用户行为数据采集系统,便是负责从前端采集所需的完整的用户行为信息,用于数据分析和其他业务。
- 通常做法: 根据产品经理提出的数据需求,设计一个结构化的数据表来存储数据,然后开个REST API给前端,用来上报数据;前端负责在相应的位置埋点,按照协商好的数据格式上报给后端。这样的做法暴露了很多问题,给前后端都带来了混乱,主要表现在:前端四处埋点,上报时调用的API不统一,上报的数据格式不统一;后端数据分散在多个数据表中,与业务逻辑耦合严重。
- 优化解决方法
- 分析采集数据结构:用户、行为、页面、访问终端、时间
- 定义数据收集接口规则:
web: api/v1/web/browser 上传浏览行为数据api/v1/web/click 上传浏览行为数据 andrioid:api/v1/andrioid/browser 上传浏览行为数据api/v1/andrioid/click 上传浏览行为数据iso:api/v1/iso/browser 上传浏览行为数据 api/v1/iso/click 上传浏览行为数据
- 数据采集:
一般做法:只在需要的地方上报数据。 与业务逻辑耦合很大。
无埋点做法:无需嵌入调用,通过底层hook所有点击事件,全部采集用户的行为操作。但会有许多无用数据。 - 数据存储
nosql数据库。争对不规则的数据,存储更加合理,方便。
无埋点方法解决方案
- webfunny 亲测有用
源码地址:webfunny 源码. - Google Analytics
编者没有尝试过,下附使用教程链接:
google Analytics.
此方法使用谷歌提供的服务,公司使用需要money。
考虑到后期定制化和代码开源的原因,编者使用第一种方式。毕竟代码掌握在自己手中比较心安。使用 webfunny 不管数据还是代码我们都掌握在自己手中。
下面开始教程的实践,希望你可以少踩坑。
webfunny 使用
请严格安装以下步骤执行,如果哪一步出错,请解决再继续下一步,如果不能解决,就请删除再试。如果几次都不行,请转他处文章。
- 获取代码
有git的,新建一个文件夹,然后使用下面的命令即可
github
git clone https://github.com/a597873885/webfunny_monitor.git
码云更快、更稳定(亲测有效)
git clone https://gitee.com/webfunnyMonitor/webfunny_monitor.git
没有git的,在github上下载源码github地址
- 解压项目并安装依赖包
以管理员打开cmd,并进入项目根目录下,依次执行以下命令
看命令猜作用
init应该是初始化项目,创建项目的各种文件夹和文件
npm run init
install 安装呗 (node.js 并不熟,嘿嘿)
npm install
按上诉操作完,项目中应该就多了一些文件。继续下一步。
- 解压项目并配置数据库(Mysql 安装菜鸟教程)
建数据名:webfunny_db,
编码方式:
找到这个文件:webfunny_monitor/bin/mysqlConfig.js
修改数据库设置:
module.exports = {write: {ip: '127.0.0.1',port: '3306',dataBaseName: 'webfunny_db',userName: 'root',password: 'root'},// 高性能版支持此属性read: [// { host: "", username: "", password: "" }]}
- 接下来就是项目的运行
以管理员打开cmd,并进入项目根目录下,依次执行以下命令
运行代码一定通过cmd来运行下列代码
第一次运行
npm run prd
重启
npm run restart
如果一切正常(无明显报错),请在浏览器这个地址(或者点击下面的链接):
登录页面
http://localhost:8010/webfunny/register.html?type=1
- 初始化账号
在登陆页面,初始化一个超级管理员并登录,接下来准备工作已经做完。下一步开始检测你的网站了。 - 监测网站
新建一个项目,选择网站类型,分好组,取好名。
webfunny会自动生成代码,请等待。
代码生成好后,按照说明将代码掺入到你的项目中。
这部分,编者是这样做的,探针代码加入到head标签里面,如果是vue项目,找到根目录下的index.html,在head标签里面插入探针代码即可。
如果是非vue,请将探针代码插入所有head标签。
设置user的id,这一块代码:
window.localStorage.wmUserInfo = JSON.stringify({ userId: 'userId', userTag: 'tag', projectVersion: '1.0.1' })
其中userid就是标识用户的唯一id,userTag 理解为公司或者单位,projectVersion是网站的版本。
编者是插入到获取用户信息并设定的代码后面。如图。
实际上这块代码是用于精确定位用户操作的,暂时不插入也可以监测网站了。
代码插入完后,重启你需要监测的网站。
到此,你的网站已经被监控起来了,用户的所有轨迹都会在webfunny 中被检测出来。
示例图:
参考文献:
1.https://segmentfault.com/a/1190000014922668
2.https://blog.csdn.net/zhenzigis/article/details/104695050
3.http://www.webfunny.cn/des.html
实现用户行为监测之webfunny相关推荐
- Linxu用户登录监测
配置linux自动发送邮件 背景:学Linux已经有一段时间,期间因为各种问题断断续续吧,因为服务器不能任意登录,所以就配置了 以下mail,当有人登录的时候我会收到mail通知,具体操作如下 第一. ...
- 模拟监控和真实用户体验监测,选哪个?
终端用户模拟监控,也就是国内俗称的「云拨测」,其低廉的价格以及便捷的部署方法加快了模拟监测的普及速度,但同时也导致了一些误用:很多公司以及用户将模拟监控当做用户的真实访问情况,监控出来的数据很棒,但是 ...
- 博睿数据智能监测终端全面升级,计算能力强大、用户体验真实性高
长久以来,传统PC互联网的应用通过嵌入SDK的拨测方式进行应用性能和用户体验监测,具有一定的侵入性.而在万物互联时代,随着云计算.边缘计算.物联网等技术的崛起,企业对无需嵌码的"黑盒&quo ...
- 家用电器用户行为分析与事件识别_用户行为分析系统
随着互利网时代多元化商业模式和细分市场的快速发展,众多行业面临着高昂的获客成本和高流失率的双重挑战,如何精准定位获客渠道?如何精细化运管,挖掘更大的用户价值?如何洞察客户流失的真实原因?如何减少用户流 ...
- delphi 怎么监测image有没有变动_社会舆情监测引导应对解决方案
社会舆情是各类社会新闻事件.舆论热点的集合.对于企业而言,为了充分了解客户及网民对自身品牌.产品.服务和客户关系的评价与相关建议,避免危机损失,就需要关注这块的的社会舆情信息,如消费者投诉.产品质量安 ...
- OneAPM NI 基于旁路镜像数据的真实用户体验监控
在这个应用无处不在的时代,一次网络购物,一次网络银行交易,一次网络保险的购买,一次春运车票的购买,一次重要工作邮件的收发中出现的延时,卡顿对企业都可能意味着用户忠诚度下降,真金白银的损失. 因而感知真 ...
- pythoncad图纸文件管理系统为用户_SafeShare通用CAD图纸文件管理软件6用户免费使用版...
SafeShare通过对windows的共享和安全架构进行扩展,实现对各种二维.三维CAD图纸的集中管控.权限.版本.协作.安全使用等管理功能. 企业的文件服务器必须加强管理,保证数据安全.windo ...
- 【数据说第九期】如何分析用户行为数据,来驱动业务增长?
[写在前面] 上一期来梳理交流了怎么才算真正的理解"数据".而人不同,方法.思路.数据都不同,做到了理解"数据"那么又如何做到以数据驱动业务增长呢?([数据说 ...
- 阿里云拨测:主动探测Web应用质量,助力提升用户体验
简介:阿里云拨测是一种针对互联网应用(Web页面.网络链路等)进行应用性能和用户体验监测的服务,无需嵌码即可为云上用户提供开箱即用的企业级主动拨测式应用监测解决方案. 随着中国数字化经济的蓬勃发展,越 ...
- 基于分布式光纤应变感知的铁路重点线路(区段)隧道监测设计
一.隧道监测系统设计 1.隧道监测要求 隧道安全与健康将直接关系着人们的生命和财产安全.近年来,由于隧道地质条件的恶化造成的隧道渗漏和结构裂缝已经严重威胁着隧道安全与健康.与此同时,随着铁路交通隧道的 ...
最新文章
- zend studio输出中文乱码的问题
- java fastjson_java操作json数据之fastjson
- EL:集成学习(Ensemble Learning)的概念讲解、问题应用、算法分类、关键步骤、代码实现等相关配图详细攻略
- r语言和python的区别_机器学习怎样开始比较好?Python还是R语言?
- c语言中调整颜色的函数_C语言中的输入输出函数
- 小程序开发(6)-之自定义导航栏
- [GO]无缓冲通道(unbuffered channel)
- 一摞烙饼最上面一个的另一面为焦的概率
- LeetCode(1089)——复写零(JavaScript)
- Android开发相关操作
- 如何安装与连接MySQL?
- 任务方案思考:文本分类篇
- 【DIY】通达信DIY添加扫雷宝、地图和复盘(1)
- 扩展kalman滤波matlab程序,扩展卡尔曼滤波算法的matlab程序
- 2020夏清北学堂提高组腾飞营听课随笔
- 【转】脸识别技术发展及实用方案设计
- keepalived+nginx,haproxy
- 小程序中新版本的获取用户头像与昵称:bind:chooseavatar
- tar.zst 文件格式解压
- ssl证书购买后如何认证签发
热门文章
- scannable dest type struct with >1 columns (3) in result
- Linux+v4l2自动设置相机曝光时间
- java中block标签_[Java教程]Clouda开发随笔之block标签
- 有一个XxY的网格,一个机器人只能走格点且只能向右或向下走,要从左上角走到右下角。请设计一个算法,计算机器人有多少种走法。 给定两个正整数int x,int y,请返回机器人的走法数目。保证x+y小
- [LINUX服務器搭建套餐]2.安裝mysql
- Node.js局域网文件共享
- [POI2012] 约会 Rendezvous
- linux服务器的外网IP查阅方式
- Photoshop CS2 9.0注册机和注册方法
- 腾讯地图手把手教你实现微信小程序路线规划