UNPKG

@ked3/ktrace

Version:

跨平台埋点分析SDK

259 lines (194 loc) 5.17 kB
# KTrace SDK 一个轻量级、跨平台的埋点分析SDK,支持多种前端框架和原生HTML项目。 ## 特性 - 🚀 **轻量级**: 压缩后体积小,性能优异 - 🔧 **易集成**: 简单的API设计,快速集成到项目中 - 🌐 **跨平台**: 支持HTML、React、Vue等多种前端环境 - 📊 **丰富事件**: 支持页面访问、用户交互、错误监控等多种事件类型 - 🛡️ **类型安全**: 完整的TypeScript类型定义 - 🔍 **调试友好**: 内置调试模式,便于开发调试 -**自动追踪**: 支持自动追踪页面访问、错误等常见事件 ## 安装 ### NPM 安装 ```bash npm install @ked3/ktrace ``` ### CDN 引入 ```html <script src="https://unpkg.com/@ked3/ktrace@latest/dist/ktrace.min.js"></script> ``` ## 快速开始 ### HTML 原生项目 ```html <!DOCTYPE html> <html> <head> <script src="./ktrace.min.js"></script> </head> <body> <script> // 初始化追踪器 const tracker = new KTrace.HtmlAdapter({ project_id: "your_project_id", enable_auto_track: true, debug: true }); // 启动追踪 tracker.init(); // 手动追踪事件 tracker.trackEvent(KTrace.EventKey.BUTTON_CLICK, { button_type: 'submit', page_section: 'header' }); </script> </body> </html> ``` ### ES6 模块 ```javascript import { HtmlAdapter, EventKey } from '@ked3/ktrace'; // 初始化追踪器 const tracker = new HtmlAdapter({ project_id: "your_project_id", server_url: "https://your-analytics-server.com", enable_auto_track: true, debug: false }); // 启动追踪 tracker.init(); // 追踪自定义事件 tracker.trackEvent(EventKey.USER_LOGIN, { user_id: '12345', login_method: 'email' }); ``` ## 配置选项 ```typescript interface TrackerConfig { /** 项目ID,必填项 */ project_id: string; /** 数据上报的服务器地址(可选) */ server_url?: string; /** 单条事件上报路径(可选) */ event_path?: string; /** 批量事件上报路径(可选) */ batch_event_path?: string; /** 是否启用自动埋点功能 */ enable_auto_track?: boolean; /** 是否开启调试模式 */ debug?: boolean; } ``` ## 支持的事件类型 ### 页面相关事件 - `PAGE_VIEW` - 页面访问 - `PAGE_LEAVE` - 页面离开 - `PAGE_VISIBILITY_CHANGE` - 页面可见性变化 - `ROUTE_CHANGE` - 路由变化 ### 用户交互事件 - `BUTTON_CLICK` - 按钮点击 - `USER_INPUT` - 用户输入 - `SCROLL` - 滚动 - `HOVER` - 鼠标悬停 - `DOUBLE_CLICK` - 双击 - `RIGHT_CLICK` - 右键点击 - `DRAG` / `DROP` - 拖拽操作 - `FOCUS` / `BLUR` - 焦点变化 - `CUSTOM_INTERACTION` - 自定义交互 - `FEEDBACK_SUBMIT` - 反馈提交 ### 错误监控事件 - `JAVASCRIPT_ERROR` - JavaScript错误 - `RESOURCE_ERROR` - 资源加载错误 - `NETWORK_ERROR` - 网络错误 - `COMPONENT_ERROR` - 组件错误 - `CUSTOM_ERROR` - 自定义错误 ### 业务事件 - `USER_LOGIN` - 用户登录 - `USER_LOGOUT` - 用户登出 - `COMPONENT_LIFECYCLE` - 组件生命周期 ## API 参考 ### HtmlAdapter #### 构造函数 ```javascript const tracker = new HtmlAdapter(config); ``` #### 方法 ##### `init()` 初始化追踪器,设置自动追踪和错误监听。 ```javascript tracker.init(); ``` ##### `trackEvent(eventKey, metadata?)` 追踪自定义事件。 ```javascript tracker.trackEvent(EventKey.BUTTON_CLICK, { button_id: 'submit-btn', page_section: 'form' }); ``` ##### `trackError(error, eventKey?, metadata?)` 追踪错误事件。 ```javascript try { // 可能出错的代码 } catch (error) { tracker.trackError(error, EventKey.JAVASCRIPT_ERROR, { context: 'user_action' }); } ``` ##### `trackPageView(path?)` 手动追踪页面访问。 ```javascript tracker.trackPageView('/custom-page'); ``` ## 自动追踪功能`enable_auto_track` 设置为 `true` 时,SDK会自动追踪以下事件: - 页面加载完成时的页面访问事件 - 页面离开事件 - JavaScript运行时错误 - 资源加载错误 - Promise未捕获的错误 ## 调试模式 开启调试模式后,SDK会在控制台输出详细的日志信息: ```javascript const tracker = new HtmlAdapter({ project_id: "your_project_id", debug: true // 开启调试模式 }); ``` ## 示例项目 查看 `docs/examples/` 目录下的示例文件: - `demo.html` - 基础功能演示 - `demo2.html` - 高级功能演示 ## 开发 ### 安装依赖 ```bash pnpm install ``` ### 构建项目 ```bash pnpm run build ``` ### 运行测试 ```bash pnpm run test ``` ### 启动开发服务器 ```bash pnpm run dev ``` ## 版本历史 ### v1.2.2 - 优化错误处理机制 - 增加更多事件类型支持 - 改进TypeScript类型定义 ## 许可证 MIT License ## 贡献 欢迎提交 Issue 和 Pull Request 来帮助改进这个项目。 ## 支持 如果您在使用过程中遇到问题,请通过以下方式获取帮助: - 查看示例代码 - 提交 GitHub Issue - 查看项目文档