juexiao-stat-sdk

juexiao statitics sdk with javascript

Usage no npm install needed!

<script type="module">
  import juexiaoStatSdk from 'https://cdn.skypack.dev/juexiao-stat-sdk';
</script>

README

JueXiao Statistics SDK With JavaScript

Build Status semantic-release npm

安装

npm install juexiao-stat-sdk

or

yarn add juexiao-stat-sdk

注意:该 sdk 只支持 web/h5微信小程序 环境使用,两种环境完全独立。该 sdkumd 格式打包,同时支持 importrequire 导入,推荐使用 es6import 语法按需引入不同环境对应的模块。

sdk 包含两个模块: BrowserStatSDKMiniStatSDK, 其中,BrowserStatSDK只适用于 web/h5 环境,MiniStatSDK 只适用于微信小程序环境,使用时请注意区分。

在 vue 项目中使用:

main.js 中引入

import { BrowserStatSDK } from 'juexiao-stat-sdk'
const stat = new BrowserStatSDK({
  id: 'test-id', // 这里填写每个项目分配的 project_id
  source: 'pc', // 可选值 pc | wechat | h5
  debug: true // 是否开启调试,默认false,可不传
})
// 全局注册
Vue.prototype.$stat = stat
...

在需要埋点的地方使用,如 index.vue

...
methods: {
  btnClick() {
    this.$stat.track('btn-click')
    // 或者传入当前事件需要的一些自定义属性
    this.$stat.track('btn-click', {
      ...
    })
  }
}

在微信小程序中使用:

登录微信公众平台(mp.weixin.qq.com),在 开发 → 开发设置->服务器域名 找到「 request 合法域名」,点击「修改」,将 sdk.juexiaotime.com 添加 request 合法域名中。

sdk.juexiaotime.com

在入口文件 app.js 中引入,

import { MiniStatSDK } from 'juexiao-stat-sdk'
const stat = new MiniStatSDK({
  id: 'test-id', // 这里填写每个项目分配的 project_id
  source: 'pc', // 可选值 pc | wechat | h5
  debug: true // 是否开启调试,默认false,可不传
})
wx.$stat = stat

在需要埋点的地方使用,如首页下的 index.js 文件

...
methods: {
  btnClick() {
    wx.$stat.track('btn-click')
    // 或者传入当前事件需要的一些自定义属性
    wx.$stat.track('btn-click', {
      ...
    })
  }
}

API

login

为了保证数据准确性,当用户 登录 成功后,必须调用 login 方法,主动更新用户 id

stat.login('loginid')
logout

为了保证数据准确性,当用户 退出登录 成功后,必须调用 logout 方法,主动更新用户登录状态

stat.logout()
trackSignUp

为了保证数据准确性,当用户 注册 成功后,必须调用 trackSignUp 方法,用于绑定登录 id和匿名 id 之间的操作

stat.trackSignUp('loginid')
track

常规数据上报

stat.track('eventname', {
  // 当前事件需要的一些自定义属性
})
profileSet

该方法只在用户更新 用户信息 时调用。

stat.profileSet({
    sex: '男'
    age: '18'
})
profileSetOnce

该方法只在 注册基本信息成功 时调用,注意并非是 注册成功,而是注册成功后,绑定设置相关用户信息时调用

stat.profileSetOnce({
    sex: '男'
    age: '18'
})

差异 API

为了提高数据的准确性,小程序在每次 启动时 需要调用 login() 方法换取 code,然后从服务端获取 openid 和 unionid。注意:openid 一定能获取到,unionid 在用户从未登录授权过公众号相关应用时无法获取

获取成功后,需要调用以下两个差异API

setOpenid

微信小程序中,默认情况下使用 UUID 作为用户标识,但删除小程序的操作,会导致 UUID 改变,因此,为了数据的准确性,建议获取并使用 openid

调用该方法之后,会将 UUID替换为 openid 的值,在用户未登录的情况下,后续上报都会采用 openid的值

stat.setOpenid('openid')
setUnionid

在能获取到 unionid 的情况下,需要主动设置 unionid

stat.setUnionid('unionid')