Android SDK
事件设计表
事件设计表一般是由数据分析工作台分析师和你们对接的同事,针对具体业务需求一起梳理的需要做埋点的 Excel 表,数据分析工作台分析分析系统宏观上有两张表,事件表(events)用于记录用户的行为事件,比如 App 启动,App 浏览页面;用户表(users)用于保存用户相关的一些信息,比如个人资料。
事件和用户属性设计(示例) | ||
---|---|---|
事件表(events) | 用户表(users) | |
事件名(带 $ 符号的为预置事件,开启全埋点自动采集) | 事件属性 | 用户属性 |
App 启动事件( $AppStart ) | 预置事件属性 | 邮箱( email ) |
App 退出事件( $AppEnd ) | 预置事件属性 | |
App 浏览页面事件( $AppViewScreen ) | 预置事件属性 | |
App 元素点击事件( $AppClick ) | 预置事件属性 | |
搜索事件( search ) | 搜索关键词( searchKeyWord ) |
集成 SDK
在AndroidStudio中导入SDK包
第一步:在project目录下的libs中,将提供的arr包拷贝进去.
第二步:在app目录下的build.gradle添加以下代码:
dependencies下增加或修改:
//将
implementation fileTree(dir: 'libs', include: ['*.jar'])
//改为
implementation fileTree(dir: 'libs', include: ['*.jar','*.aar'])
第三步:在AndroidManifest.xml中加入权限
<!-- 同步数据需要网络权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 获取网络状态 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 获取运营商信息 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
权限 | 用途 |
---|---|
INTERNET | 允许应用发送统计数据 |
ACCESS_NETWORK_STATE | 允许应用检测网络状态 |
READ_PHONE_STATE | 允许应用获取设备 IMEI |
ACCESS_WIFI_STATE | 允许应用获取 MAC 地址 |
初始化SDK
在Application的onCreate()方法中初始化SDK
//请联系卓尔数科
String ZALL_SERVER_URL = "数据接收地址";
// 初始化配置
SAConfigOptions saConfigOptions = new SAConfigOptions(SA_SERVER_URL);
// 开启全埋点
saConfigOptions.setAutoTrackEventType(SensorsAnalyticsAutoTrackEventType.APP_CLICK |
SensorsAnalyticsAutoTrackEventType.APP_START |
SensorsAnalyticsAutoTrackEventType.APP_END |
SensorsAnalyticsAutoTrackEventType.APP_VIEW_SCREEN)
//开启 Log
.enableLog(true);
/**
* 其他配置,如开启可视化全埋点
*/
// 需要在主线程初始化卓尔 SDK
SensorsDataAPI.startWithConfigOptions(this, saConfigOptions);
SDK基本配置
开启全埋点
SDK 可以自动采集一些用户行为,如 App 启动、退出、浏览页面、控件点击。初始化 SDK 时,通过 setAutoTrackEventType() 方法可以配置需要开启的全埋点类型:
// 可根据需求,自由组合
saConfigOptions.setAutoTrackEventType(SensorsAnalyticsAutoTrackEventType.APP_CLICK|
SensorsAnalyticsAutoTrackEventType.APP_START|
SensorsAnalyticsAutoTrackEventType.APP_END|
SensorsAnalyticsAutoTrackEventType.APP_VIEW_SCREEN);
App 启动、App 退出的全埋点事件采集要求系统最低版本为 API 14 (Android 4.0)。
埋点示例
用户登录
当用户注册成功或登录成功时,需要调用 SDK 的 login() 方法:
SensorsDataAPI.sharedInstance().login("登录 ID");
为了准确记录登录用户的行为信息,建议在以下时机各调用一次 login() 方法:
· 用户在注册成功时
· 用户登录成功时
· 已登录用户每次启动 App 时
追踪事件
可以通过 track()
方法追踪用户行为事件,并为事件添加自定义属性(触发的事件会存储到分析系统的 events 表中)。
try {
JSONObject properties = new JSONObject();
properties.put("searchKeyWord", "数据分析工作台");// 搜索关键字
// 记录搜索(search )事件
SensorsDataAPI.sharedInstance().track("search", properties);
} catch (JSONException e) {
e.printStackTrace();
}
设置用户属性
为了更准确地提供针对人群的分析服务,可以使用数据分析工作台 SDK 的 profileSet() 等方法设置用户属性,如年龄、性别等。用户可以在留存分析、分布分析等功能中,使用用户属性作为过滤条件,精确分析特定人群的指标。 (设置的用户属性会存储到数据分析工作台系统的 users 表中)
try {
JSONObject properties = new JSONObject();
// 设定用户性别属性 "Sex" 为 "Male"
properties.put("Sex", "Male");
// 设定用户年龄属性 "Age" 为 18
properties.put("Age", 18);
// 设定用户属性
SensorsDataAPI.sharedInstance().profileSet(properties);
} catch (JSONException e) {
e.printStackTrace();
}
设置事件公共属性
对于所有事件都需要添加的属性,初始化 SDK 后,可以通过 registerSuperProperties() 将属性注册为公共属性。设置方法如下:
// 将应用名称作为事件公共属性,后续所有 track() 追踪的事件都会自动带上 "AppName" 属性
try {
JSONObject properties = new JSONObject();
properties.put("AppName", getAppName(this));
SensorsDataAPI.sharedInstance().registerSuperProperties(properties);
} catch (JSONException e) {
e.printStackTrace();
}
公共属性会保存在 App 本地缓存中。可以通过 unregisterSuperProperty() 删除一个公共属性,或使用 clearSuperProperties() 删除所有已设置的事件公共属性。