Android 移动应用接入

一、配置环境

1、前提条件

系统中创建自定义渠道 绑定Android 应用,绑定之后 提供 write key 给相应的开发。

2、引入Android sdk

 下载最新安卓 SDK-1.1.0

  • 将aar复制到您的安卓项目的Libs中
  • 在主项目app文件夹下的gradle中的android中添加如下代码

repositories{

        flatDir {

            dirs 'libs'

        }

}

     3.在dependencies中添加依赖的代码:

// implementation(name: 'aar包的名字', ext: 'aar')

implementation(name: 'nz_analytics', ext: 'aar')


3、初始化sdk

   

在程序的入口 Application 的 onCreate() 中调用NzAnalyticicsSDK.sharedInstance() 初始化 SDK

public class App extends Application {

 @Override

 public void onCreate() {

 super.onCreate();

NzOptions hwUatOptions = new NzOptions.Builder()

 /**

  * 接收数据服务器地址,比如https://cdp.linkflowtech.com/ 私有化环境是

 */

 .setEndpoint("https://cdp.linkflowtech.com/")

/**

 * writeKey: 在系统中自定义渠道创建应用后,在“移动应用”列表页面里查看writeKey

 */

.setWriteKey("MTUtZjc4YzVhODgtN********LTk0MWQtMjEwMjg2MDk0NDQz")

/**

 * 每次批量上报数据的条数。范围50-200,默认是200。

 */

 .setFlushBulkSize(100)

/**

 * 定时批量上报数据的时间间。范围30-300,默认是60。单位是秒。

 */  

 .setFlushInterval(5)

/**

 * SDK缓存的最大事件条数。范围1000-5000,默认1000。

 */  

 .setMaxQueueSize(50)

/**

* 自动追踪ViewSreen显示。默认值是false。

 */  

 .setAutoTrackViewScreenHide(true)

/**

* 是否是debug mode。默认是false。

 */  

 .setDebugMode(false)

/**

*指定渠道身份

*/

.setChannelIdType("externalId")

/**

 * “WIFI_ONLY”:只在WIFI的时候上传数据;“NETWORK_CONNECT”:有网络连接的时候就上传数据。

*/  

 .setNetworkPolicy(NzOptions.NetWorkPolicy.WIFI_ONLY).create();

 NzAnalyticicsSDK.sharedInstance().initialSDK(this, hwUatOptions);


 }


二、开发调用

1、获取用户信息,调用identify(识别用户)将用户信息上传

props 中的属性需要在系统中先创建 参照文档  自定义属性


NzIdentity identity = new NzIdentity();

            identity.setExternalId("349829"); // 唯一标识

            identity.setName("zhangsan");

            identity.setEmail("zhangsan@linkflowtech.com");

            identity.setPhone("151****90909");

            identity.setBirthday("1990-09-09");

            Map<String, Object> props = new HashMap<>();

            props.put("attr1", "高级会员");

            props.put("attr13", "89");

            props.put("attr16", "女装");

            props.put("attr49", "二级");

            identity.setProps(props);


 //如果希望与微信公众号粉丝合并,请添加以下代码

     NzIdentityWechatInfo * wechatInfo = [[NzIdentityWechatInfo  alloc] init];

     wechatInfo.openId = @"";   //公众号粉丝openId,非必填。openId+appId可以定位到在linkflow创建连接的公众号粉丝,会将此公众号粉丝与此用户合并。

     wechatInfo.appId = @"";    //公众号appId(该公众号必须已在Linkflow绑定),非必填。

     wechatInfo.unionId:非必填,公众号粉丝unionId,如果传入该值,会和系统中相同unionId的微信公众号和小程序用户进行合并

            identity.setWeChatInfo(wechatInfo);


    NzAnalyticsSDK.sharedInstance().identify(identity);

2、用户自定义事件

事件编码 以及事件属性 在系统中定义好之后导出提供

    在linkflow平台,配置事件元数据,此步骤可由甲方管理员或者拥有配置权限角色来配置。

NzEvent event = new NzEvent();


event.setEvent("UDE_89497");  //需要传入您创建的自定义事件的事件编码

event.setAttr1("704769368693");  //使用attr1-attr20来设置自定义事件的属性值

event.setAttr2("35.8");

event.setAttr3("1990-12-10"); // 日期类型支持格式 yyyy-MM-dd hh:mm:ss

event.setAttr4("true");       // boolean  支持  true  or false

event.setEventDate();//设置事件发生时间(13位时间戳,精确到毫秒),如果不设置,默认为系统当前时间


NzAnalyticsSDK.sharedInstance().trackEvent(event);

三 验证

SDK配置验证

SDK正常初始化之后,SDK 会自动记录基础事件:

  • 激活应用——当用户第一次安装启动移动应用时。
  • 启动应用——当用户将移动应用展示在前台。
  • 退出应用——当用户将移动应用退出到后台或杀掉应用进程。
  • 展示页面——当用户跳转移动应用新的页面时。
  • 点击元素——当用户在应用页面点击按钮时。

  登录linkflow连接云,在主页右侧时间轴查看是否收到这些事件。如正常收到,则SDK配置无问题;否则,可查看

用户信息

查找到该用户:通过联系人页面搜索姓名、昵称或者手机号,来查找到该用户。

查看用户画像:仔细核对页面左侧用户信息,确认是否与identify上传的数据一致。

自定义事件

查找到该联系人:通过联系人页面搜索姓名、昵称或者手机号,来查找到该用户。

查看时间轴:进入人物画像,点击时间轴,在时间轴中找到该事件,并仔细核对事件属性,确保事件属性与sendEvent发送的事件一致。