- 在使用前,请先阅读 数据模型
- SDK 更新日志,可参考 Release Notes
集成神策分析 SDK
下面介绍了几种常见的集成 SDK 的方式。例如通过 import ES 模块,通过 Script 标签加载等。
代码自动生成
Script 标签
如果你需要把引入代码和 SDK 文件整合在一个文件中,然后在页面头部通过 script src 的方式引入。你可以把引入代码改成如下方式,并放在下载下来的 sensorsdata.js 文件前面。
<script charset='UTF-8' src="在 github 下载新版本的 /dist/web/sensorsdata.js "></script>
<script>
var sensors = window['sensorsDataAnalytic201505'];
sensors.init({
server_url: 'http://test-syg.datasink.sensorsdata.cn/sa?token=xxxxx&project=xxxxxx',
is_track_single_page:true, // 单页面配置,默认关闭。开启后自动监听 URL 有变化就会触发 $pageview 事件
use_client_time:true,
send_type:'beacon',
heatmap: {
//是否开启点击图,default 表示开启,自动采集 $WebClick 事件,可以设置 'not_collect' 表示关闭。
clickmap:'default',
//是否开启触达图,not_collect 表示关闭,不会自动采集 $WebStay 事件,可以设置 'default' 表示开启。
scroll_notice_map:'not_collect'
}
});
sensors.quick('autoTrack');
</script>
CommonJS
从 npm 获取 SDK, npm install sa-sdk-javascript -E
var sensors = require('sa-sdk-javascript');
sensors.init({
server_url: '数据接收地址',
is_track_single_page:true, // 单页面配置,默认关闭。开启后自动监听 URL 有变化就会触发 $pageview 事件
use_client_time:true,
send_type:'beacon',
heatmap: {
//是否开启点击图,default 表示开启,自动采集 $WebClick 事件,可以设置 'not_collect' 表示关闭。
clickmap:'default',
//是否开启触达图,not_collect 表示关闭,不会自动采集 $WebStay 事件,可以设置 'default' 表示开启。
scroll_notice_map:'not_collect'
}
});
sensors.quick('autoTrack'); //用于采集 $pageview 事件。
ES Module
import sensors from './dist/web/sensorsdata.es6.js'
sensors.init({
server_url: '数据接收地址',
is_track_single_page:true, // 单页面配置,默认关闭。开启后自动监听 URL 有变化就会触发 $pageview 事件
use_client_time:true,
send_type:'beacon',
heatmap: {
//是否开启点击图,default 表示开启,自动采集 $WebClick 事件,可以设置 'not_collect' 表示关闭。
clickmap:'default',
//是否开启触达图,not_collect 表示关闭,不会自动采集 $WebStay 事件,可以设置 'default' 表示开启。
scroll_notice_map:'not_collect'
}
});
sensors.quick('autoTrack'); //用于采集 $pageview 事件。
AMD
从 GitHub 获取 sensorsdata.amd.min.js,假设该文件放到与 require.js 同一目录中
requirejs(["./dist/web/sensorsdata.amd.js"], function(sensors) {
sensors.init({
server_url: '数据接收地址',
is_track_single_page:true, // 单页面配置,默认关闭。开启后自动监听 URL 有变化就会触发 $pageview 事件
use_client_time:true,
send_type:'beacon',
heatmap:{
clickmap: 'default',
scroll_notice_map: 'not_collect'
}
});
sensors.quick('autoTrack');
});
- 不要将页面渲染的代码放在 window.onload 中。当神策服务器异常时,Web JS SDK 发送的图片数据请求无法及时响应,会导致 window.onload 无法生效。如果一定要使用 window.onload 的话,建议将 send_type 参数设置为 'ajax',使用 ajax 发送数据;
- 不要在线上 file 协议地址的页面中使用 Web JS SDK,因为无法写 cookie 记录用户,触发大量新增的匿名用户数据和 profile_set_once 事件;
- 不要在 iframe 内嵌的跨域 H5 页面内使用 Web JS SDK,因为部分浏览器对于第三方 cookie 的限制策略会导致 SDK 无法读写 cookie,进而导致会触发大量新增的匿名用户数据和 profile_set_once 事件;
- ie9 浏览器使用 SDK 时,如果配置了 send_type: 'ajax' 且页面地址的协议与 server_url 协议不一致时,会导致数据无法发送。另外,所有配置项上的网络请求地址协议与页面地址的协议要求保持一致,尤其是 server_url 数据接收地址。