神策分析 JavaScript SDK AutoTrack 使用说明

最后更新于:2018-10-26 09:12:34

1. 全埋点代码生成

首先从神策分析的主页中,进入数据接入向导页面:

然后在右上角点击 数据接入 显示如下界面,然后点击 生成导入代码,进入代码生成页面,按需选择合适的选项,然后点击生成代码,如下图:

这段代码是每个需要采集数据的页面都要引入的,所以建议放在页面的公共部分,比如页面头部或者尾部。

2. 页面浏览事件采集($pageview)

为了方便使用,神策分析的 SDK 也提供了一些默认事件的收集,例如如果需要采集页面浏览事件(即 PageView),可以通过增加如下代码:

  // 如果需要调用 login 来重新设置用户标识,必须在此之前调用
  sensors.quick('autoTrack')

设置之后,SDK 就会自动收集页面浏览事件,以及设置初始来源。 另外,如果想加额外的属性,可以如下方式(添加 platForm 属性为 h5)

  // 如果需要调用 login 来重新设置用户标识,必须在此之前调用
 sensors.quick('autoTrack', {
   platForm:'h5'
 })

而如果只想追踪事件,不想设置首次来源到 profile 里,可以使用sensors.quick('autoTrackWithoutProfile')来替代。

注意: 单页面中发送页面浏览事件($pageview)

第一种 pushState/replaceState 方式 如果用的是这种方式,因为 popstate 事件只有在浏览器后退前进才会触发,所以正常情况下的跳转页面,没法自动监听到。这种情况下,需要手动调用我们提供的 sensors.quick('autoTrackSinglePage') 方法( SDK 1.8.5 版本以上可用)来封装 $pageview 的相关属性。这个方法在页面 url 切换后调用,比如 react 可以在全局的 onUpdate 里来调用。其他框架使用类似的在全局的在页面切换后调用。

// 比如现在是在 react 中
onUpdate: function(){
    sensors.quick('autoTrackSinglePage');
}

  //vue 项目在路由切换的时候调用
router.afterEach((to,from) => {
    Vue.nextTick(() => {
        sensors.quick("autoTrackSinglePage");
    });
});

这里注意一下,代码生成工具中的自动生成的 sensors.quick('autoTrack') 还是需要的,因为这里是首次发送页面浏览事件,切换页面后再调用上面的方法。 vue 页面如果首页打开的时候就触发了路由切换,就不需要sensors.quick('autoTrack')了,否则首页会触发两次页面浏览事件。

第二种 监听 hashchange 和 popstate 方式 (不建议使用) hashchange 这种切换 url 的方式已经用的越来越少了。不过这种方式的页面切换,是可以自动监听到的。popstate 这个事件可以监听,但是因为只有在浏览器前进后退才会触发,页面跳转并不会触发,所以意义不大。针对上面这两种能自动监听到的事件,我们提供了 is_single_page的参数配置,只要设置 is_single_page:true 就会自动在监听到 hashchange 或 popstate 事件,并自动发送页面浏览数据。

3. 页面点击事件及视区停留事件的采集

必填参数:

  • web_url: 神策分析后台地址,神策分析中点击分析及触达分析功能会用到此地址,代码生成工具会自动生成。如果神策后台版本及 sensorsdata.min.js 均是 1.10 及以上版本,这个参数不需要配置。

  • heatmap_url: 神策分析中点击分析及触达分析功能代码,代码生成工具会自动生成。如果神策代码中 sensorsdata.min.js 版本是 1.9.1 及以上版本,这个参数必须配置,低于此版本不需要配置。

  • heatmap: 必须在 SDK 初始化代码里面配置这个参数才会采集事件。可以使用这种配置方式 heatmap:{} ,那么会默认采集两个事件。具体参数配置如下:

heatmap: {
    //是否开启点击图,默认 default 表示开启,自动采集 $WebClick 事件,可以设置 'not_collect' 表示关闭
     clickmap:'default',
     //是否开启触达注意力图,默认 default 表示开启,自动采集 $WebStay 事件,可以设置 'not_collect' 表示关闭
     scroll_notice_map:'not_collect'
}

3.1 页面点击事件($WebClick)

开启全埋点,SDK 就会自动追踪页面上的按钮( a button input )这种 html 标签类型 的点击情况,一旦页面某一个按钮发生了点击行为,我们就会去采集此按钮的一些信息,例如: 这个按钮的标签类型( a button input ),这个按钮的文本内容,这个按钮的 name ,这个按钮的 id 、 class 名,还有一些按钮特有的属性如 href 等。

点击图默认只采集这些交互元素( a input button ),如果你想要对其他元素采集的话,请在元素发生点击的时候,调用我们的这个方法。

// 下面演示点击图片的时候也触发点击图事件
$('img').on('click',function(){
    sensors.quick('trackHeatMap',this); //第二个参数是发生事件的dom元素
});

3.2 视区停留事件($WebStay)

有效停留:关注网页区域不滚动,期间鼠标可以移动,可以点击等操作。 有效停留时间:停留时间超过规定的时间,javascript sdk 中默认为 4 秒, 这个参数可以设置。

如果发生页面滚动时候,之前的页面停留是有效停留,也就是超过默认的 4 秒或者自定义的时间,javascript sdk 就会发送一次 页面停留事件。