埋点SDK

gemercheung bc18da9cfe update %!s(int64=3) %!d(string=hai) anos
.changeset cb7976cb66 增加sdk type and core init %!s(int64=3) %!d(string=hai) anos
.github d36f70523a basic init %!s(int64=3) %!d(string=hai) anos
packages bc18da9cfe update %!s(int64=3) %!d(string=hai) anos
.eslintignore d36f70523a basic init %!s(int64=3) %!d(string=hai) anos
.eslintrc.js 3c92e9e40d update %!s(int64=3) %!d(string=hai) anos
.gitignore d36f70523a basic init %!s(int64=3) %!d(string=hai) anos
.prettierrc 3c92e9e40d update %!s(int64=3) %!d(string=hai) anos
LICENSE d36f70523a basic init %!s(int64=3) %!d(string=hai) anos
README.md 3c92e9e40d update %!s(int64=3) %!d(string=hai) anos
package.json d334a9a4fa test %!s(int64=3) %!d(string=hai) anos
pnpm-lock.yaml bc18da9cfe update %!s(int64=3) %!d(string=hai) anos
pnpm-workspace.yaml d36f70523a basic init %!s(int64=3) %!d(string=hai) anos
renovate.json d36f70523a basic init %!s(int64=3) %!d(string=hai) anos
tsconfig.build.json bc18da9cfe update %!s(int64=3) %!d(string=hai) anos
tsconfig.json d36f70523a basic init %!s(int64=3) %!d(string=hai) anos

README.md

埋点 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 引包

import * as medici from "@medici/web";
medici.init({
  url: "xxxxxx/tracking/log/save",
  config: {
    user: "xxxxxx",
    version: "xxxxxxxx", //client version
  },
});

2.小程序 es

import * as medici from "@medici/miniApp";
medici.init({
  url: "xxxxxx/tracking/log/save",
  config: {
    user: "xxxxxx",
    version: "xxxxxxxx", //client version
  },
});

3.其他 amd 或源引入

<script src="xxx/xxxx/medici-amd.js"></script>;
medici.init({
  url: "xxxxxx/tracking/log/save",
  config: {
    user: "xxxxxx",
    version: "xxxxxxxx", //client version
  },
});

隐藏带上 SDK version

页面(采集)

实现两种方法()

  1. 全局注册页面
medici.setPages([
  {
    scene: "/scene",
    setting: "/setting",
  },
]);

简单的 key:value, 影射页面采集

  1. 接入各 mmvm 的 router(vue-router,react-router) 或原生 history 监控。 以 routerName:url, 影射页面采集,

点位(采集)

主业务事件:eventType

一次消费埋点

medici.track("BuyProduct", {
  eventType:"click",
  ProductName: "MacBook Pro",
  ProductPrice: 123.45,
  IsAddedToFav: false,
  ... // 其他自定业务字段
});

二次消费埋点(闭环)

开始,主要对接,init startTime,大部分参数等, maxWaitTime 是默认 30s,如果超过这个时间没有冲正 endTrack 的提示 warning.

medici.startTrack("BuyProduct", {
  eventType:"click",
  maxWaitTime: 30000, //可自定义,主要是下载等行为耗时。
  ProductName: "MacBook Pro",
  ProductPrice: 123.45,
  IsAddedToFav: false,
  ... // 其他自定业务字段
});

结束 ,init endTime, 后补参数

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.