1.2.7 • Published 3 years ago

@yangguoxin/fin-track v1.2.7

Weekly downloads
-
License
ISC
Repository
-
Last release
3 years ago

fin-track

H5页面埋点SDK

快速上手

NPM 方式

NPM源需要切换小黑鱼NPM

安装

$ npm install @blackfish/fin-track --save

使用

import finTrack from '@blackfish/fin-track'

// 合适地方调用
// 全局配置
finTrack.config({
  channel: '01001000000200000'
})
// 页面埋点
finTrack.trackPage('1010100003')

// 事件埋点
finTrack.trackEvent('101010000300190000')

API

config

全局参数配置

参数名称传参类型是否必填默认值说明
appIdappIdStringnullapp环境、url有bf_ai参数 会自动识别,设置无效
channel渠道P值Stringcookie中pValue字段
useBaidu集成百度埋点Booleanfalse开启会加载百度sdk
baiduKey百度HASH KEYStringnulluseBaidu: true 生效
autoCommitBaiduPage是否触发百度页面埋点Booleantrue如果使用了百度埋点,默认在使用tackPage会自动触发百度埋点,不希望这样做可以设置false,在合适地方调用baiduTrackPage,完成百度页面埋点
debug是否测试环境Booleanfalse建议在非正式环境下使用,结合埋点工具可以进行调试

trackPage

页面埋点

// 简单
finTrack.trackPage(pageId, pageName?, duration?)
// 详细
finTrack.trackPage({
  pageId: 'pageId',
  pageName: '页面名称',
  url: '页面url',
  referer: '来源页url',
  duration: '页面停留时间'
})
参数名称传参类型默认值是否必传说明
pageIdString''页面ID
pageNameStringdocument.title页面名称
urlStringlocation.href页面url
refererStringurl trcRef 参数,没有再取 document.referrer来源页面
durationNumber0停留时间
attributesStringnull页面参数

trackPageStart

页面埋点开始

// 简单
finTrack.trackPageStart(pageId, pageName?)
// 详细
finTrack.trackPageStart({
  pageId: 'pageId',
  pageName: '页面名称',
  url: '页面url',
  referer: '来源页url'
})
参数名称传参类型默认值是否必传说明
pageIdString''页面ID
pageNameStringdocument.title页面名称
urlStringlocation.href页面url
refererStringurl trcRef 参数,没有再取 document.referrer来源页面
attributesStringnull事件参数

trackPageEnd

页面埋点结束

finTrack.trackPageEnd()

trackEvent

事件埋点

// 简单
finTrack.trackEvent(eventId, eventName?, eventType?, attributes?, scm?)
// 详细
finTrack.trackEvent({
  eventId: '事件ID',
  eventName: '事件名称',
  eventType: 0, // 1.曝光 2.点击
  attributes: '事件参数',
  duration: '事件时长',
  scm: 'super content model'
})
参数名称传参类型默认值是否必传说明
eventIdString''事件ID
eventNameString''事件名称
eventTypeNumber2 (1-曝光 2-点击)事件类型
attributesStringnull事件参数
durationNumberundefined停留时间
scmStringundefined内容定位模型
elDOM Objectundefined曝光事件中期望sdk自动完成曝光埋点时必传

disTrackEvent

解除对某元素的事件监听,主要解除曝光事件的监听

参数名称传参类型默认值是否必传说明
elDOM Objectundefined解除对曝光元素的事件监听

trackEventStart

事件埋点开始

// 简单
finTrack.trackEventStart(eventId, eventName?, eventType?, attributes?, scm?)
// 详细
finTrack.trackEventStart({
  eventId: '事件ID',
  eventName: '事件名称',
  eventType: 0, // 1.曝光 2.点击
  attributes: '事件参数',
  scm: 'super content model'
})
参数名称传参类型默认值是否必传说明
eventIdString''事件ID
eventNameString''事件名称
eventTypeNumber1 (1-曝光 2-点击)事件类型
attributesStringnull事件参数
scmStringundefined内容定位模型

trackEventEnd

事件埋点结束

finTrack.trackEventEnd(eventId)

baiduTrackPage

发送百度页面埋点数据,需要自己指定百度页面埋点发送时机使用

finTrack.baiduTrackPage(url?)
参数名称传参类型默认值是否必传说明
urlString当前url的相对路径百度埋点的页面相对url

setCampaignId

finTrack.setCampaignId('CampaignId')

getRefParams

获取来源数据

// 返回值
{
  referer: '', // 事件ID / 页面ID / referer url
  refSpm: [], // spm Array
  refScm: [], // scm Array
  spmString: 'spm String', // spm String
  scmString: 'scm String', // scm String
  campaignId: 'campaignId' // campaignId
}

create

创建一个实例,在单页面避免相互污染很有用处

let trackInstance = finTrack.create(options) // options 参数同config
// 页面埋点
trackInstance.trackPage(...)
// 事件埋点
trackInstance.trackEvent(...)

query 参数埋点

trcRef

trcRef用于记录从哪个来源打开当前页面,拼在url query参数上,h5和app保持一致,trcRef的值可以为eventId,pageId, url 支持自动识别解析

例如: https://h5.blackfish.cn/xxx?trcRef=101010000300190000

trcScm

trcScm用于记录从哪个内容来源打开当前页面,用法同上

trcCampaign

trcCampaign用于记录从哪个活动进来往往需要一层一层带到目标结束页

vue 埋点插件

基于vue对埋点api的二次封装,方便vue项目埋点

使用方法

import finTrack from '@blackfish/fin-track'
import helperVue from '@blackfish/fin-track/dist/helper-vue'

Vue.use(helperVue(finTrack))

this.$finTrack

同 finTrack api 使用方法一样

v-trc-event 指令

埋点指令

<!-- 数组形式,简单方式 -->
<!-- 点击埋点的写法 -->
<button v-trc-event="[ '101090000100230000', '点击事件名称', undefined, 'scm?', 'attributes?']">按钮</button>
<!-- 点击+曝光 -->
<button v-trc-event="[ '101090000100230000', '点击事件名称', '曝光事件名称?', 'scm?', 'attributes?']">按钮</button>

<!-- Object形式,详细方式 -->
<button v-trc-event="{
  eventId: '101090000100230000',
  events: [{
    eventType: 2, // 2.点击
    eventName: '事件名称',
    attributes: '事件参数',
    duration: '事件时长',
    scm: 'super content model'
  },{
    eventType: 1, // 曝光
    eventName: '曝光事件名称',
    attributes: '曝光事件参数',
    duration: '曝光事件时长',
    scm: 'super content model'
  }]
}">按钮</button>

更新日志

v1.2.2

  • mod referrer 逻辑修改

v1.2.0

  • add 添加曝光埋点

v1.1.14

  • fix 修复来appId 问题

v1.1.5

  • fix 扫码调试无效
  • mod 手机号加密

v1.1.4

  • fix 默认事件为null
  • fix 非app环境事件埋点报错

v1.1.0

  • add vue 插件
  • add campainId, 来源页点击spm app缓存处理方案
  • add 设置app缓存campainId方法

v1.0.3

  • add getRefParams 接口添加

v1.0.2

  • mod 添加页面scm追踪
  • add campaignId 活动ID添加

v1.0.1

  • mod url appId 转为Number