首页 > 用户手册 > 开发者文档 > 集成Android SDK

集成Android SDK

1.集成SDK的准备工作

1.1获取AppKey

集成数极客SDK之前,您首先需要到数极客官网(https://www.shujike.com)注册并且添加新应用,获得Appkey

1.2 下载相关SDK(最低支持android 4.0 (14)版本)

点击下载SDK

2.集成SDK步骤

以下为lib最新版本:

shujike-android-sdk-3.0.1.aar
shujike-agent-3.0.1.jar

2.1 导入shujike-android-sdk-x.x.x.aar

将下载好的shujike-android-sdk-x.x.x.aar包拷贝到app目录下的libs目录中。

2.2导入 shujike-agent-x.x.x.jar

在项目下新建一个名为plugin文件夹(名字可以自定义,但是要修改相应的build.gradle文件),将这个jar包拷贝进去。

2.3 修改项目目录下的build.gradle文件

为shujike-agent-x.x.x.jar 添加依赖。

buildscript {

    ......
    ......

    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'
        //添加依赖
        classpath fileTree(dir: 'plugin', include: '*.jar')
    }
}

2.4 修改app目录下的build.gradle文件

启用插件,导入shujike-android-sdk-x.x.x.aar包

apply plugin: 'com.android.application'
//启用插件
apply plugin: 'com.shujike.agent'

android {
    compileSdkVersion 26
    buildToolsVersion '27.0.3'
    defaultConfig {
        applicationId "demo.sdk.android.com.shujike.jcenter.shujike_android_sdk_demo"
        minSdkVersion 19
        targetSdkVersion 26
    }
    ......
    ......

}
//导入sdk包  
repositories{
    flatDir {
        dirs 'libs'
    }
}
dependencies {
    //注意修改aar文件名
    implementation(name: 'shujike-android-sdk-3.0.1', ext: 'aar')
}

2.5 修改app目录下的build.gradle文件

scheme内信息为 “sjk.”+appKey 参考以下代码:

//启动圈选功能需要的
<intent-filter>
    <data android:scheme="sjk.1c7be246d5a051fb" />
    <action android:name="android.intent.action.VIEW" />

    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
</intent-filter>


<meta-data
    android:name="SHUJIKE_APPKEY"
    android:value="应用的appKey" />


<meta-data
    android:name="SHUJIKE_CHANNEL"
    android:value="应用的渠道ID" />

2.6 在app的Application中初始化SDK

public class MyApplication extends Application {
    @Override
    public void onCreate() {
    SjkAgent.setDebugEnabled(true);//正式发版时请关闭debug模式
        SjkAgent.init(this);
        super.onCreate();
    }
}

到此SDK已经初步集成完毕。(如最终测试无法收到数据,请查看 9.注意事项)

2.7 验证SDK集成log

2.7.1 集成SDK 成功后控制台打印 以下logInfo

I/SjkLog: com.shujike.analysis.SjkAgent: set debug module success!
I/SjkLog: com.shujike.analysis.SjkAgent: shujike  sdk initial success!
I/SjkLog: com.shujike.analysis.AopInterceptor: agentOnResumeEvent -- sjk auto collect data  is true 

2.7.2 点击按钮之后打印

I/SjkLog: com.shujike.analysis.AopInterceptor : agentDispatchTouchEvent -- sjk auto collect data  is true  

3.自定义事件统计

3.1自定义事件接口:

在需要统计事件的位置加入以下代码。

SjkAgent.postEvent(SampleActivity.this, "自定义事件id", “事件属性的Map”);

3.2自定义事件id获得:

使用自定义事件功能请先登录数极客官网(https://www.shujike.com), “自定义设置->自定义事件” 页面中添加相应的事件id,然后服务器才会对相应的事件请求进行处理。 请在数极客SDK初始化(SjkAgent.init(this))之后调用。

例:

HashMap<String, String> eventAttMap = new HashMap<String, String>();
eventAttMap.put("m_Q1", "1"); 
eventAttMap.put("m_Q2", "2");
eventAttMap.put("d_Q3", "3");
SjkAgent.postEvent(SampleActivity.this, "yyq", eventAttMap);

特别提醒:value 为自定义内容,根据统计需求填写,values 是用来做运算的,一定要设定为数字。 例如您的事件属性是“点击次数” 那么您的value 就应该传 “1”,如果您传的是“2” 在统计事件点击次数时我们会根据value做sum,导致最终统计出的数据是真实数据的2倍。 例如您的事件属性定义为“商品价格” 你的商品价格可能是 1元,3元,10.1元,那么value 应该传 1,3,10.1

3.3事件统计结果可在数极客后台查看。

4.自定义属性统计

4.1自定义属性接口:

设置单个属性:

SjkAgent.setAttribute(SampleActivity.this, "自定义的属性id", "2");

设置多个属性:

HashMap<String, String> attributeMap = new HashMap<>();
attributeMap.put("自定义的属性id", "100");
attributeMap.put("自定义的属性id", "101");
attributeMap.put("自定义的属性id", "102");
SjkAgent.setAttribute(SampleActivity.this, attributeMap);

您可以通过添加自定义属性,进行细分分析

4.2自定义属性id获得:

使用自定义属性功能请先登录数极客官网 (www.shujike.com), “自定义设置->自定义属性” 页面中添加相应的事件id,然后服务器才会对相应的事件请求进行处理。 请在数极客SDK初始化(SjkAgent.init(this))之后调用。

例:

SjkAgent.setAttribute(SampleActivity.this, "vip", "2");

属性被定义以后所有的事件都会带上相关属性,当属性值发生改变时请重新设置属性值。

5.绑定用户信息

例:

    UserBean userBean = new UserBean();
    userBean.setUserId("123456");
    userBean.setUserRegisterChannel("shujike");
    userBean.setUserSex("男");
    userBean.setUserAge("25");
    userBean.setUserType("管理");
    userBean.setUserLevel("5级");
    userBean.setUserProvince("天津");
    userBean.setUserCity("东丽区");
    SjkAgent.bindUserInfo(SampleActivity.this, userBean);

6.调试模式

在SDK初始化时可以设置debug模式,此模式下可查看SDK log 。代码如下

SjkAgent.setDebugEnabled(true);

SjkAgent.init(this);

7.采集Error数据

自动采集奔溃日志,无需特殊配置。

登录数极客官网后台查看
例如:

8.实现APP与H5页面数据打通

8.1 为什么要实现APP与H5页面数据打通
APP嵌套H5混合开发在互联网APP中非常多见。但对有h5嵌套的APP端用户行为分析时,传统用户行为分析平台经常会出现“断档”的情况:
1.当用户通过APP端跳转到h5页面,APP端采集的用户属性数据不能迁移到h5,导致数据缺失,原生APP只起到了一个浏览器的作用。
2.APP端贡献给h5的流量,因数据未与APP打通共享,导致APP数据源从根本上出现缺失,造成一定程度上分析决策偏差。
为了更好的解决APP与h5贯通的问题,数极客研发出APP与h5完全贯通的移动端SDK,顺利解决该问题。
8.2 场景
某产品首页上线活动,有多少用户点击跳转到h5页面,有多少用户参加活动,有多少用户真正完成目标事件。在APP与h5贯通的情况下即可以按照用户的设备类型,下载渠道等APP端的用户属性细分进行多维度的细分,研究不同维度活动转化路径的效果的关键影响因素,复盘活动效果,提升活动转化率。

8.3 如果您在App内嵌入了WebView,请确保在第一次调用WebView.loadUrl()之前调用以下方法:

SjkAgent.trackWebView(this, mWebView);

9.注意事项

9.1 如果您启用了代码混淆,请在您的 proguard-rules.pro 中添加以下代码:

    -keep class com.shujike.analysis.** {
        *;
    }
    -dontwarn com.shujike.analysis.**
-keepnames class * extends android.app.Fragment
-keepnames class * extends android.support.v4.app.Fragment

9.2 集成完毕后请clean project 之后再运行。

9.3 如遇无法启动圈选功能,请确保应用已允许悬浮窗权限。在设置页面允许悬浮窗权限。

9.4 无埋点SDK不支持 Android Studio 的 instant run 特性,使用前需要关闭该特性。

9.5 扫码圈选时请使用浏览器,微信和支付宝不支持打开应用。

10.技术支持

  1. 查看集成Demo

  2. 发现问题可联系我公司客服或技术人员进行解答。

    sjkAgent.postEvent("click", eventAttMap, "", TpType.ANDROID);

results matching ""

    No results matching ""