4.2.14 • Published 4 years ago

troila-mobile-tracer-luobo v4.2.14

Weekly downloads
3
License
ISC
Repository
-
Last release
4 years ago

行为统计埋点库

pipeline status coverage report

用来对用户的操作行为进行埋点统计,支持离线存储和实时上报。

此版本为萝卜开会专用

安装

CDN

暂时还不支持 UMD 模式。

当前只有两种打包方式:commonjs 和 es6 module,后续版本会增加对 UMD 模式的支持。

npm

使用 npm

$ npm install troila-mobile-tracer-luobo

初始化

默认的导出 tracer 是一个对象,需要调用 init 进行初始化设置。在项目入口文件中进行初始化一次

import tracer from "troila-mobile-tracer-luobo";

tracer.init({
  debug: false, // 是否开启调试模式
  appKey: "test", // app标识
  appVersion: "1.2.3", // 应用版本号
  env: "dev", // 环境
  delay: 1000, // 延迟上报时间,0 为立即上报
  beforeSend: function(report) {
    console.log(report);
  },
  afterSend: function(result) {
    console.log(result);
  },
  userid: "", // 当前登录的用户id
  maxEvents: 100, // 离线最大记录条数,默认 100 条
  offlineLog: true // 是否开启离线记录
});

示例

import tracer from "troila-mobile-tracer-luobo";

// 初始化
tracer.init({
  appVersion: "1.0.0",
  appKey: "test",
  env: "dev",
  channel: "play store",
  debug: true
});

tracer.push({
  id: "login"
});

tracer.push({
  id: "login",
  category: "event",
  desc: "用户首次登录"
});

配置项

属性类型是否必填默认值说明
appVersionstring-应用版本号
appKeystring-应用标识
debugbooleanfalse是否开启调试模式
delaynumber0上报延迟的毫秒数,0 为立即上报
envstring"dev"环境 "dev", "test", "release"
channelstring""渠道
beforeSendfunction-发送之前执行的回调函数
afterSendfunction-发送之后执行的回调函数
useridstring""当前登录的用户 id
offlineMaxNumnumber100离线存储的最大值,超过最大值后则上报到服务器
offlineLogbooleantrue是否开启离线存储

API

tracer.init(option)

初始化。

如果未初始化而调用了后面的 api,则抛出异常。

tracer.setUserid(userid)

设置当前登录用户 ID。在 SDK 初始化的时候 userid 是非必传项,如果当用户登录后需要统计当前登录用户,可以使用此 API 设置 userid。

tracer.push(action)

记录用户行为。

参数

action

属性类型是否必填默认值说明
idstring-动作id
namestring默认为id动作名
categorystring'event'动作分类
descstring-描述
extstring-附加信息
tagsstring[]-标签,用于给行为分类,方便以后的统计
  • 如果 name 没有设置,则默认使用 id 作为动作名。
  • 如果 category 没有设置,则默认使用 'event'

内置有 3 种行为:eventeventStarteventEndevent 为瞬时行为,eventStarteventEnd 结合使用用来统计具有持续时间的行为。

tracer.nav(navigation)

记录页面跳转行为。

参数

navigation

属性类型是否必填默认值说明
idstring-页面id
namestring默认为页面id页面名
fromstring-跳转来源
descstring-描述
extstring-附加信息
tagsstring[]-标签,用于给行为分类,方便以后的统计
  • 如果 name 没有设置,则默认使用 id 作为页面名。
  • 如果没有页面来源,from 传空字符串。

tracer.reportOffline()

上报离线日志。

如果不调用此方法,则用户日志条数达到 offlineMaxNum 了会自动上报。

开发

此项目使用 typescript 开发。

日志格式

{
  "timestamp": "2017-04-24T09:36:01.000Z",
  "id": "login",
  "name": "login",
  "category": "event",
  "ext": "",
  "userid": "",
  "desc": "",
  "tags": [...]
}

上报格式

{
  "appVersion": "1.2.3",
  "env": "release",
  "channel": "play store",
  "uniqueId":"c3a3bd65caf0015c",
  "logs": [
    {
      "timestamp": "2017-04-24T09:36:01.000Z",
      "id": "clickBuy",
      "name": "点击购买",
      "category": "event",
      "ext": "",
      "userid": "",
      "desc": "",
      "tags": ["a", "b"]
    },
    {
      "timestamp": "2017-04-24T09:36:01.000Z",
      "id": "login",
      "category": "event",
      "ext": "",
      "userid": "",
      "desc": "",
      "tags": ["a", "b"]
    },
    {
      "timestamp": "2017-04-24T09:36:01.000Z",
      "id": "login",
      "name": "登录",
      "category": "navigation",
      "from": "",
      "ext": "",
      "userid": "",
      "desc": "",
      "tags": ["a", "b"]
    },
    {
      "timestamp": "2017-04-24T09:36:01.000Z",
      "id": "view",
      "name": "查看",
      "category": "navigation",
      "from": "main",
      "ext": "",
      "userid": "",
      "desc": "",
      "tags": ["a", "b"]
    }
  ]
}

TODO

使用 lerna 将每个功能放到单独的 npm 包进行管理。

例如:

  • @tracer/core
  • @tracer/storage
  • @tracer/storage-memery
  • @tracer/storage-localstorage
  • @tracer/storage-indexeddb
  • @tracer/storage-xxxxxx
  • @tracer/reporter
  • @tracer/reporter-fetch
  • @tracer/reporter-sendbeacon
  • @tracer/reporter-axios
  • @tracer/reporter-xxxxx

luobo-tracer 说明文档

现地址:http://172.26.1.194/troila-cloudvideo/luobomeeting/data-platform/frontend/tracer

原地址:http://172.26.1.194/troila-cloudvideo/luobomeeting/data-platform/frontend/tracer


发布流程

  1. 登录npm账号

    登录npm淘宝镜像

    npm login --registry http://registry.npmjs.org

    账号:troila_mobile

    密码:dfqwe5335458

    邮箱:yulianlin@troila.com

  2. ts转js文件

    执行下面命令

    tsc --p tsconfig.json

    如果assets文件下有文件更新,需要手动copy过去

  3. 修改version

    版本管理,修改version版本号,基本原则如下:

    主版本号(Major):当你做了不兼容的API修改

    次版本号(Minor):当你做了向下兼容的功能性新增

    修订号(Patch):当你做了向下兼容的问题修正

  1. 发布

    npm publish
  2. 检查

    访问地址 https://npm.taobao.org/package/troila-mobile-tracer-luobo, 查看Current Tags 是否为最新版本,如果不是,需要手动同步

    a. 手动同步

    手动同步

    b. 同步成功

    同步成功

  3. 通知业务童鞋去拉去最新版本啦

4.2.14

4 years ago

4.2.13

4 years ago

4.2.12

4 years ago

4.2.11

4 years ago

4.2.10

4 years ago

4.2.7

4 years ago

4.2.6

4 years ago

4.2.9

4 years ago

4.2.8

4 years ago

4.2.5

4 years ago

4.2.4

4 years ago

4.2.3

4 years ago