0.0.13 • Published 2 years ago

@authing/log v0.0.13

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

Authing Log SDK

引入项目

# use npm
npm install @authing/log

# use yarn
yarn add @authing/log

初始化

import { AuthingLog } from '@authing/log'

const authingLog = AuthingLog.registerLogTrack({
  reportFunc: (m) => {
    console.log('执行一次埋点任务', m)
  },
})

初始化的关键是调用一次 registerLogTrack 方法,传入一个对象作为参数。

一旦函数调用成功,程序会自动寻找所有带有 data-log 标记的 DOM 对象,并在合适的时机自动触发埋点(标记式埋点),具体埋点规则请阅读文档的编码解析部分。

传入对象的格式为 key: callback 的形式,一个名字对应一个埋点函数,这个函数由调用方自行实现,例如要用 fetch 调用接口,或是 ajax 请求图片都可以。

由于是一个对象,所以可以传入多个函数,可以在后面一次性触发,也可以通过 log 控制只触发一部分。

registerLogTrack 方法返回一个 authingLog 实例对象,可以用来在 js 中手动埋点。

标记式埋点

也称为自动埋点,通过在元素的 data-* 自定义属性上标记,即可在对应时机自动触发埋点函数

<button data-log='console/n1/n2'>登录</button>

命令式埋点

也称为手动埋点,通过一行 js 代码埋点

// 原生代码中
document.querySelector('#login').addEventListener('click', () => {
  authingLog.bury('console/m3/m4')
})

// react 中
<button onClick={() => authingLog.bury('console/n1/n2')}>登录</button>

使用示例

const reportGoogle = (m) => {
  // 模拟发送谷歌埋点
  fetch('google.example.com')
}

const reportBaidu = (m) => {
  // 模拟发送百度埋点
  axios.get('baidu.example.com')
}

const gsgl = AuthingLog.registerLogTrack({
  reportGoogle: reportGoogle,
  reportBaidu: reportBaidu,
})

document.querySelector('#l1').addEventListener('click', () => {
  gsgl.bury('console/m3/m4')
})

编码规则

data-log="site/page/block/element"

/*
site = console // 站点
page = costManage // 哪个页面
block = pageTitle // 页面的哪一块
element = upgrade // 按钮的名字
*/

data-log="site/page/block/element?alive=reportName"

// 默认触发所有埋点方法,可以通过 `alive` 参数指定只触发某个方法

一个点的标记分为 4 层,每层的含义比较明确就不多赘述,重要的是信息不可以省略, 为了降低开发时业务层的负担,可以在 config 里面设置默认值(见后文 config 参数说明)。

设置默认值后,一旦遇到简写情况,按照从左到右的顺序补全,举例说明:

defaultSite = 'authing'
defaultPage = 'index'
defaultBlock = 'header'

data-log="page/block/element"
// 实际埋点结果:authing/page/block/element

data-log="block/element"
// 实际埋点结果:authing/index/block/element

data-log="element"
// 实际埋点结果:authing/index/header/element

API 参数

以下面一段代码为模板,分别说明其中的 API 参数

const callbacks = {
  reportFunc: (m) => {
    console.log('执行一次埋点任务', m)
  },
}

const config = {
  defaultSite: "authing",
  defaultPage : 'index',
  defaultBlock: 'header',
}

const authingLog = AuthingLog.registerLogTrack(callbacks, config)

<button data-log="door/footer/signIn">登录</button>

AuthingLog.registerLogTrack 参数说明

参数名含义示例
callbacks一个对象,单项为回调函数,函数中自行实现埋点{ foo:()=>{}, baz:()=>{} }
config一个对象,允许设置埋点配置{defaultSite: "authing"}

config 参数说明

参数名含义
defaultSite默认的 site 值
defaultPage默认的 page 值
defaultBlock默认的 block 值
defaultElement默认的 element 值
defaultUserId默认的 user id 值
defaultUserPoolId默认的 userpool id 值

default 值会在缺少对应值的时候尝试应用。

回调函数参数说明

调用 registerLogTrack 时,传入的 report 函数里会有一个参数,这个参数表示了埋点时的信息,在实现埋点业务时,可以使用这些信息。

参数中至少包含如下信息:

参数名含义
name按照 site_page_block_element 组装出的名称字符串
site埋点网站
page埋点页面
block埋点区块
element埋点元素
expansionBlock拓展块信息
uid用户 id (仅 authing 可用)
upid用户池 id(仅 authing 可用)

如有疑问,请发送邮件到 djw7569@gmail.com

0.0.13

2 years ago

0.0.12

2 years ago

0.0.11

2 years ago

0.0.10

2 years ago

0.0.9

2 years ago

0.0.8

2 years ago

0.0.5

2 years ago

0.0.3

2 years ago

0.0.1

2 years ago