2.4.0 • Published 12 months ago

@antmjs/trace v2.4.0

Weekly downloads
-
License
MIT
Repository
github
Last release
12 months ago

@antmjs/trace

统一的埋点及异常收集工具

为什么需要

支持 H5-history、原生小程序、以及 Taro 生成的小程序的埋点和异常反馈

安装

yarn add @antmjs/trace

配置

纯 H5 应用需要添加 resolve.mainFields(Taro 框架构建工具已内置):

{
  "resolve": {
    "mainFields": ["main:h5"]
  }
}

使用

import Trace, {
  utf8ToBytes,
  EGcs,
  EAppType,
  EAppSubType,
  EMlf,
} from '@antmjs/trace'
// Taro3需要
import { document } from '@tarojs/runtime'

const { exposure, log, monitor } = Trace(
  {
    appId: '1',
    appType: process.env.TARO_ENV === 'h5' ? EAppType.browser : EAppType.mini,
    appSubType:
      process.env.TARO_ENV === 'h5'
        ? EAppSubType.browser
        : EAppSubType[process.env.TARO_ENV],
    // 应用内应用版本号
    appSubTypeVersion: '',
    // Taro3需要
    getElementById: document.getElementById,
    getUserId() {
      return new Promise((resolve) => {
        resolve('')
      })
    },
    getGenderId() {
      return new Promise((resolve) => {
        resolve('')
      })
    },
    getLocation() {
      return new Promise((resolve) => {
        resolve({
          gcs: EGcs.gcj02,
          latitude: '',
          longitude: '',
        })
      })
    },
    request(type /** log|monitor */, data) {
      console.info(type, data)
    },
  },
  // 默认为0。为0的话request返回的data是对象,非0的话返回数组
  { interval: 3000 },
)

Description

/**
 * 投放系统曝光的时候可以执行此方法,投放点击可以用log,三个id可以放ext内
 *
 * @param {string} resourceId
 * @param {string} componentId
 * @param {string} planId
 */
declare function exposure(
  resourceId: string,
  componentId: string,
  planId: string,
): void

/**
 * 无法通过定义埋点的,可以通过该方法进行手工埋点
 *
 * @param {string} id
 * @param {Trace.TAnyObject} ext
 */
declare function log(id: string, ext: Trace.TAnyObject): void

/**
 * 针对API异常或者脚本异常的统计上报,目前onerror和onUnhandledRejection内部已进行监听
 * 开发者通过这个方法可以自行捕获api异常和jsx异常(componentDidCatch 和 error boundaries)等
 *
 * @param {EMlf} life
 * @param {(Partial<Pick<Trace.IMonitorLog, 'd1' | 'd2' | 'd3' | 'd4' | 'd5'>>)} query
 */
declare function monitor(
  life: EMlf,
  query: Partial<Pick<Trace.IMonitorLog, 'd1' | 'd2' | 'd3' | 'd4' | 'd5'>>,
): void

/**
 * 如果是通过阿里云日志服务的web tracking实现,则需要使用该方法设置x-log-bodyrawsize = utf8ToBytes(JSON.stringify({ __topic__: '', __logs__: [] })).length
 *
 * @param {string} string
 * @param {number} [units]
 * @return {*}  {number[]}
 */
declare function utf8ToBytes(string: string, units?: number): number[]

/**
 * 初始化埋点及异常上报需要的参数或方法
 *
 * @param {Trace.IOtions} init
 */
declare function Trace(init: Trace.IOtions): void

自动触发点击埋点

  • H5 环境可以自动捕获
  • 小程序环境需要定义事件在元素上才能捕获
  • 支持 data-ckid 或者 data-click-id,请指定其中一种
  • Taro3 环境需要在初始化的时候添加 getElementById,Taro1 和 Taro2 不需要
// Taro环境
<View data-ckid="1" data-ext={{t: ""}} onClick={() => {}}></View>
<View data-click-id="1" data-ext={{t: ""}} onClick={() => {}}></View>
// h5环境
<div data-ckid="1" data-ext={{t: ""}}></div>
<div data-click-id="1" data-ext={{t: ""}}></div>
2.3.28

1 year ago

2.4.0

12 months ago

2.3.27

1 year ago

2.3.26

1 year ago

2.3.25

2 years ago

2.3.24

2 years ago

2.3.23

2 years ago

2.3.20

2 years ago

2.3.22

2 years ago

2.3.21

2 years ago

2.3.19

2 years ago

2.3.18

2 years ago

2.3.8

2 years ago

2.3.7

2 years ago

2.3.9

2 years ago

2.3.17

2 years ago

2.3.16

2 years ago

2.3.13

2 years ago

2.3.12

2 years ago

2.3.15

2 years ago

2.3.14

2 years ago

2.3.11

2 years ago

2.2.4

2 years ago

2.3.0

2 years ago

2.3.2

2 years ago

2.3.1

2 years ago

2.3.4

2 years ago

2.3.3

2 years ago

2.3.6

2 years ago

2.3.5

2 years ago

2.2.1

3 years ago

2.2.0

3 years ago

2.1.2

3 years ago

2.1.3

3 years ago

2.1.1

3 years ago

2.0.3

3 years ago

2.0.2

3 years ago

2.0.5

3 years ago

2.0.4

3 years ago

2.0.7

3 years ago

2.0.6

3 years ago

2.0.1

3 years ago

2.0.0

3 years ago

1.21.3

3 years ago

2.1.0

3 years ago

1.21.0

3 years ago

1.21.1

3 years ago

1.21.2

3 years ago

1.19.0

3 years ago

1.19.2

3 years ago

1.19.1

3 years ago

1.20.1

3 years ago

1.20.0

3 years ago

1.20.5

3 years ago

1.20.4

3 years ago

1.18.1

3 years ago

1.18.0

3 years ago

1.18.4

3 years ago

1.18.3

3 years ago

1.18.2

3 years ago

1.17.9

3 years ago

1.17.2

4 years ago

1.17.6

3 years ago

1.17.5

3 years ago

1.17.4

3 years ago

1.17.7

3 years ago

1.14.1

4 years ago

1.16.3

4 years ago

1.16.2

4 years ago

1.16.1

4 years ago

1.16.0

4 years ago

1.16.4

4 years ago

1.15.0

4 years ago

1.15.4

4 years ago

1.17.1

4 years ago

1.15.3

4 years ago

1.17.0

4 years ago

1.15.2

4 years ago

1.15.1

4 years ago

1.15.6

4 years ago

1.15.5

4 years ago

1.13.2

4 years ago

1.14.0

4 years ago

1.12.0

4 years ago

1.11.0

4 years ago

1.10.0

4 years ago

1.9.4

4 years ago

1.9.1

4 years ago

1.8.2

4 years ago

1.9.0

4 years ago

1.8.1

4 years ago

1.8.0

4 years ago

1.9.3

4 years ago

1.9.2

4 years ago

1.7.1

4 years ago

1.7.0

4 years ago

1.5.2

4 years ago

1.6.0

4 years ago

1.5.1

4 years ago

1.5.0

4 years ago

1.4.0

4 years ago

1.3.0

4 years ago

1.2.0

4 years ago

1.1.0

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago

0.10.0

4 years ago

0.9.0

4 years ago

0.9.1

4 years ago

0.8.1

4 years ago

0.8.0

4 years ago

0.8.2

4 years ago

0.7.0

4 years ago

0.6.1

4 years ago

0.6.0

4 years ago