接入方法
在页面底部 前添加:
<script src="//cdn.jinlins.com/utm/utm.js" crossorigin="anonymous" async></script>
接入后,系统会自动收集 PV、UV 信息以及 DIV|P|A|IMG|OL|UL|LI|TABLE|TR|TD|DL|DD|INPUT|BUTTON|SELECT|TEXTAREA
的点击事件。
手动上报
你也可以直接调用系统 API 发送埋点:
JINLINS.utm("key")
JINLINS.utm("key", 10) // 附加一个数值
JINLINS.utm("key", ["标签"]) // 附加一个标签
JINLINS.utm("key", { 字段名: 字段值 }) // 附加一个其它字段值
其中,key
的内容可以随意指定,但特定场景的 key
需要统一:
用户注册
用户注册后,需要手动上报:
JINLINS.utm("user.register", {
uid: "122322", // 如果有,可以提供业务上的用户 UID
name: "ddddd", // 如果有,可以提供用户账号名
mobile: "1722**1233", // 如果有,可以提供用户手机号
// ... 可以扩展更多用户相关的信息,如会员等级
})
用户登陆
用户登陆后,需要手动上报:
JINLINS.utm("user.login", {
uid: "122322", // 如果有,可以提供业务上的用户 UID
name: "ddddd", // 如果有,可以提供用户账号名
mobile: "1722**1233", // 如果有,可以提供用户手机号
// ... 可以扩展更多用户相关的信息,如会员等级
})
用户注销
用户注销后,需要手动上报:
JINLINS.utm("user.logout", {
mobile: "1722**1233", // 如果有,可以提供用户手机号
// ... 可以扩展更多用户相关的信息,如会员等级
})
交互事件
默认系统只统计 DIV|P|A|IMG|OL|UL|LI|TABLE|TR|TD|DL|DD|INPUT|BUTTON|SELECT|TEXTAREA
的点击事件,如果需要统计其它标签(如 <span/>
)的点击事件,需要给这个标签添加 data-utm-path
属性:
<span data-utm-path="按钮别名">
如果需要统计其它类型的事件,需要手动上报以 event.
前缀的键 :
JINLINS.utm("event.keydown", {
key: "A", // 附加更多数据...
})
注意:默认埋点数据不会立即上报,而是有一段延时,如果希望立即上报需要调用
JINLINS.utmFlush()
概念
UTMID
UTMID 用于准确标识一个页面(可以是前端的一个网址或者是客户端的一个 View)
UTMID 的格式是由四个数据用点分割:
渠道号.站点号.频道号.页面号
- 渠道号(source id):表示访问该页面的来源渠道,比如通过百度搜索、还是通过微信分析、还是通过钉钉等方式进入页面。
- 站点号(site id):表示该网站或该 APP 的唯一标识,前端的站点号即域名,APP 的站点号即 APP 名。
- 频道号(channel id):表示页面分类,比如首页中的“借款”、“个人中心”分别是频道;微信中的“聊天”、“联系人”、“我”分别是一个频道,前端的频道号即一级目录,APP 的频道即每个大标签
- 页面号(page id):表示具体页面,前端的页面号即网址二级或子级地址,APP 的页面号是一个 View
可以使用 JINLINS.utmID()
获取生成的 UTMID,也可以用 JINLINS.utmID('渠道号.站点号.频道号.页面号')
手动设置 UTMID
KEY
KEY 标识用户的操作,比如用户点击按钮、关闭页面、中奖,都用 KEY 区分。 一些通用的操作,系统预定义了一些 KEY 标识。 在自己设计 KEY 时,尽量按规范设计。
PATH
PATH 路径准确标识一个页面内的某个节点或控件,默认前端的 PATH 是一个简化版的 XPATH,如果节点存在唯一ID,则为 #ID,如果节点存在唯一 CLASS,则为 .class,APP的 PATH 是控件的 XPATH
可以使用 data-utm-path
设置控件标识
可以使用 JINLINS.utmPath(节点)
获取自动生成的路径
更多埋点配置
你可以手动增加一些配置以获取更详细的数据
标识页面
系统默认使用网址标识页面,你可以使用如下代码标识页面的别名:
index.html?utm=渠道号
<html data-utm-id="页面号">
<html data-utm-id="频道号.页面号">
<html data-utm-id="站点号.频道号.页面号">
其中 utm 的值用于唯一标识当前页面,且不发生变化,由运营人员/产品提供。
标识组件
系统默认使用组件路径标识页面,你可以使用以下代码标识组件:
<button data-utm-path="按钮别名">
原理
用户的任意操作都可能产生一条埋点数据,每次数据产生时会加入队列。 系统会每隔 200 毫秒上报并清空队列。
最终的上报数据格式为:
{
utm: "渠道号.站点号.频道号.页面号", // 页面唯一定位信息
vid: "用户标识", // 用户首次访问时系统分配的唯一标识,永不更新
branch: "a", // (可选)如果启用了 ABTest,则为当前分支
logs: [ // 所有埋点数据
{
utm: "渠道号.站点号.频道号.页面号", //(可选) 页面唯一定位信息(如果存在则覆盖全局)
key: "event.click", // 数据类型(非空)
time: 12323223232, // 客户端时间戳(相对于 1970)
tags: ["abc"], // (可选)自定义数据标签
extra: {} // (可选)自定义数据扩展
}
]
}
如果用户首次进入,会自动上报包含设备信息的一条数据:
{
key: "pipe.visitor",
extra: {
cpu: "arm", // CPU 架构
concurrency: 2, // CPU 核数
memory: 4, // 用户内存 (G)
maxTouchPoints: 1, // 最大支持的触控数,如果为 0 表示不支持触屏
screenWidth: 1920, // 屏幕物理水平分辨率
screenHeight: 760, // 屏幕物理垂直分辨率
screenColors: 24, // 屏幕真彩色
devicePixelRatio: 1, // 设备放大比
language: ['zh-CN', 'zh'], // 用户语言
dateOffset: 8, // 所在时差
networkType: "WIFI", // WIFI/2G/3G/4G/未知/无网络/飞行模式
osName: "Windows" | "OSX" | "iOS" | "Andriod" | "Linux" | "WinPhone", // 操作系统
osVersion: "7", // 操作系统版本
// 浏览器专用
cookies: true, // 是否支持 Cookies
webSockets: true, // 是否支持 WebSockets
canvas: true, // 是否支持 Canvas
storage: true, // 是否支持本地存储
userAgent: "", // 用户 UA
// 客户端专用
vendor: "samsung",
model: "SM-G9500",
carrier:"中国移动", // 中国移动/中国联通/中国电信
appVersion:"1.0.0"
}
}
如果用户点击按钮,会自动上报包含点击信息的一条数据:
{
key: "event.click",
extra: {
path: "BODY/DIV[2]/BUTTON", // 控件路径或控件id
}
}
如果用户进入页面,会自动上报包含访问的信息:
{
key: "pipe.enter",
extra: {
referrer: "", // 上个页面的地址
viewWidth: 720, // 视图宽
viewHeight: 720, // 视图高
viewZoom: 1, // 视图缩放比
}
}
如果用户离开页面,会自动上报包含离开的信息:
{
key: "pipe.leave"
}