vue項目接神策事件埋點


代碼埋點可采用命令試埋點和聲明式埋點:

  命令式埋點:

click() {
  //....  這邊寫一些業務邏輯
  sendRequest(params); //
}

  可以發現,命令式埋點將埋點代碼侵入業務代碼,使得整體業務代碼變得繁瑣,且后續代碼愈加膨脹,難以維護;所以,我們需要將業務代碼和埋點代碼解耦,即聲明式埋點,從而提高埋點的效率及可維護性。

 

  聲明式埋點:

    聲明式埋點需要關注兩個問題:

    • 需要埋點的DOM節點
    • 所需攜帶的數據

  在vue框架中,不提倡直接遍歷操作DOM樹,因此,我們可以使用vue的自定義指令來實現埋點數據統計

  步驟1:引入神策的JavaScript SDK

  import sa from './sensorsdata.min.js';
  sa.init({
    server_url: '...', //數據接收地址
    heatmap: {
      //是否開啟點擊圖,默認 default 表示開啟,自動采集 $WebClick 事件,可以設置 'not_collect' 表示關閉
      clickmap:'default',
      //是否開啟觸達注意力圖,默認 default 表示開啟,自動 采集 $WebStay 事件,可以設置 'not_collect' 表示關閉
      scroll_notice_map:'not_collect'
    }
  });
  sa.login(user_id);
  sa.quick('autoTrack');

  步驟2:定義自定義指令

  //JS 代碼
  Vue.directive('clickbtn', {
    bind: (el, binding) => {
      el.addEventListener('tap', ()=>{
        const value = binding.value.buttonName; // 攜帶的數據
        sa.track('clickName', {
          buttonName: buttonName
        });
      });
    }
  });  
 
  // 自定義指令的使用
  <ul @tap="getNotice"  v-clickbtn="{buttonName: '公告'}">
    <li v-for="item in items" :key="item._id">
      <span class="title">{{item.title}}</span>
    </li>
  </ul>

 


免責聲明!

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



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