Giter Club home page Giter Club logo

xbosstrack-wechat's Introduction

xbosstrack 小程序自动埋点

使用方法

1、App.js文件引入资源

// 引入埋点SDK
import Tracker from './xbosstrack.min.js';
// 引入埋点配置信息,请自行参考tracks目录下埋点配置修改
import trackConfig from './tracks/index';

2、初始化

new Tracker({ tracks: trackConfig });

3、加入你的埋点信息

/**
 * path 页面路径
 * elementTracks 页面元素埋点
 * methodTracks 执行函数埋点
 * comMethodTracks: 执行组件内函数埋点
 */
const tracks = {
  path: 'pages/film/index',
  elementTracks: [
    {
      element: '.playing-item',
      dataKeys: ['imgUrls', 'playingFilms[$INDEX].filmId', 'playingFilms[0]'],
    },
    {
      element: '.more',
      dataKeys: ['imgUrls', 'playingFilms', '$DATASET.test'],
    }
  ],
  methodTracks: [
    {
      method: 'getBanner',
      dataKeys: ['imgUrls'],
    },
    {
      method: 'toBannerDetail',
      dataKeys: ['imgUrls'],
    },
  ],
  comMethodTracks: [
    {
      method: '_test1',
      dataKeys: ['name', '$DATASET.test'],
    },
  ],
};

4、在wxml最外层插入监听方法

<view catchtap='elementTracker'>
	<view></view>
</view>

打开控制台,查看是否成功收集

image

element: 触发埋点元素class

method:触发埋点函数

name:收集数据的key值

data:数据对应值

5、如果你要监听组件内元素

在elementTracks里加入

{
  element: '.page >>> .sub-component',
    dataKeys: ['name', '$DATASET.test']
}

.page表示包裹组件的元素class,或者你可以使用id或者任意选择器

.sub-component 表示监听组件内元素class名

核心还是利用了微信提供的选择器,可以参考文档

特殊前缀

$APP 表示读取App下定义的数据

$DATASET.xxx 表示获取点击元素,定义data-xxx 中的 xxx值

$INDEX 表示获取列表,当前点击元素的索引

需要获取$INDEX时,需要在wxml中加入data-index={{index}}标记

<view class='playing-item' data-index="{{index}}" wx:for='{{playingFilms}}'></view>

兼容插件模式

由于SDK会改写Page对象,如果使用了插件,微信会禁止改写,可以通过以下方式改造。

// 初始化插件模式
const tracker = new Tracker({ tracks: trackConfig, isUsingPlugin: true });

// 将原来的App包装
tracker.createApp({
    
})

// 将原Page包装
tracker.createPage({
    
})

// 将原Component包装
tracker.createComponent({
    
})

方案实现说明

小程序从手动埋点到自动埋点

DEMO

License

996 License

xbosstrack-wechat's People

Contributors

kevinzhang19870314 avatar zhengguorong avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

xbosstrack-wechat's Issues

弹层上报多个埋点

当点击弹层元素,这是寻找点击区域的元素时,会把弹层下面的元素上报!

Components的点击好像获取不到

VM3410:1 Component "pages/home/chlid/article-collect-view/article-cell/article-cell" does not have a method "elementTracker" to handle event "tap".都是这个警告

绑定冒泡事件后无法收集数据

例子:
页面路径: /pages/film/detail

  <view class='buy-now' bindtap='buyWrap'>
    <button catchtap='buy' animation="{{scaleAnim}}">立即购票</button>
  </view>

button 按钮阻止了冒泡事件就无法监听收集数据了,父元素 bindtap='buyWrap' 是正常的
希望最后阻止了冒泡事件也能正常监听收集数据

想获取函数内的e

博主你好,正在用您的小程序的自动埋点做参考,请问如果想获取函数的e的内容应该怎么办呀,求指教emm

4、在wxml最外层插入监听方法

每次每个页面都需要做这一步,是不是不符合全自动埋点,请问这一步可以封装在SDK里面吗?

<view catchtap='elementTracker'>
	<view></view>
</view>

绑定事件冒泡收集不到数据了

案例
页面路径: /pages/film/detail
代码:
立即购票

button按钮实现了冒泡事件 catchtap 然后无法收集监听数据了, 父元素 bindtap='buyWrap'是正常的

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.