埋点 SDK 集成

埋点 SDK 只自动采集用户访问事件,需要开发同学调用相应埋点 API 采集自定义事件。

埋点 SDK 的目标是使用第三方插件开发的 APP, 比如使用 Weex、APICloud 等,或不需要SDK自动采集页面浏览,元素点击行为数据的APP。

在一些第三方混合开发框架中,我们无法自动采集用户的点击事件和页面浏览事件等,需要依赖调用埋点事件或事件变量 API 来进行数据采集。

如果您的 APP 使用 Android 原生开发,并且希望自动采集用户的点击事件、页面浏览事件等无埋点事件, 请集成 Android 无埋点SDK 。

准备条件

  • 获取项目 ID,获取方法请参考"项目管理 > 项目概览 > 查看项目基本信息"。

  • 获取 URL Scheme,在 GrowingIO 平台创建对应的应用时会生成 URL Scheme。请参考创建应用

1. 添加跟踪代码

1. 添加依赖

2.9.0 版本后仓库从 JCenter 迁移到了 Maven Central, 请使用 mavenCentral() 替换 jcenter()

在 module 级别的 build.gradle 文件中添加vds-android-agent依赖、项目 ID 和 URL Scheme。

代码示例:

android {
    defaultConfig {
        resValue("string", "growingio_project_id", "您的项目ID")
        resValue("string", "growingio_url_scheme", "您的URL Scheme")
    }
}
dependencies {
    //GrowingIO 埋点 SDK
    implementation 'com.growingio.android:vds-android-agent:track-2.10.0'
}

2. 添加URL Scheme和应用权限

URL Scheme 是您在 GrowingIO 平台创建应用时生成的该应用的唯一标识。把 URL Scheme 添加到您的项目中,以便在使用圈选,Mobile Debugger,及深度链接功能时唤醒您的应用。

URL Scheme 只能对应一个应用。当应用的包名发生变化时,需再次创建一个应用使用对应的 URL Scheme

将 URLScheme 和应用权限添加到您的 AndroidManifest.xml 中的 LAUNCHER Activity 下。

代码示例:

请添加一整个 intent-filter 区块,并确保其中只有一个 data 字段。

3. SDK初始化配置

请将 GrowingIO.startWithConfiguration 加在您的 Application 的 onCreate 方法中。为使 App 合规,请参考合规步骤

代码示例**:**

  1. 其中GrowingIO.startWithConfiguration第一个参数为ApplicationContext对象。

  2. setChannel方法的参数定义了“自定义App渠道”这个维度的值,填写APP要发布的应用商店名称。

4. 代码混淆

如果你启用了混淆,请在你的proguard-rules.pro中加入如下代码:

如果您使用了AndRestGuard,请在白名单里添加GrowingIO。

代码示例:

5 设置SDK异常上传开关

SDK默认会开启收集SDK内部异常上报至服务端功能,方便开发更好的追踪SDK问题和完善SDK功能。如果您不希望收集SDK内部异常,或者和您的 crash 收集框架有冲突,您可以关闭该功能。

参数说明

参数名

类型

必填

默认值

说明

uploadExceptionEnable

boolean

true

开关SDK异常上传功能,true开启,false关闭

代码示例

2. 重要配置

1. 设置Debug模式

Debug 模式:在 Android Studio 中通过 Logcat 查看 GrowingIO SDK 打印的数据采集发送日志。

在SDK初始化代码中添加如下配置:

参数说明

参数

类型

是否必填

说明

debugMode

boolean

开启GrowingIO日志,true开始,默认false

示例代码

2. 设置Test模式

Test模式:实时发送数据,开启则不遵循移动网络状态下数据发送大小限制以及采集数据默认缓存 15 秒发送策略。为了方便开发者查看日志,一般和setDebugMode一起使用。

在SDK初始化代码中添加如下配置:

参数说明

参数
类型
是否必填
说明

testMode

boolean

开启测试模式,true开启,默认false

示例代码

3. 采集WebView页面数据

埋点 SDK 会采集H5页面的数据,需要增加如下特殊配置。同时H5页面需要手动集成 Hybrid SDK

SDK 2.9.0及以上版本支持该接口

示例代例

4. 设置内嵌H5页面锚点跳转触发页面浏览事件

GrowingIO SDK 默认情况下,不会把HashTag识别成页面 URL 的一部分,内嵌H5页面点击锚点页面跳转不计为页面浏览事件。

对于使用HashTag进行页面跳转的单页面网站应用来说,可以启用它来标识页面,HashTag的值也会记录在页面URL中。启用之后,如果用户点击页面中的锚点进行页面跳转,则发送一次页面浏览事件。

在SDK初始化代码中添加如下代码:

示例代码:

场景示例

点击 APP WebView 中“代码混淆”的锚点链接,URL 中#号后面为锚点,设置后 SDK 会发送页面浏览事件,它的链接为:​https://docs.growingio.com/docs/sdk-integration/android-sdk#4-dai-ma-hun-xiao

SDK发送对应采集数据:

5. 设置采集GPS数据

GrowingIO SDK 默认不采集地理位置信息。

如果您需要精确采集GPS数据,请在获取坐标后,调用接口设置位置信息。

参数说明

参数
类型
是否必传
说明

latitude

double

纬度

longitude

double

经度

示例代码

对应清除地理位置的方法为 clearGeoLocation();

6. 多进程支持

GrowingIO SDK默认不支持多进程使用, 但是可以通过confiuration进行设置支持多进程。

在SDK初始化代码中添加如下代码。

参数说明

参数
类型
是否必填
说明

isMultiprocess

boolean

开启多进程数据采集。默认值false

示例代码:

  1. 为什么不默认支持多进程?

跨进程通信是一个相对较慢的过程, 默认不开启, 可以满足大部分用户的要求。

2. 哪些进程需要初始化SDK?

需要使用SDK功能的进程需要初始化SDK, 所有的UI进程 + 部分Service进程(如果这些进程中涉及手动埋点)。

7. GDPR数据采集开关

SDK版本支持:2.3.2及以上

接口
含义

disableDataCollect()

遵守欧洲联盟出台的通用数据保护条例,用户不授权,不采集用户数据

enableDataCollect()

遵守欧洲联盟出台的通用数据保护条例,用户授权,采集用户数据

示例代码:

​GrowingIO SDK 提供有 Deep Link 回调接口,调用后获取回调参数,您需要根据回调参数和业务场景,添加对应的交互代码。

SDK 2.3.2 开始提供 DeepLink Callback 接口,在 SDK 2.8.4 支持 App Links ,为了保证接收自定义参数并进行自定义跳转这一流程的完整性,App Links 沿用此接口,并新增一个参数,下文将详细解释。

在 GrowingIO SDK 代码初始化部分配置。

返回值说明:

返回值名称
类型
说明

params

Map<String, String>

自定义参数,您自定义的键值对

status

int

DeeplinkCallback.SUCCESS :自定义参数获取成功; DeeplinkCallback.PARSE_ERROR :解析异常;DeeplinkCallback.ILLEGAL_URI :非法URI; DeeplinkCallback.NO_QUERY : 自定义参数为空

appAwakePassedTime

long

(SDK 2.8.4新增)App 唤醒到收到 GIO callback 的时间,单位毫秒。用以判断网络状态不好的情况,应用已经打开很久,才收到回调,开发人员决定是否收到参数后仍然跳转自定义的指定页面。

当返回值为 0 的时候,为 DeepLink 方式打开

示例代码

3. 自定义数据上传

除上述的用户行为数据(无埋点数据)之外,GrowingIO 还提供了多种 API 接口,供您上传一些自定义的数据指标及维度 ,请参考Android SDK API > 自定义数上传API

4. 创建应用

在 GrowingIO 平台应用创建页面继续完成应用创建的数据检测,检测成功后应用创建成功。

5. 验证SDK是否正常采集数据

了解 GrowingIO 平台数据采集类型请参考数据模型

GrowingIO 为您提供多种验证SDK是否正常采集数据的方式:

方式一:Mobile Debugger

方式二:在SDK中设置了Debug模式后,在IDE编译器控制台查看数据采集日志。

方式三:(推荐数据校验

最后更新于

这有帮助吗?