背景
采集C用户的访问行为,如pv,uv,页面访问情况,商品页访问情况;
目前只采集 页面访问情况,如果是商品详情页面要带上商品的skuID spuID;便于后续分析;
TODO
- 插件模式 事件收集插件
example
在网页中引入CDNjs文件
自动方式
手动方式
引入NPM模块;
npm install @qianmi/ocean-h5 --save --registry=http://registry.npm.qianmi.com
注:
建议使用CDN js,采集脚本升级不影响业务线; 具体操作及使用参考 自动模式 手动模式;
自动模式 自动发送浏览器记录; 首次加载时,及hash发生变化时;
;OceanClient; //or 如果要详细添加商品信息可在回调函数中设置商品信息 ;OceanClient;
手动模式 设置auto参数为false,即可关闭自动模式,根据业务需要发送记录;
; ; //登录后才能知道QMID的情况client.setQmId'qm10000'; //发送普通浏览记录;client.sendView; //发送商品浏览记录;client.sendView;
常见问题
测试环境数据过滤;
如果在测试环境,可以中断信息的发送,避免影响线上数据统计;
- 方式1: 避免加载oceanClientJS,或初始化oceanClient;
- 方式2: 在beforeSend方法中不调用next方法,中断请求信息发送;
用户如何唯一识别?
任何一个用户首次访问网站会生成一个随机数[clientId];用此id标识用户;
UV的判断依据?
如果没有qmid则根据clientID来判断,如果有qmid则根据qmid来判断;
clientID与qmid要有关联, 一个用户未登录前只有clientID sessionId 登录后有了qmid,这三者是有关系的; 如果 不关联,有些访问信息会丢失
一个客户端访问多个站点的情况?
与访问一个站点没区别; 每次请求中带了shopId,后台还是可以区分;clientId及qmid sessionID定义未变
session过期时间控制 为什么不入到sessionStorage里呢?
目前的过期时间控制是通过缓存中添加过期时间,让外部来控制; 放到localStorage不可取, 因为没有过期时间,localStorage存储的内容会一直存在; 放到sessionStorage 看似来可以,但一个用户长时间不操作, 但session并没有退出仍然会算做有效sesion,会影响最终的页面停留时间;
监控hash变化 自动发送浏览记录?需要额外的数据时怎么处理, 商品spu sku;
在自动模式中, 在发送浏览前会调用beforeSend 方法, 可以在这里完善spu sku信息; 手动模式中,发送信息带上spuID 与skuId即可! 参考 自动模式 与手动模式示例;
商城 订货key信息
{ "id": 2, "name": "商城PV", "adder": "system", "addTime": "2018-05-15 09:17:47", "modifier": null, "lastModifyTime": null, "appKey": "YKZFBrFoNTt2TtRTLDE95T", "appSecret": "ymfTfp5D9ECeiuAkXsnCCf", "description": null, "level": 0, "type": 1, "notifyUrl": null, "featureTablesStr": "t_feature_view_pv"} { "id": 3, "name": "分销PV", "adder": "system", "addTime": "2018-05-15 09:18:05", "modifier": null, "lastModifyTime": null, "appKey": "uCG6fWgkqLbYFtZawMTSs5", "appSecret": "pjZwifnXkkibtSnVpdZrTe", "description": null, "level": 0, "type": 1, "notifyUrl": null, "featureTablesStr": "t_feature_view_pv"}