这是我参与「第四届青训营」笔记创作活动的第16天,学习内容为《用户行为监控》
PV:用户浏览量
UV:独立访客数
用户停留时长:用户在页面的停留时长
获取方法:
通过监听事件,获取用户跳转页面的行为,然后将跳转页面,用户停留时间等参数发给后端,这个时候已经获取到页面停留时间,同时可以获取pv,因为我们这里简化一下,浏览量只包括浏览页面的话,那每跳转一个页面就是一个浏览量,pv就+1,然后uv就只要对当天的统计的pv采集到的userid进行去重就可以拿到,或者直接到数据库里进行获取就好。
监听页面跳转方法:主要分为两种情况,单页面与多页面应用
单页面SPA:分为Hash模式,History模式
Hash:基于浏览器的hashchange事件,地址变化时,通过window.location.hash 获取地址上的hash值;并通过构造Router类,配置routes对象设置hash值与对应的组件内容。
History:基于HTML5新增的pushState()和replaceState()两个api,以及浏览器的popstate事件,地址变化时,通过window.location.pathname找到对应的组件。并通过构造Router类,配置routes对象设置pathname值与对应的组件内容
多页面MPA:
主要基于**onpageshow(页面显示的时候)和onpagehide(页面隐藏的时候)这两个API获取用户停留的时长。只要在onpageshow初始时间值,在onpagehide**的时间求出差值,然后上传到后台就行。但是目前没有考虑用户直接关闭浏览器的情况。
登录获取用户信息:
在安装SDK时,会先判断**localStorage里是否有用户ID,如果没有,会将请求页面发送给后端,然后后端获取用户的操作系统,设备信息以及IP信息后创建一个新用户并将新用户的ID返回给前端,前端获取到用户ID后将其存放于localStorage中。如果一开始就有用户ID,就直接从localStorage** ****中获取 。