# 埋点 SDK (代号:medici) > medici,美地奇,指 Lorenzo Medici,洛伦佐·美第奇,美地奇家族 文艺复兴时伟大收藏家,亦是现代最大收集/收藏的家族之一。 # browser (浏览器行为) 内置,取 XHR header, userAgent,os, deviceInfo, navigator,location, navigator.connection 等封装。 # Event(全局事件行为类型) 1. click 2. delete 3. upload ## PV/UV 内置功能 ## SDK 初始化 (monorepo) > 1.普通 es 引包 ```js import * as medici from '@medici/web'; medici.init({ platform: 'web', appId: '7b5958d5-1ae6-4ad5-8a87-5fc8a4b92999', endPoint: 'http://192.168.0.186:3000/api/collect', //服务器 trackEndPoint: 'http://192.168.0.186:3000/api/track', stopTrack: false, //可选 是否开始追踪 config: { user: 'testUser', //配置要track当前用户 version: '1', //配置要track当前版本 }, }); ``` > 2.小程序 es ```js import * as medici from '@medici/miniApp'; medici.init({ url: 'xxxxxx/tracking/log/save', config: { user: 'xxxxxx', version: 'xxxxxxxx', //client version }, }); ``` > 3.其他 amd 或源引入 ```js ; medici.init({ url: 'xxxxxx/tracking/log/save', config: { user: 'xxxxxx', version: 'xxxxxxxx', //client version }, }); ``` > 隐藏带上 SDK version ## 全局方法 1. setConfig 设置 config 参数,可后补 ```js medici.setConfig({ ... }) ``` 2. stop 停止追踪 (全局) ```js medici.stop(); ``` 3. resume 恢复追踪 (全局) ```js medici.resume(); ``` > 简单的 key:value, 影射页面采集 2. 接入各 mmvm 的 router(vue-router,react-router) 或原生 history 监控。 以 routerName:url, 影射页面采集, ## 点位(采集) > 主业务事件:eventType ### 一次消费埋点 ```js medici.track("BuyProduct", { eventType:"click", ProductName: "MacBook Pro", ProductPrice: 123.45, IsAddedToFav: false, ... // 其他自定业务字段 }); ``` ### 二次消费埋点(闭环) > 开始,主要对接,init startTime,大部分参数等, maxWaitTime 是默认 30s,如果超过这个时间没有冲正 endTrack 的提示 warning. ```js medici.startTrack("BuyProduct", { eventType:"click", maxWaitTime: 30000, //可自定义,主要是下载等行为耗时。 ProductName: "MacBook Pro", ProductPrice: 123.45, IsAddedToFav: false, ... // 其他自定业务字段 }); ``` > 结束 ,init endTime, 后补参数 ```js medici.endTrack("BuyProduct", { ... // 后补参数 }); ``` --- ## API (初定字段) | 名称 | 类型 | 是否必须 | 默认值 | 备注 | | :----------: | :----: | :------: | :----: | :----------------------------------------: | | traceId | string | 必须 | | 业务串联码 | | requestType | string | 必须 | | 业务:BUSINESS(默认);心跳:HEARTBEAT | | channel | string | 必须 | | 渠道,例如四维看看,指房宝 | | userId | string | 非必须 | | | | time | string | 非必须 | | 请求时间戳 | | requestUrl | string | 非必须 | | | | requestData | string | 非必须 | | 请求数据 ,xhr request data | | TrackingType | string | 非必须 | | 埋点类型,前端:FRONT(默认),后端:BACKEND | | srcPageUrl | string | 必须 | | 发起请求页面 (location) | | actionType | string | 必须 | | | | actionName | string | 必须 | | | | userIP | string | 非必须 | | | | userIpAdress | string | 非必须 | | | | userAgent | string | 必须 | | UA | | networkType | string | 必须 | | | | requestId | string | 非必须 | | | | duration | string | 非必须 | | | | result | string | 非必须 | | | | endTime | string | 非必须 | | 请求结束时间 | ## 其他问题. 1. 脱敏处理,()crytojs,看加密级别。 2.