0.1.12 • Published 1 year ago

@murui/chemical v0.1.12

Weekly downloads
-
License
ISC
Repository
-
Last release
1 year ago

chemical

半自动埋点方案。

特点

  • 支持页面浏览全埋点
  • 支持元素点击、页面浏览、页面访问时长、元素曝光、自定义事件代码埋点上报
  • 支持设置元素曝光条件,达到条件进行上报
  • 支持自定义组装上报数据和自定义数据上报
  • 支持 Vue、React、JavaScript、微信小程序

入门指南

1、安装chemical

npm i @murui/chemical --save

2、引入chemical

import chemical from '@murui/chemical'

3、chemical-sdk 使用示例

<div>
  <button data-c-click='{"message": "Hi..."}'>点击事件</button>
  <button data-c-view='{"message": "Hi..."}'>曝光事件</button>
</div>

<script>
  import chemical, { ajax } from '@murui/chemical'

  // 初始化 sdk
  chemical({
    visibleTime: 1000, // 可选,曝光元素停留时长,毫秒
    threshold: 0.2, // 可选,达到曝光元素的距离,如滑动到目标元素的50%,则写0.5
    throttleTime: 1000, // 可选,重复数据截流时长,毫秒
    dataName: { // 可选
      click: 'data-c-click', // 点击事件
      view: 'data-c-view', // 曝光事件
    },
  })
  // 触发的所有事件都会执行 add 事件,可以在 add 事件中做统一拦截,对于不需要的可以返回 false
  .on('add', (type, data)) => {
    // type 事件类型
    // data 为收集的基础属性 + 自定义的业务数据(data-c-xx)
    // 组装要提交的数据
    const eventType = {
      click: 1202,
      view: 1252,
      pageview: 1152,
      pageleave: 1253,
      pageclose: 1254,
    }

    return {
      ...data,
      pointEventId: eventType[type],
    }
  })
</script>

API

  • 自定义事件上报
import { addChemicalData } from '@murui/chemical'

addChemicalData('type', {
  message: 'test'
})
  • 设置用户userId
import { setUserId } from '@murui/chemical'

setUserId(123123)
  • 添加公共数据
import { setChemicalCommonData } from '@murui/chemical'

setChemicalCommonData({
  account: '18300000000',
  name: '张三',
})

微信小程序

1、安装 chemical

npm i @murui/chemical --save

2、构建npm

工具 > 构建 npm

3、app.json 配置 usingComponents

{
  "usingComponents": {
    "chemical": "@murui/chemical/chemical"
  }
}

4、元素点击

<chemical data-c-click='{"message":"click"}'>
  <view>
    <text>Hello World</text>
  </view>
</chemical>

5、元素曝光

<chemical data-c-view='{"message":"view"}'>
  <view>
    <text>Hello World</text>
  </view>
</chemical>

6、app.js 引入 chemical

import chemical, { ajax } from '@murui/chemical'

// 初始化 sdk
chemical({
  visibleTime: 1000, // 可选,曝光元素停留时长,毫秒
  threshold: 0.2, // 可选,达到曝光元素的距离,如滑动到目标元素的50%,则写0.5
  throttleTime: 1000, // 可选,重复数据截流时长,毫秒
  dataName: { // 可选
    click: 'data-c-click', // 点击事件
    view: 'data-c-view', // 曝光事件
  },
})
// 触发的所有事件都会执行 add 事件,可以在 add 事件中做统一拦截,对于不需要的可以返回 false
.on('add', (type, data)) => {
  // type 事件类型
  // data 为收集的基础属性 + 自定义的业务数据(data-c-xx)
  // 组装要提交的数据
  return {
    ...data,
    nowTime: Date.now()
  }
})

参考信息

用户标识规则

进入网站后默认生成设备ID,登录后不变更;当用户取消登录后,重新生成设备ID

属性名属性说明
deviceId随机生成的设备ID,不管有没有登录都会携带此字段
userId登录后的用户ID,未登录没有此字段

页面浏览时长事件特有属性:

属性名属性类型属性说明
eventDuration数值页面浏览时长,单位毫秒,示例:2328备注:只有 pageleave 事件有这个属性

事件通用属性:

属性名属性类型属性说明
eventType字符串事件类型:click、view、pageview、pageleave、pageclose
eventTime数值事件触发时间戳,示例:1636957635784
page字符串页面路径,示例:/user
pageTitle字符串页面标题,示例:用户列表页
pageUrl字符串页面完整URL,示例:http://localhost:1234/user
referPage字符串页面来源或上一个页面URL,示例:http://localhost:1234/
pageWidth数值页面宽度,示例:840
pageHeight数值页面高度,示例:960
sdkVersion字符串SDK版本号,示例:0.1.2
platformType字符串平台类型:web(web端)、miniprogram(微信小程序端)
trafficSource数值流量来源:0其他 1直接流量 2自然搜索 3付费广告
user.account字符串账号,用户的账号,一般和手机号一致
user.name字符串姓名,用户的昵称

流量来源类型说明:

来源类型场景
付费广告落地页地址含有 utm 参数
自然搜索落地页地址无 utm 参数且前向地址中为常见搜索引擎地址
直接流量落地页地址无 utm 参数且前向地址为本站自身域名或为空
其他落地页地址无 utm 参数且前向地址非本站域名

事件通用浏览器属性:

属性名属性类型属性说明
systemInfo.browserName字符串浏览器名称,示例:chrome
systemInfo.browserVersion字符串浏览器版本,示例:95.0.4638.69
systemInfo.browserLanguage字符串浏览器语言,示例:zh-cn
systemInfo.browserUserAgent字符串完整浏览器UserAgent信息,小程序端无此字段
systemInfo.engineName字符串浏览器渲染引擎,示例:blink
systemInfo.engineVersion字符串浏览器渲染引擎版本号,示例:95.0.4638.69
systemInfo.osName字符串操作系统名称,示例:mac os
systemInfo.osVersion字符串操作系统版本,示例:10.15.7
systemInfo.deviceType字符串设备类型:desktop、mobile
systemInfo.deviceModel字符串设备型号,示例:iphone
systemInfo.screenWidth数值屏幕宽度,示例:1920
systemInfo.screenHeight数值屏幕高度,示例:1080

事件通用渠道广告属性:

属性名属性类型属性说明
utm.campaign字符串广告名称,打开页面的 url 有 utm 参数就采集
utm.source字符串广告来源,打开页面的 url 有 utm 参数就采集
utm.medium字符串广告媒介,打开页面的 url 有 utm 参数就采集
utm.term字符串广告关键词,打开页面的 url 有 utm 参数就采集
utm.content字符串广告内容,打开页面的 url 有 utm 参数就采集

渠道广告来源说明:

https://www.xxx.com/?utm-ca=activity2021&utm-so=baidu&utm-me=banner&utm-te=花型展会&utm-co=米绘2021花型展会

utm_ca对应utm.campaign

utm_so对应utm.source

utm_me对应utm.medium

utm_te对应utm.term

utm_co对应utm.content

业务相关属性:

属性名属性类型属性说明
customData.***未知所有业务相关数据都会放入到customData对象中
0.1.12

1 year ago

0.1.10

3 years ago

0.1.11

3 years ago

0.1.9

3 years ago

0.1.8

3 years ago

0.1.7

3 years ago

0.1.6

3 years ago

0.1.5

3 years ago

0.1.2

4 years ago

0.1.1

4 years ago

0.1.0

4 years ago