在项目根目录 build.gradle
文件的 allprojects.repositories
块中,添加maven 库地址 maven { url "https://mvn.getui.com/nexus/content/repositories/releases/"}
,如下所示:
buildscript {
repositories {
mavenCentral()
google()
}
dependencies {
......
}
}
allprojects {
repositories {
mavenCentral()
google()
maven {
url "https://mvn.getui.com/nexus/content/repositories/releases/"
}
}
}
app/build.gradle
文件的 dependencies
块中添加SDK依赖。dependencies {
//用户运营sdk
implementation 'com.getui:gsido:1.4.8.0'
//个推核心组件
implementation 'com.getui:gtc:3.2.17.0'
}
app/build.gradle
文件中的android.defaultConfig
下添加 manifestPlaceholders
,配置相关的应用参数。android {
defaultConfig {
manifestPlaceholders = [
//开发者中心--应用管理--应用信息 中的appId
GETUI_APPID : "${appId}",
//应用发布的渠道(如华为应用市场、小米应用市场、应用宝)
//若为纯数字字符串,则不能超过int表示的范围
GT_INSTALL_CHANNEL: "${installChannel}"
]
}
......
}
为了生成用户画像,例如地理位置相关的标签和特征,为精细化运营提供必要数据支撑。用户运营服务需要向您申请以下权限:
<!-- 网络权限 -->
<uses-permission android:name="android.permission.INTERNET"/>
<!-- sd卡读取权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- 获取设备标识 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<!-- 获取wifi状态 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<!-- 网络状态获取 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 应用列表获取 -->
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
<!-- 地理位置获取 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
默认开关是关闭的,可以通过以下代码开启开发者模式,该模式下会输出 SDK 相关日志。
GsConfig.setDebugEnable(true);
在您应用的启动入口调用SDK的初始化代码:注意:此时SDK功能尚未启用,gtcid暂未生成
GsManager.getInstance().preInit(context);
注意事项:为了保证 SDK 服务稳定,开发者需在 App《隐私政策》的 “与授权合作伙伴共享”条款中,将 个推的用户隐私政策 加入其中。并确保在 App 首次运行时通过明显方式提示终端用户阅读您的 App《隐私政策》,取得终端用户的合法授权后,再初始化 SDK ,详情可查看:个推合规指南 。
GsManager.getInstance().init(Context context)
进行gtcid的注册。初始化前调用,接口设置的渠道优先,应用发布的渠道(如华为应用市场、小米应用市场、应用宝)。若为纯数字字符串,则不能超过int
表示的范围。
GsConfig.setInstallChannel(channel);
调用 init
初始化后,您可通过下面的回调方法获取gtcid,gtcid可用于用户画像标签的查询:
GsManager.getInstance().setGtcIdCallback(new IGtcIdCallback() {
@Override
public void onGetGtcId(String gtcId) {
Log.d(TAG, "onGetGtcId: " + gtcId);
}
});
应用时长统计用于统计应用启动次数和真实活跃时长,初始化SDK 后不需要开发者调用额外的接口。
其中 Android 平台一次完整的启动包括如下两种情况:
1.从启动应用到关闭应用;
2.从启动应用到应用退至后台,且在后台时间超过 30秒(该值可通过下面的方法修改,单位毫秒);
GsConfig.setSessionTimeoutMillis(long time);
注意:GsConfig 配置类需要在 SDK 初始化之前配置。
自定义事件可以统计某些用户自定义埋点的发生时间以及次数,例如广告点击、短信数量等。
通常由 event_id
作为一个事件的唯一标识。
自定义事件分为:
每类事件都支持使用 jsonObject
参数类型,其中 key
必须为字符串类型,value
目前支持类型有 String
、 Number
、 Boolean
、 Date
。
注意事项:
1.自定义参数设置后,类型以第一次上报为准。如果类型不一致,则数据会上报失败。如果遇到问题,请联系技术支持。
2.不管是事件的唯一标识event_id
还是属性里的key
类型都为字符串类型,且不能出现空格、回车等特殊字符,也不可以$
开头($
开头的是SDK的预置属性和预置属性,具体见文末)。
在事件触发时调用次数统计方法,SDK 会根据事件 ID ,统计该事件的触发次数。
GsManager.getInstance().onEvent(String eventId, JSONObject jsonObject)
参数:
eventId
:自定义事件 Id ,用于标识事件的唯一jsonObject
: key-value
,自定义属性,用于扩展统计需求示例代码
public void onClick(View v) {
// jsonObject 可不传
try {
JSONObject jsonObject = new JSONObject();
jsonObject.put("buttonId", "onclick");
GsManager.getInstance().onEvent("eventId", jsonObject);
} catch (JSONException e) {
e.printStackTrace();
}
}
设置⽤户属性,用于记录用户基本固定不变的属性,例如性别、年龄、注册时间、注册地域、注册渠道等。
GsManager.getInstance().setProfile(JSONObject jsonObject)
参数:
jsonObject
: key-value
,自定义用户属性,用于扩展统计需求示例代码
public void onClick(View v) {
try {
JSONObject jsonObject = new JSONObject();
jsonObject.put("sex","男");
jsonObject.put("age", 22);
GsManager.getInstance().setProfile(jsonObject);
} catch (JSONException e) {
e.printStackTrace();
}
}
预置事件主要应用于系统中所有事件相关功能,如app_start 可在事件分析、用户群等模块选用,进行对应的分析。
预置事件由SDK自动采集填充,开发者不可修改。
事件名称 | 描述 | 说明 |
---|---|---|
sys_$app_start |
启动app | 不区分前后台 |
sys_$foreground_start |
打开app | 仅前台 |
预置属性中包含日常分析常用的一些维度,会由SDK自动采集,系统的看板等功能中会用到这些预置属性用于筛选分析。
统计事件的预置属性由sdk自动采集填充,开发者不可以修改:
字段名称 | 类型 | 说明 |
---|---|---|
sys_$wifi |
布尔值 | 是否使用wifi |
sys_$carrier |
字符串 | 运营商名称 |
sys_$network_type |
字符串 | 网络类型 |
sys_$app_version |
字符串 | 应用版本 |
sys_$lib_version |
字符串 | SDK版本 |
sys_$manufacturer |
字符串 | 设备制造商 |
sys_$model |
字符串 | 设备型号 |
sys_$os |
字符串 | 操作系统 |
sys_$os_version |
字符串 | 操作系统版本 |
sys_$package_name |
字符串 | 应用包名 |
用户属性事件的预置属性分为两部分。一部分是由SDK自动采集填充的,如下表:
字段名称 | 类型 | 说明 |
---|---|---|
sys_$app_version |
字符串 | 应用版本 |
sys_$channelId |
字符串 | 渠道 |
sys_$lib_version |
字符串 | SDK版本 |
sys_$manufacturer |
字符串 | 设备制造商 |
sys_$model |
字符串 | 设备型号 |
sys_$os |
字符串 | 操作系统 |
sys_$os_version |
字符串 | 操作系统版本 |
sys_$screen_width |
数值 | 屏幕宽度 |
sys_$screen_height |
数值 | 屏幕高度 |
sys_$firstvisittime |
日期 | 首次访问时间 |
sys_$package_name |
字符串 | 应用包名 |
另一部分需由用户手动设置,如下表:
字段名称 | 类型 | 说明 |
---|---|---|
sys_$country |
字符串 | 国家 |
sys_$city |
字符串 | 城市 |
sys_$province |
字符串 | 省份 |
sys_$name |
字符串 | 姓名 |
sys_$sex |
字符串 | 性别 |
sys_$phone |
字符串 | 手机号 |
sys_$email |
字符串 | 邮箱 |
sys_$birthday |
日期 | 出生日期 |
sys_$signup_time |
日期 | 注册时间 |
以上文档对您是否有帮助?