1. 文档目录

2. SDK 功能清单

一级功能二级功能具体功能 / 描述
标识用户自动标识匿名用户自动使用设备 ID 标识匿名用户
支持替换为自定义的匿名 ID
标识登录用户使用登录 ID 标识登录用户
设置用户属性
采集数据自动采集浏览器信息自动采集默认的设备制造商,操作系统、浏览器版本等
全埋点Web 浏览页面
Web 元素点击
Web 视区停留
公共属性静态公共属性
动态公共属性
清除公共属性
自定义埋点自定义代码埋点
上报数据自动上报数据SDK 在满足一定条件后自动发送事件数据
调试功能调试模式开启 / 关闭调试模式
调试日志显示 / 关闭调试日志
可视化及分析可视化全埋点通过可视化的方式在将关键事件筛选出来,便于后续分析
Web 点击分析直观展示用户在 Web 页面上的点击情况
DeepLink创建 DeepLink 用于 App 推广
高级功能数据加密数据加密之后再进行存储和发送
App 与 H5 打通打通后 H5 的事件数据由 App SDK 来存储和发送
合规支持合规要求
SDK 采集控制控制 SDK 开启或关闭

3. 基本原理

Web SDK 是用原生 JavaScript 语言编写。没有使用最新的 ES6 特性。理论支持 IE6+ 的浏览器。

Web SDK 的原理,主要是通过原生 JavaScript 代码,去监控页面的点击等操作,并自动获取屏幕宽高等属性,然后发送请求。因为 Web SDK 是面向传统的浏览器环境的,跟框架没有关系!也就是说必须也且只能是在 “ 浏览器上运行的网页中 ” 就可以使用 Web SDK。这里的几个特点:

  • 能支持 JavasScript 语言的环境
  • 能支持 Web 浏览器的环境

因为要满足上述的 Web + JavaScirpt 的环境,所以我们称 SDK 为 Web JS SDK,简称 Web SDK。

4. 插件架构

因为 Web SDK 中有上千个功能点,并且功能点仍然在持续新增。因为功能点的数量足够的大,且存在一个功能有多种互斥方案,之前的“全能 SDK”(所有功能都集成在一起)正在逐步转变成插件的架构方式。理论上后续所有功能都是通过插件来实现,以前的功能也在逐步拆解为插件。

鉴于插件的重要意义,建议集成 SDK 的时候可以了解下现有的 “插件集成” 目录,每个插件都会有 readme 使用说明。

5. 客户端框架支持范围

框架Vue2Vue3ReactAngular
支持

注意:

  • 上面基本原理中已经表述过,只要是标准的浏览器环境,能支持原生 JavaScript 就可以使用 SDK。跟框架无关。
  • 一些框架自身的特性,而非浏览器的特性 SDK 是不支持的。例如 React 有 JSX,那浏览器是不认识 JSX 的,SDK 无法识别。
  • 跨平台框架(例如 uni-app、RN)是不能直接用 Web SDK 的,Web SDK 可以在框架生成的浏览器端的页面里直接集成。uni-app 等需要使用 uni-app 的 SDK。

6. 服务端框架支持范围

框架next.jsnuxt.js
支持

注意:

  • 针对服务端渲染页面的框架是不能直接引入 Web SDK 的。需要通过框架特性集成 Web SDK,使 Web SDK 在客户端渲染并运行。

7. 建站系统支持范围

框架wordpressshopifyghost淘宝
支持

(出错)

注意:

  • 对于建站系统,可以引入新的 js 文件(例如 在通用文件 header 中引入)。即可使用 Web SDK 。
  • 对于淘宝商铺系统,无法引入 js 文件,故无法使用 Web SDK 。


8. 浏览器支持范围

浏览器IE6IE7IE8IE9IE10IE11EdgeFireFoxSafariChromeOpera
支持

注意:

  • 上面基本原理中已经表示过,只要是标准的浏览器环境,能支持原生 JavaScript(不需要 ES6 ) 就可以使用。跟操作系统、平台类型、浏览器类型、浏览器版本无关。 
  • 不保证一些小众浏览器没有实现标准的 JavaScript ,导致一些属性有差异。这时候就会跟操作系统、平台类型、浏览器类型、浏览器版本有关。
  • 部分功能需要相对较新的浏览器才能支持,例如批量发送需要 LocalStorage 存储。
  • 如果一些功能(例如批量发送)在版本浏览器不支持的话,SDK 不会报错,而是自动降级(使用图片发送),或者去除这个功能。