Android个推·用户运营SDK集成

Android个推·用户运营SDK集成

参数配置

配置Maven仓库

在项目根目录 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.3.5.0'
      //个推核心组件
      implementation 'com.getui:gtc:3.2.1.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的初始化代码:

GsManager.getInstance().init(context);

注意事项:为了保证 SDK 服务稳定,开发者需在 App《隐私政策》的 “与授权合作伙伴共享”条款中,将 个推的用户隐私政策 加入其中。并确保在 App 首次运行时通过明显方式提示终端用户阅读您的 App《隐私政策》,取得终端用户的合法授权后,再初始化 SDK ,详情可查看:个推合规指南

获取gtcid

您可通过下面的方法获取gtcid,gtcid可用于用户画像标签的查询:

GsManager.getInstance().getGtcid(context);

应用活跃时长统计

应用时长统计用于统计应用启动次数和真实活跃时长,初始化SDK 后不需要开发者调用额外的接口。

其中 Android 平台一次完整的启动包括如下两种情况:

1.从启动应用到关闭应用;

2.从启动应用到应用退至后台,且在后台时间超过 30秒(该值可通过下面的方法修改,单位毫秒);

GsConfig.setSessionTimoutMillis(long time);

注意:GsConfig 配置类需要在 SDK 初始化之前配置。

自定义事件

自定义事件可以统计某些用户自定义埋点的发生时间以及次数,例如广告点击、短信数量等。

通常由 event_id 作为一个事件的唯一标识。

自定义事件分为:

  1. 统计事件:
  • 次数统计事件:统计指定行为被触发的次数。

  • 时长统计事件:统计指定行为消耗的时间,单位毫秒。需要 eventBegineventEnd 接口成对使用才可生效。

  1. 用户属性事件:统计对应用户的相关信息。

每类事件都支持使用 jsonObject 参数类型,其中 key 必须为字符串类型,value 目前支持类型有 StringNumberBooleanDate

注意事项:
1.自定义参数设置后,类型以第一次上报为准。如果类型不一致,则数据会上报失败。如果遇到问题,请联系技术支持。
2.不管是事件的唯一标识event_id还是属性里的key 类型都为字符串类型,且不能出现空格、回车等特殊字符,也不可以$开头($开头的是SDK的预置属性和预置属性,具体见文末)。

次数统计事件

在事件触发时调用次数统计方法,SDK 会根据事件 ID ,统计该事件的触发次数。

GsManager.getInstance().onEvent(String eventId, JSONObject jsonObject)
GsManager.getInstance().onEvent(String eventId, JSONObject jsonObject, ext)

参数:

  • eventId :自定义事件 Id ,用于标识事件的唯一
  • jsonObject : key-value ,自定义属性,用于扩展统计需求
  • ext: 用户自定义扩展字段,不纳入统计

示例代码

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().onBeginEvent(String eventId)
GsManager.getInstance().onBeginEvent(String eventId, JSONObject jsonObject)
//事件结束
GsManager.getInstance().onEndEvent(String eventId, JSONObject jsonObject)
GsManager.getInstance().onEndEvent(String eventId, JSONObject jsonObject, String ext)

参数:

  • eventId :自定义事件 Id ,用于标识事件的唯一,开始和结束点的 eventId 必须一致计时事件才会生效
  • jsonObject : key-value ,自定义属性,用于扩展统计需求,结束时传递的jsonObject会覆盖开始时传递的jsonObject
  • ext: 用户自定义扩展字段,不纳入统计

示例代码

public void onClick(View v) {
    // jsonObject 可不传
        try {
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("type", "download");
            GsManager.getInstance().onBeginEvent("eventId");
            GsManager.getInstance().onEndEvent("eventId", jsonObject);
        } catch (JSONException e) {
            e.printStackTrace();
        }
}
用户属性事件

设置⽤户属性,用于记录用户基本固定不变的属性,例如性别、年龄、注册时间、注册地域、注册渠道等。

GsManager.getInstance().setProfile(JSONObject jsonObject)
GsManager.getInstance().setProfile(JSONObject jsonObject, String ext)

参数:

  • jsonObject : key-value ,自定义用户属性,用于扩展统计需求
  • ext: 用户自定义扩展字段,不纳入统计

示例代码

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_$duration 数值 计时事件时长
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 日期 注册时间

文档中心搜索

技术
咨询

微信扫一扫

随时联系技术支持

在线
咨询