Android 移动应用接入

一、配置环境

1、前提条件

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

2、引入Android sdk

 下载最新安卓 SDK

  • 将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();

 NzSdkConfiguration hwUatOptions = new NzSdkConfiguration()

 /**

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

 */

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

/**

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

 */

.setWriteKey("MTUtZjc4YzVhODgtNTA0********QtMjEwMjg2MDk0NDQz")

/**

 * 每次批量上报数据的条数。范围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.NETWORK_CONNECT);

  NzAnalyticsSDK.setup(this.getApplication(), hwUatOptions);

 }

二、开发调用

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

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

// 设置用户信息

NzProfile profile = new NzProfile();

            profile.setName("zhangsan");

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

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

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

            profile.setPropValue("attr1", "高级会员");

            profile.setPropValue("attr13", "89");

            profile.setPropValue("attr16", "女装");

            profile.setPropValue("attr49", "二级");

            NzAnalyticsSDK.getInstance().setProfile(profile);

 // 设置用户身份

      List<NzIdentity> identities = new ArrayList<>();

            NzIdentity externalId = new NzIdentity("externalId","aaaa");   //aaa 是获取到值 用户的唯一值
            NzIdentity openId = new NzIdentity("wechat.openId","bbb"); //bbb 用户的公众号openid 非必填
            NzIdentity union = new NzIdentity("wechat.unionId","ccc");  //ccc 用户的unionid 非必填

          identities.add(externalId);
            identities.add(openId);
            identities.add(union);
            NzAnalyticsSDK.getInstance().addIdentities(identities);


存在用户切换登录的场景 需要 清理缓存

NzAnalyticsSDK.getInstance().cleanIdentities();




2、用户自定义事件

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

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

NzEvent event = new NzEvent();
event.setEvent("add_to_wishlist");
event.setPropValue("product_id", "p_0001");
event.setPropValue("s_pageName", activity.getClass().getCanonicalName());

NzAnalyticsSDK.getInstance().trackEvent(event);

三 验证

SDK配置验证

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

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

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

用户信息

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

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

自定义事件

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

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