ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

【用户行为分析】-Java端埋点

2020-05-26 17:03:45  阅读:308  来源: 互联网

标签:properties Java 登录 用户 ID sa 埋点


需求

在Java后端登录处埋点,获取的事件属性包括:是否成功,登录方式以及神策预置属性。并进行用户ID的打通,使用神策接口把用户匿名ID和登录ID进行打通。

什么是用户ID打通?

用户有时会再注册或登录之前,会在页面进行一些操作,此时会获取一个匿名ID(设备ID或其他)作为用户标识;在用户登录后,会用登录ID作为用户标识;在用户ID打通后,也就是匿名ID和登录ID成功关联后,这两个Id发生的所有行为都会被认为是同一个用户实体发生的,再进行用户相关分析的时候就会算作一个用户的行为。

事件设计

作为一个开发人员,在开始埋点之前,需要一份详细的事件设计表,这样才可以根据真实的需求来操作。而事件设计表从哪里来呢?这就需要运营和产品人员的通力合作了。

什么是事件?

 

 以上是登录后端埋点的样例,从图中我们可以了解到,事件就是我们埋点的操作对象(比如登录时埋点,或者前端点击时埋点)。事件设计需要定义操作动作(确定触发时机,根据触发时机定义事件名),确定事件属性(我们需要获取的数据)和属性值(属性的值以什么形式显示)。

实现

引入SDK

如果是maven项目,可以直接在pom.xml文件中引入依赖信息即可。

<dependency>
    <groupId>com.sensorsdata.analytics.javasdk</groupId>
    <artifactId>SensorsAnalyticsSDK</artifactId>
    <version>3.1.6</version>
  </dependency>

初始化SDK

使用ConcurrentLoggingConsumer初始化SDK,这样就可以将数据输出到服务器,日志文件每天一个,触发一次事件,就会在日志文件中多一个json格式的数据。

服务器配置信息格式有一定的规定,可参考神策官网:https://www.sensorsdata.cn/manual/java_sdk.html

       SensorsAnalytics sa = null;
      try {
         sa = new SensorsAnalytics(
//             new SensorsAnalytics.ConcurrentLoggingConsumer("F:/学习资料/log/access.log"));
               new SensorsAnalytics.ConcurrentLoggingConsumer("http://tuiying.datasink.sensorsdata.cn/sa?project=default_yhtoc&token=edd25955ac38cd3d"));
      } catch (IOException e) {
         e.printStackTrace();
      }

如果想目睹日志文件的风采,可以将数据接收地址换成自己本地的文件路径,并调用flush()方法强制落盘。这样就可以将日志文件输出到自己的本地。

登录处埋点

try{
   //将设备号作为用户匿名Id
   String anonymousId = memberVo.getDeviceCode();
   sa.track(anonymousId, false, "login");
   // 用获取户登录id
   Object object = result.getResultData();
   Map entry = (Map)object;
   String registerId = (String) entry.get("memberCode");
   // 用户注册或者登录,将用户真实 ID 与 匿名 ID 关联
   sa.trackSignUp(registerId, anonymousId);

   Map<String, Object> properties = new HashMap<String, Object>();
   //登录是否成功
   if(result.getResultCode().equals("0")){
      properties.put("isSuccess", true);
   } else{
      properties.put("isSuccess", false);
   }
   //登录类型
   if(memberVo.getPhoneType() == "0"){
      properties.put("loginType", "android");
   } else{
      properties.put("loginType", "ios");
   }
   //调用接口track,用于记录事件,将用户id,事件名称,以及获取到的属性传入
   sa.track(registerId , true, "login", properties);
}catch(InvalidArgumentException e){
   e.printStackTrace();
}
    // 程序结束前,停止神策分析 SDK 所有服务
    sa.shutdown();

成功演示

 

 埋点实现后,我们就可以在神策平台结合指定的埋点主题进行相应的数据分析,而且可以对同一主题收集到的数据进行多类型,多维度的解析。

 

————————————————
版权声明:本文为CSDN博主「木子松的猫」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ldb987/java/article/details/84291972

 

标签:properties,Java,登录,用户,ID,sa,埋点
来源: https://www.cnblogs.com/it-deepinmind/p/12966611.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有