npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@syman/point-plugin

v1.1.11

Published

uniapp/mpvue 数据埋点

Downloads

8

Readme

1. @syman/point-plugin

小程序数据埋点

1.1. 说明

# 插件说明
这个插件是目前用于uniapp/mpvue的数据埋点使用的
# 安装
npm i @syman/point-plugin

1.2. 使用

  • 初始化注册

    • 在项目根目录App.js入口文件的onLaunch生命周期中里调用this.getwxObj_() 方法 分别传入uni(也可以是wx) appVersion param api 并且在App.js 的 onshow 生命周期里塞入需要打点的页面并调用打点方法
    onLaunch() {
    	    this.getwxObj_({
    	    	root:uni,   //root是小程序根对象
    	    	openStatus: true, //是否开启埋点上传(这个键也可以不传 默认为true)
    	    	appVersion:this.globalData.appVersion, //当前小程序版本号
    	    	param:{}, //接口需要额外加入的参数
    	    	shareCode:'',//分享人信息
    	    	userInfo:{}, //用户信息
    	    	api:this.$api.pointUpload, //埋点上传的接口 是个函数
    	    	success:function(res){  //初始化成功回调
    	    		console.log(res) 
    	    	}
    	    })		
    	},
    methods:{
      pointUpload(data){  //自己自定义封装的埋点上传方法
          console.log(data) 这个是埋点回调的数据
    
          下面可以写自己上传的接口代码
          uni.request({
            url: 'test.php', //仅为示例,并非真实的接口地址
            data, //上传给后台的data对象  注:如果需要额外加入自定义的参数可以在this.getwxObj_的param里加入
            header: {
              'content-type': 'application/json' // 默认值
            },
            success (res) {
              console.log(res)
            }
          })        
      }
    },
    	onShow: function() {
    		this.getRoute_([   //这个是加入的需要埋点的页面
    			'pages/index/index',
    			'pages/goods/index/index'
    		])
            this.$$startPoint()  //这个方法是统计小程序启动(包括冷启动丶热启动)的埋点
    	},    
  • 事件埋点

    • 如果需要事件埋点比如点击事件,直接调用this.$$eventPoint({desc:{label:'点击购买按钮':value:'1'}})
    this.$$eventPoint({
         type:0 // type为埋点类型 0为自定义类型 1.固定埋点规则 海报分享埋点(需要posterType有值) 2.点击转发分享
         posterType:1 //posterType为海报类型 type为1的时候可传,其他type类型则不传
         desc:{label:'点击购买按钮':value:'1'} //自定义事件类型 desc里面的结构可以自定义,type类型可以不传默认为0
    })

    示例埋点如下

    methods:{   //需要打点页面的methods
    	  click(){  
    		this.$$eventPoint({desc:{label:'点击购买按钮':value:'1'}})  //自定义埋点规则 支持desc内部键值对自定义
    		this.$$eventPoint({type:1,posterType:'1'}})  //固定埋点规则 type:1 海报分享埋点  posterType是海报类型 
    		this.$$eventPoint({type:2}})  //固定埋点规则 type:2 点击转发分享  
    	  }
      <!-- 建议开发者使用自定义埋点 -->
    },  
  • 埋点上报结构

//下面的为简化结构 具体的结构请查看git的wiki
{
  	pointType:'page' //page 是页面类型 event是点击事件类型 start 第一次启动
  	event: { //按钮点击事件(如果pointType是event的时候  当前对象有值 否则为null)
  	   desc: {label:'点击购买按钮',value:'1'}, // 点击事件为其他类型的时候取desc描述 支持自定义
  	   type: 0, //事件类型  0 其他点击事件类型 
  	   time: 1222 //当前点击的时间戳
  	},
  	route:'pages/page/index1', //当前路由
  	prevRoute:'pages/index/index', //上页路由
  	enterTime:34555, //进入时间
  	outTime:342342, //出来时间
  	stayTime:3200, //停留时间
  	params:{    //页面路由参数
  	   order_id:5637
  	},
  	scene:1001, //1001发现栏小程序主入口 1011扫描二维码 1012长按图片识别二维码 1013扫描手机相册中选取的二维码 1035 公众号自定义菜单 1036 App 分享消息卡片(仅第一次上报)
  	appId:'wx124324', // appId
  	sdkVersion:'1.0.0', //sdk版本号(打点版本号)
  	appVersion: '0.0.1', //小程序版本号
  	shareCode: 234, //分享人信息可不传
  	userInfo:{} //用户信息可自定义设置
  	systemInfo:{  //设备信息(设备全部信息 仅第一次上报)
  		brand:'', //设备品牌	
  		model:'', //设备型号
  		version:'',//微信版本号	
  		system:'', //操作系统及版本	
  		platform:'',//客户端平台	
  		SDKVersion:'' //客户端基础库版本	
  	}
}
  • 埋点上报机制

埋点分为启动埋点、页面浏览埋点、点击事件埋点三个部分
启动埋点是小程序打开的时候自动触发此时pointType为start 页面埋点为离开埋点页面自动上报 此时pointType为page 事件埋点为点击时候触发此时pointType为event,但是会以数组方式存储随着页面关闭与页面埋点一起上报