【用戶行為分析】-Java端埋點


需求

在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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM