react-native-mzanalytics v1.0.1
React Native 部署指南
1. 集成秒针分析 SDK RN 模块
对于 React Native 开发的应用,可以使用 npm 方式集成秒针分析 SDK RN 模块
###1.1. 安装秒针分析 SDK RN 模块
react-native install react-native-mzanalytics —save
###1.2. 链接秒针分析 SDK RN 模块
注意:React Native 0.60 及以上版本会 autolinking,不需要执行下边的 react-native link 命令。
react-native link react-native-mzanalytics
2. iOS 端
###2.1. 集成秒针分析 iOS SDK
集成方法参考MZAnalytics_IOS_SDK部署指南
。如原生应用部分已经集成过SDK并初始化过,则可跳过。
注意:如项目中使用pods集成RN模块,会自动导入原生SDK,这时需要删除手动集成的的SDK,防止造成两个相同SDK的冲突。
3. Android 端
###3.1. 集成秒针分析 Android SDK
集成方法参考MZAnalytics_Android_SDK部署指南
。如原生应用部分已经集成过SDK并初始化过,需删除libs目录下的秒针分析jar包,同时删除相关引用。
注意:如项目中集成RN模块,会自动导入原生SDK。
4. 在 React Native 上使用代码埋点
###4.1. 在 js 文件中导入秒针模块 在具体的 js 文件中导入秒针模块 RNMzanalyticsYumc,导入模块示例如下:
import RNMzanalyticsYumc from 'react-native-mzanalytics';
4.2. 代码埋点调用示例
4.2.1. 页面浏览
说明:
a. 用于监测页面浏览行为,在需要监测的页面启动方法中添加如下代码后,即可采集用户的页面浏览行为;
b. 如需在页面浏览数据上报时,需携带更多的信息,可使用自定义维度和自定义指标。 【具体使用规则见文档: 4.2.5 自定义维度和指标的使用方法 】
接口示例:
<Button title='页面事件' style={styles.button}
onPress={() => {
RNMzanalyticsYumc.trackPageView({
"dt": "首页",
"CustomDimMetrics": {
"cd1": "ID88888", //需统计的自定义维度1的名称,如浏览该页面的用户Id
"cd2": "小明机器人", //需统计的自定义维度2的名称,如浏览页面的用户名称
"cm1": "1" //需统计的自定义指标的数值,如用户个数为1
}
}); }}
></Button>
参数说明:
参数 | 类型 | 说明 | 是否必填 |
---|---|---|---|
dt | String | 需监测的页面名称 | 必填 |
customDimMetrics | Map | 自定义维度和自定义指标集合名称 | 可选,业务场景中无需携带自定义维度和自定义指标时,customDimMetrics不传即可 |
customDimMetrics中需传递的自定义参数说明:
参数 | 类型 | 说明 | 是否必填 |
---|---|---|---|
cd1~25 | String | 自定义维度,最多25个 | 选填 |
cm1~25 | String类型的数值 | 自定义指标,最多25个 | 选填 |
4.2.2. 基础事件
说明:
a. 在需要统计与用户交互动作的按钮或其他控件的点击方法中,添加基础事件埋点;
b. 如需在基础事件数据上报时,需携带更多的信息,可使用自定义维度和自定义指标。【具体使用规则见文档: 4.2.5 自定义维度和指标的使用方法 】
接口示例:
<Button
title="基础事件"
onPress={() => { RNMzanalyticsYumc.trackEvent({
"ec": "领取奖励",
"ea": "Click",
"el": "任务箱领取奖励",
"ev":"0",
"CustomDimMetrics": {
"cd3": "首次登陆任务箱", //需统计的自定义维度名称,如任务箱名称
"cm2": "2" //需统计的自定义指标数值,如打开的任务箱个数,共2个
}
}); }}
/>
参数说明:
参数 | 类型 | 说明 | 是否必填 |
---|---|---|---|
ec | String | 事件分类 | 必填 |
ea | String | 事件动作 | 必填 |
el | String | 事件标签 | 选填 |
ev | String类型的数值 | 事件价值 | 选填 |
customDimMetrics | Map | 自定义维度和自定义指标集合名称 | 可选,没有自定义维度和自定义指标时,customDimMetrics不传即可 |
customDimMetrics中需传递的自定义参数说明:
参数 | 类型 | 说明 | 是否必填 |
---|---|---|---|
cd1~25 | String | 自定义维度,最多25个 | 选填 |
cm1~25 | String类型的数值 | 自定义指标,最多25个 | 选填 |
4.2.3. 高级事件
说明:
a. 如需统计更多维度、指标的用户交互事件,用户可使用高级事件埋点设定所要统计的维度、指标;
b. 如需在高级事件数据上报时,需携带更多的信息,可使用自定义维度和自定义指标。【具体使用规则见文档中:4.2.5 自定义维度和指标的使用方法 】
接口示例:
<Button
title="高级事件"
onPress={() => { RNMzanalyticsYumc.trackSiteCustomEvent({
"CustomEvent": {
"caid": "1",
"cal1": "北京",
"cal2": "朝阳区",
"cav1": "1"
},
"CustomDimMetrics": {
"cd1": "ID88888", //需统计的自定义维度,如触发注册事件的用户Id
"cm1": "1" //需统计的自定义指标,如触发高级事件的用户数1
}
}); }}
/>
参数说明:
参数 | 类型 | 说明 | 是否必填 |
---|---|---|---|
customEvent | Map | 包含高级事件id、以及高级事件维度、指标数均以实际在系统中创建的⾼级事件为准 | 必填 |
customDimMetrics | Map | 自定义维度和自定义指标集合名称 | 可选,没有自定义维度和自定义指标时,customDimMetrics可不传 |
CustomEvent中需传递的高级事件参数说明:
参数 | 类型 | 说明 | 是否必填 |
---|---|---|---|
caid | String类型的数值 | 高级事件id | 必填,需在秒针分析系统中注册该事件 |
cal1~20 | String | 高级事件维度,最多20个 | 选填 |
cav1~20 | String类型的数值 | 高级事件指标,最多20个 | 选填 |
customDimMetrics中需传递的自定义参数说明:
参数 | 类型 | 说明 | 是否必填 |
---|---|---|---|
cd1~25 | String | 自定义维度,最多25个 | 选填 |
cm1~25 | String类型的数值 | 自定义指标,最多25个 | 选填 |
4.2.4. 获取访客id
说明:访客id是秒针分析标识唯一用户的id,该接口可用于获取秒针分析SDK生成的cid。
示例代码:
<Button
title="获取cid"
onPress={() => { Alert.alert(RNMzanalyticsYumc.getCid())}}
/>
4.2.5 自定义维度和指标的使用方法(可选埋点)
在页面浏览、基础事件、 高级事件数据上报时,需额外携带其他信息时,则可以使用秒针分析提供的自定义维度和自定义指标功能。使用自定义维度和自定义指标需遵循如下规则:
a. 在同一个事件中需携带不同的自定义维度和自定义指标时,各个自定义维度和自定义指标的key不应相同,否则会造成相同key对应的value被覆盖的情况,正确的使用方法是分别使用key为cd1、cd2...cd25来存储不同的维度名称,自定义指标同理。
举例1. 假设在app中存在页面名称为首页的页面,用户可在该页面领取任务奖励。
数据分析需求:当首页被打开后在页面浏览数据上报时,携带打开这个页面的用户账号id、昵称。
示例如下:
RNMzanalyticsYumc.trackPageView({
"dt": "首页",
"CustomDimMetrics": {
"cd1":"ID88888", //使用cd1 传入用户Id
"cd2": "小明机器人" //使用cd2 传入用户昵称
}
});
b. 不同事件上报不同的自定义维度和自定义指标时,各个自定义维度和自定义指标的key不应相同,若都使用同一个key,所有同key的自定义维度数据会和不同事件的数据关联在一起,造成运营分析困难。
举例2:假设在app的首页中用户可以在完成特定任务后,点击任务箱领取按钮获得奖励。
数据分析需求:用户既需要监听首页的浏览事件,在页面浏览数据上报时携带用户账号Id、昵称,也需要监听首页领取奖励按钮的点击事件,并同时上报已领取的任务箱名称和任务箱的个数。
示例如下:用户账号Id、昵称和任务箱名称采用不同的自定义维度key,自定义指标同理。
//页面埋点部分参考举例1的代码示例,下方仅提供按钮点击事件的埋点代码示例
RNMzanalyticsYumc.trackEvent({
"ec": "领取奖励",
"ea": "Click",
"el": "任务箱领取奖励",
"ev": "1",
"CustomDimMetrics": {
"cd3": "完成资料填写任务箱", //在cd1和cd2已存在时,应采用cd3等
"cm2": "2" // 任务箱的个数1
}
});