@gaoding/gd-tracker
Version:
Gaoding tracker for sensorsdata(sa), baidu(_hmt), Growing.IO(gio)
86 lines (72 loc) • 3.46 kB
Plain Text
import { tracker } from '@gaoding/gd-tracker';
import { createWindAPI } from './api';
export * from './api';
// 是否调试模式
const DEBUG_MODE = window.location.search.includes('__tracker_debug=1');
// 是否在控制台打印埋点信息
const SHOW_LOG = window.location.search.includes('__tracker_log=1');
// 是否生产环境
// 这里写了 process.env.BUILD_ENV === 'prod',请根据实际的项目情况来配置
const IS_PROD = process.env.BUILD_ENV === 'prod';
// 环境变量 (可选值: dev, fat, stage, prod)
// 这里写了 process.env.BUILD_ENV,实际情况请根据项目来配置
const TRACKER_ENV = process.env.BUILD_ENV;
// 项目版本
// 这里写了 '1.0.0',实际情况请根据自己项目的 package.json 中的 version 来配置
const PROJECT_VERSION = '1.0.0';
// 创建渠道信息 (埋点数据标准)
// const createChannel = () => {
// return {
// channel_id: '', // 渠道 ID
// };
// };
// 创建组织信息 (埋点数据标准)
// const createOrganization = () => {
// return {
// org_id: '', // 企业 ID (可选允许为空)
// uc_id: '', // 企业用户 ID (可选允许为空)
// tenant_id: '', // 企业 ID (可选允许为空)
// product_type: '', // 企业版本 (可选允许为空)
// role_list: [], // 用户角色 (可选允许为空)
// };
// };
// 埋点插件列表
const createPlugins = (app: any) => {
return [
'utm-data-tracker', // utm 插件
'page-duration-tracker', // 页面停留时长埋点
[
'router-change-tracker', // 上报 page_visit 事件,默认上报的事件 id 是 39003,可以配置 (参考文档)
{
app, // app 为 vue 实例
eventId: 39003, // [非必填] eventId 对应项目给的 page_visit 的事件 id,不填默认 39003
change(from: any, to: any) { // [非必填] 路由改变的回调,from & to 来着 vue-router 的路由参数
return { // [非必填] 返回的数据会添加到 page_visit 的 detail 业务数据层下,根据需要自行实现 change 方法
};
},
},
],
];
};
// Wind 选项
const createWind = (app: any) => {
return {
project: '__PROJECT_NAME__', // 埋点项目名
version: PROJECT_VERSION, // 项目版本,无垠数据公共业务数据字段。
batch: true, // 是否批量上报埋点数据
login: false, // 是否在登录后才上报埋点数据 (手动调用 trackerWind.login 方法后才开始上报埋点数据)
env: TRACKER_ENV, // 环境变量 (可选值: dev, fat, stage, prod)
showLog: SHOW_LOG, // 是否在控制台打印埋点信息
plugins: createPlugins(app), // 埋点插件列表
isValidate: window.location.href.includes('//localhost'), // 是否对埋点数据进行本地验证
validateURL: 'http://localhost:6427/wind', // 对埋点数据进行本地验证的地址
// channel: createChannel(), // 渠道信息
// organization: createOrganization(), // 创建组织信息
};
};
export const windAPI = createWindAPI('__PROJECT_NAME__');
export const gdTrackerInit = (app: any) => {
const wind = createWind(app);
tracker.setup({ wind }, IS_PROD, DEBUG_MODE);
};
export default gdTrackerInit;