UNPKG

@gaoding/gd-tracker

Version:

Gaoding tracker for sensorsdata(sa), baidu(_hmt), Growing.IO(gio)

86 lines (72 loc) 3.46 kB
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;