UNPKG

@eclicktech/mp-sdk

Version:

The Eclicktech Funsdata of MiniProgram SDK, suport echat, Alipay, TikTok

540 lines (438 loc) 17.2 kB
# FunsData Analytics 小程序 SDK ## 上报参数 1. app_id 您的项目的 app_id,可通过在项目产品页面获取 2. 上报地址 :your_serviceurl ## 一、集成 SDK 安装命令: ```javascript pnpm add @eclicktech/mp-sdk ``` 将 analytics.wx.js 文件导入 ```javascript const analytics = require("miniprogram_npm/@eclicktech/mp-sdk/analytics.wx"); ``` 在 project.config.json 中需要确认: ```javascript "miniprogramRoot": "./", "setting": { "nodeModules": true, "packNpmRelationList": [ { "packageJsonPath": "./package.json", "miniprogramNpmDistDir": "./miniprogram_npm" } ], } ``` ## 二、配置 SDK 引入 SDK 之后,您就可以创建 SDK 实例,开始上报数据了: ```javascript import analytics from "../../mp_sdk/build/analytics.wx"; // 初始化配置 var config = { appId: "your-app-id", // 项目的 App ID(必填) serverUrl: "https://your.serverurl.com", // 数据上报地址(必填) autoTrack: { // 自动追踪配置(可选) appShow: true, // 自动追踪应用显示事件 appHide: true, // 自动追踪应用隐藏事件 appLaunch: true, // 自动追踪应用启动事件 pageShow: true, // 自动追踪页面显示事件 pageLeave: true, // 自动追踪页面离开事件 mpClick: true, // 自动追踪小程序点击事件 pageShare: true, // 自动追踪页面分享事件 mpFavorite: true, // 自动追踪小程序收藏事件 properties: {}, // 自动追踪事件的公共属性 callback: function (eventType) { // 自动追踪事件回调 return {}; // 返回额外属性 } }, enableLog: true, // 启用日志打印(可选) debugMode: "none", // 调试模式:'none', 'debug', 'debugOnly' strict: true, // 严格模式,验证参数格式 disablePresetProperties: [], // 禁用的预置属性列表 zoneOffset: 8 // 时区偏移量 }; analytics.init(config); Page({ data: {}, onReady: function () { // 初始化 }, // 设置访客 ID, 对应上报数据中的 #distinct_id identify: function () { analytics.setDistinctId("your_own_anonymous_id"); }, // 设置账号 ID,对应上报数据里的 #account_id login: function () { analytics.login("ABC_123456"); }, // 去除上报数据里的 #account_id 字段 logout: function () { analytics.logout(); }, // 设置公共事件属性 setSuperProperties: function () { analytics.setSuperProperties({ channel: "渠道" }); }, // 上报事件 track: function () { analytics.track( "Purchase", //追踪事件的名称 { Item: "商品A", ItemNum: 1, Cost: 100 } //需要上传的事件属性 ); } }); ``` ## 三、发送事件 ### 3.1 普通事件追踪 - track ```javascript // 基础调用方式 Analytics.track( { eventName: "product_buy", // 事件名称,必填 properties: { // 事件属性,可选 product_name: "钻石", price: 100 }, time: new Date(), // 事件时间,可选 onComplete: function (result) { // 回调函数,可选 console.log("事件上报结果:", result); } }, "appId" ); // appId 可选 ``` ### 3.2 首次事件追踪 - trackFirst ```javascript Analytics.trackFirst({ eventName: "first_login", firstCheckId: "device_id", // 首次检查ID,默认为设备ID properties: { channel: "wechat" }, time: new Date(), onComplete: callback }); ``` ### 3.3 可更新事件追踪 - trackUpdate ```javascript Analytics.trackUpdate({ eventName: "game_level", eventId: "unique_event_id", // 事件ID,必填 properties: { level: 5 }, time: new Date(), onComplete: callback }); ``` ### 3.4 可覆写事件追踪 - trackOverwrite ```javascript Analytics.trackOverwrite({ eventName: "user_profile", eventId: "profile_update_id", // 事件ID,必填 properties: { age: 25 }, time: new Date(), onComplete: callback }); ``` ## 四、用户属性 ### 4.1 设置用户属性 - userSet ```javascript Analytics.userSet({ properties: { // 用户属性,必填 username: "tiki", age: 25, vip_level: "gold" }, time: new Date(), // 时间,可选 onComplete: callback // 回调,可选 }); ``` ### 4.2 设置用户属性(仅首次) - userSetOnce ```javascript // 如果属性已存在,则忽略新值 Analytics.userSetOnce({ properties: { first_login_time: new Date(), register_channel: "wechat" } }); ``` ### 4.3 数值类型用户属性累加 - userAdd ```javascript Analytics.userAdd({ properties: { total_purchase: 100, // 累加购买金额 login_count: 1 // 累加登录次数 }, time: new Date(), onComplete: callback }); ``` ### 4.4 重置用户属性 - userUnset ```javascript Analytics.userUnset({ property: "temp_data", // 要重置的属性名 time: new Date(), onComplete: callback }); ``` ### 4.5 删除用户 - userDel ```javascript // 删除用户数据,不可逆操作,请谨慎使用 Analytics.userDel({ time: new Date(), onComplete: callback }); ``` ### 4.6 追加列表类型用户属性 - userAppend ```javascript Analytics.userAppend({ properties: { favorite_games: ["game1", "game2"] // 追加到列表 } }); ``` ### 4.7 去重追加列表属性 - userUniqAppend ```javascript Analytics.userUniqAppend({ properties: { visited_pages: ["home", "profile"] // 去重后追加 } }); ``` ### 4.8 用户身份管理 ```javascript // 设置访客ID Analytics.setDistinctId("unique_visitor_id"); // 用户登录 Analytics.login("user_account_id"); // 用户登出 Analytics.logout(); ``` ## 五、公共属性设置 ### 5.1 设置公共事件属性 设置后,所有事件都会包含这些属性: ```javascript Analytics.setSuperProperties({ channel: "wechat", app_version: "1.0.0" }); ``` ### 5.2 设置动态公共属性 每次上报事件时,动态获取最新值: ```javascript Analytics.setDynamicSuperProperties(function () { return { current_time: new Date().getTime(), network_type: getCurrentNetworkType() }; }); ``` ## 六、其他重要方法 ### 6.1 设置事件上报状态 控制事件上报行为: | 状态值 | 说明 | | ----------- | ------------------ | | `NORMAL` | 正常上报 | | `PAUSE` | 暂停上报 | | `STOP` | 停止上报并清除缓存 | | `SAVE_ONLY` | 仅保存不上报 | ```javascript Analytics.setTrackStatus("NORMAL"); ``` ### 6.2 立即上报缓存数据 立即尝试上报缓存队列中的数据: ```javascript Analytics.flush(); ``` ### 6.3 用户登录 / 登出 ```javascript // 用户登录 Analytics.login("user_account_id"); // 用户登出 Analytics.logout(); ``` --- ## 七、自动采集事件 ### 7.1 自动采集配置 ```javascript autoTrack: { appLaunch: true, // 自动采集应用启动事件 ta_mp_launch appShow: true, // 自动采集应用显示事件 ta_mp_show appHide: true, // 自动采集应用隐藏事件 ta_mp_hide pageShow: true, // 自动采集页面浏览事件 ta_mp_view pageLeave: true, // 自动采集页面离开事件 ta_page_leave pageShare: true, // 自动采集页面分享事件 ta_mp_share mpClick: true, // 自动采集小程序点击事件 ta_mp_click mpFavorite: true, // 自动采集小程序收藏事件 ta_add_favorite properties: {}, // 自动采集事件的公共属性 callback: function(eventType) { // 自动采集事件回调,返回额外属性 return {}; } } ``` ```javascript import analytics from "../../mp_sdk/build/analytics.wx"; var config = { appId: "your_app_id", // 项目的 APP ID serverUrl: "https://deapi.adsgreat.cn/v1/wechat/report/json", // 数据上报地址 autoTrack: { appLaunch: true, // 自动采集 ta_mp_launch appShow: true, // 自动采集 ta_mp_show appHide: true, // 自动采集 ta_mp_hide pageShow: true, // 自动采集 ta_mp_view pageShare: true // 自动采集 ta_mp_share } }; analytics.init(config); Page({ data: {}, onReady: function () { // 初始化 }, // 设置访客 ID, 对应上报数据中的 #distinct_id identify: function () { analytics.setDistinctId("your_own_anonymous_id"); }, // 设置账号 ID,对应上报数据里的 #account_id login: function () { analytics.login("ABC_123456"); }, // 去除上报数据里的 #account_id 字段 logout: function () { analytics.logout(); }, // 设置公共事件属性 setSuperProperties: function () { analytics.setSuperProperties({ channel: "渠道" }); }, // 上报事件 track: function () { analytics.track( "Purchase", //追踪事件的名称 { Item: "商品A", ItemNum: 1, Cost: 100 } //需要上传的事件属性 ); } }); ``` ### 7.2 属性说明 #### 7.2.1 通用属性 - **#url_path** 通过 `getCurrentPages()` 获取当前页面路径。 - **#scene** 从小程序启动参数中获取场景值(微信提供的场景值)。 - **#utm** 从 URL query 参数中解析 UTM 营销参数。 - **#start_reason** 小程序启动参数的 JSON 字符串。 #### 7.2.2 时长相关属性 - **#duration** 通过 `timeEvent()` 方法计算的事件持续时间(秒)。 - 应用隐藏事件会计算**应用使用时长**。 - 页面离开事件会计算**页面停留时长**。 #### 7.2.3 元素相关属性(点击事件) | 属性名 | 数据来源 | | -------------------- | ------------------------------- | | **#element_id** | `currentTarget.id` | | **#element_type** | `currentTarget.dataset.type` | | **#element_content** | `currentTarget.dataset.content` | | **#element_name** | `currentTarget.dataset.name` | --- ### 7.3 采集事件 #### 7.3.1 小程序初始化 | 项目 | 说明 | | ---------------- | ---------------------------------------------------------------------- | | **事件名** | `ta_mp_launch` | | **触发时机** | 首次打开小程序,或用户杀死进程后重新启动;整个进程生命周期仅触发一次。 | | **自动采集属性** | `#scene`:场景值,取自微信提供的场景值。 | | **典型分析场景** | 计算每日使用次数、人均使用次数;按场景值分组查看不同场景的使用情况。 | #### 7.3.2 小程序启动 | 项目 | 说明 | | ---------------- | ----------------------------------------------------------- | | **事件名** | `ta_mp_show` | | **触发时机** | 小程序启动,或从后台调回前台。 | | **自动采集属性** | - `#scene`:场景值<br>- `#url_path`:启动后展示页面的路径。 | | **典型分析场景** | 在行为路径中标记一次使用起点,作为用户行为路径的初始行为。 | #### 7.3.3 小程序隐藏 | 项目 | 说明 | | ---------------- | ------------------------------------------------------------------------- | | **事件名** | `ta_mp_hide` | | **触发时机** | 小程序被调入后台。 | | **自动采集属性** | - `#scene`:场景值<br>- `#duration`:本次启动到隐藏的**持续时长(秒)**。 | | **典型分析场景** | 计算总使用时长、人均时长;除以初始化次数可得单次使用时长。 | #### 7.3.4 小程序页面浏览 | 项目 | 说明 | | ---------------- | ------------------------------------------------------------------------------------------------------------ | | **事件名** | `ta_mp_view` | | **触发时机** | 页面打开,或从后台调回前台时页面重新展示。 | | **自动采集属性** | - `#scene`:场景值<br>- `#url_path`:被展示页面的路径<br>- `#referrer`:前向路径,若首页打开则为“直接打开”。 | | **典型分析场景** | 计算各页面 PV/UV;分析用户访问路径。 | #### 7.3.5 小程序页面转发分享 | 项目 | 说明 | | ---------------- | ----------------------------------------------------------- | | **事件名** | `ta_mp_share` | | **触发时机** | 点击转发按钮(右上角导航栏按钮或页面内按钮)。 | | **自动采集属性** | - `#scene`:场景值<br>- `#url_path`:转发时所在的页面路径。 | | **典型分析场景** | 分析页面分享率,优化转发功能。 | #### 7.3.6 小程序页面卸载 | 项目 | 说明 | | ---------------- | ---------------------------------------------------------------------- | | **事件名** | `ta_page_leave` | | **触发时机** | 页面卸载(例如跳转到其他页面)。 | | **自动采集属性** | - `#duration`:页面停留时长(秒)<br>- `#url_path`:卸载时的页面路径。 | #### 7.3.7 小程序页面收藏 | 项目 | 说明 | | ---------------- | ------------------------------- | | **事件名** | `ta_add_favorite` | | **触发时机** | 页面被收藏。 | | **自动采集属性** | `#url_path`:被收藏页面的路径。 | 以下是将表格内容转换为 Markdown 格式后的结果: ### 系统预置字段 #### 核心标识字段 | 字段名 | 简介 | 示例值 | | ------------ | ------------------------------------- | ----------------------------- | | #distinct_id | 访客唯一标识,UUID 自动生成或手动设置 | 1234-5678-9012-3456-789012345 | | #account_id | 用户账户 ID,登录时设置 | user_123456 | | #device_id | 设备唯一标识 | device_abc123 | #### 设备信息字段 | 字段名 | 简介 | 示例值 | | -------------- | ---------------- | ----------------------- | | #os | 操作系统类型 | iOS, Android | | #os_version | 操作系统版本 | 14.5, 11.0 | | #device_model | 设备型号 | iPhone 12, Xiaomi Mi 11 | | #manufacturer | 设备制造商 | Apple, Xiaomi | | #screen_width | 屏幕宽度(像素) | 375, 414 | | #screen_height | 屏幕高度(像素) | 812, 896 | | #network_type | 网络连接类型 | wifi, 4g, 3g | #### 自动收集的数据 | 字段名 | 简介 | 示例值 | | ---------------- | ------------------------------- | ------------------ | | #device_id | 设备唯一标识符(UUID 生成) | abc123-def456-789 | | #device_model | 设备型号 | iPhone 8 | | #manufacturer | 设备制造商 | Apple | | #screen_width | 屏幕宽度(像素) | 375 | | #screen_height | 屏幕高度(像素) | 667 | | #os | 操作系统名称 | iOS、Android | | #os_version | 操作系统版本号 | 14.5、11.0 | | #system_language | 系统语言 | zh-CN、en-US | | #network_type | 当前网络类型(wifi、4g、3g 等) | wifi、4g、3g | | #lib | SDK 名称 | FunsData Analytics | | #lib_version | SDK 版本号 | 1.0.0 | | #mp_platform | 小程序平台名称 | wechat_mp | | #app_version | 小程序版本号 | 2.3.1 | | #zone_offset | 时区偏移量 | +8 | --- **微信`SDK`文件位置**: `@eclicktech/mp-sdk/build/analytics.wx.js` **详细使用指南**: https://janzlz0n1f.feishu.cn/wiki/PGKqwsWGWikAXokH5rvcOqtKnGd