1. SDK 初始化参数

如果使用自动代码生成,一般情况下无需手工修改参数。

参数默认值含义备注
sdk_urlsensorsdata.min.js 文件的地址。请从 GitHub 获取并且放在你们自己网站目录下。
server_url数据接收地址。 
heatmap_url

heatmap.min.js 文件的地址。神策分析中点击分析及触达分析功能代码,代码生成工具会自动生成。如果神策代码中 sensorsdata.min.js 版本是 1.13.1 及以前版本,这个参数须配置,高于此版本不需要配置。

请从 GitHub 获取并且放在你们自己网站目录下。

web_url

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

自动配置:以页面 url 参数的方式获取。

如需解决 xss 的问题,可通过手动设置 web_url 的方式解决。

web_url 使用逻辑:手动配置 > url 参数

heatmap

点击图配置。默认配置表示不自动采集元素点击事件和页面停留事件,配置成 {} 表示开启 $WebClick 采集 和 $WebStay 自动采集,默认 $WebClick 只采集 a,button,input ,textarea 四个 dom 元素的点击事件。


cross_subdomaintrue

设置成 true 后,表示在根域下设置 cookie 。也就是如果你有 zhidao.baidu.comtieba.baidu.com 两个域,且有一个用户在同一个浏览器都登录过这两个域的话,我们会认为这个用户是一个用户。如果设置成 false 的话,会认为是两个用户。


show_logfalse设置 true 后会在网页控制台打 logger,会显示发送的数据,设置 false 表示不显示。
source_channel默认获取的来源是根据 utm_source 等 ga 标准来的,如果使用百度统计的 hmsr 等参数,需在此字段中加入对应参数,参数必须是数组,例如:['hmsr']。使用网页通用渠道添加自定义属性时,需将对应的自定义属性名添加到此字段。
source_type
自定义搜索引擎流量,社交流量,搜索关键词。

详细配置参考

max_string_length500通用字符串最大长度,超过部分会被截取丢弃(由于超过 7000 的字符串会导致 url 超长发不出去,所以限制长度)。
send_typeimage表示使用 beacon 请求方式发数据,可选使用 'image' 图片 get 请求方式发数据。( 神策系统 1.10 版本以后 ) 支持使用 'ajax' 和 'beacon' 方式发送数据,这两种默认都是 post 方式, beacon 方式兼容性较差。
callback_timeout200 ,单位毫秒表示回调函数超时时间,如果数据发送超过 callback_timeout 还未返回结果,会强制执行回调函数。

SDK 版本 1.11.6 以后支持

queue_timeout300 ,单位毫秒表示队列发送超时时间,如果数据发送时间超过 queue_timeout 还未返回结果,会强制发送下一条数据。

SDK 版本 1.11.6 到 1.18.17 支持

datasend_timeout3000 ,单位毫秒表示数据发送超时时间,如果数据发送超过 datasend_timeout 还未返回结果,会强制取消该请求。

SDK 版本 1.11.6 以后支持

preset_properties
是否开启 $latest 最近一次相关事件属性采集以及配置 $url 作为公共属性,默认值为一个对象。

SDK 版本 1.14.10 及以后支持
高级功能(Web)

is_track_single_pagefalse表示是否开启单页面自动采集 $pageview 功能,SDK 会在 url 改变之后自动采集web页面浏览事件 $pageview。

SDK 版本 1.12.18 以后支持


2. 事件公共属性

2.1. 设置事件静态公共属性

对于所有事件都需要添加的属性,可在初始化 SDK 后,调用 registerPage() 将属性注册为公共属性:

<script>
// 注册公共属性
sensors.registerPage({
	current_url: location.href,
	referrer: document.referrer
});
</script>
JS

2.2. 设置事件动态公共属性

版本要求

Web JS SDK 1.14.15 及以后版本

当设置动态公共属性的时候,注意使用函数类型作为属性值,函数的返回值应当是神策支持的类型,请参考数据格式,否则会被过滤掉。
另外您如果使用了 ES6 语法如箭头函数等,则需要使用编译工具编译后运行。

<script>
// 注册公共属性 
var i=0
sensors.registerPage({
  prop_number: function() {
    return ++i; // 返回数字
  },
  prop_boolean: function() {
    return i<10 ? true : false; // 返回bool
  },
  prop_string: function() {
    return ""; // 返回字符串
  },
  prop_date: function() {
    return new Date('December 17, 1995 03:24:00'); // 返回日期类型
  },
  prop_array: function() {
    return ["1","2","3"] // 返回元素是字符串的数组
  }
}) 
</script>
JS


另外如果函数在异步回调中返回值,这种情况也是会被过滤掉。

<script>
// 注册公共属性 
var i=0
sensors.registerPage({
  prop_number: function() {
    return ++i; // 返回数字
  },
  prop_boolean: function() {
    return i<10 ? true : false; // 返回bool
  },
  prop_string: function() {
    return ""; // 返回字符串
  },
  prop_date: function() {
    return new Date('December 17, 1995 03:24:00'); // 返回日期类型
  },
  prop_array: function() {
    return ["1","2","3"] // 返回元素是字符串的数组
  }
}) 
</script>
JS


2.3. 获取预置属性

版本要求

Web JS SDK 1.9.13  及以后版本

此方法可获取,页面地址,页面标题,前向地址,SDK 类型及版本,屏幕宽高,最近一次的相关属性,如果服务端需要使用这些属性需要客户自己传输,且这些属性不包括需要后端解析的 ip 及 UA 等属性。

sensors.quick('isReady',function(){
	var presetProperties = sensors.getPresetProperties();
});
JS

3. 设置用户属性

3.1. setProfile(properties)

直接设置用户的属性,如果存在则覆盖。

sensors.setProfile({email:'xxx@xx'});
JS

3.2. setOnceProfile(properties)

如果不存在则设置,存在就不设置。

sensors.setOnceProfile({email:'xxx@xx'});
JS

3.3. appendProfile(properties)

给数组属性添加值。通过setProfile只能改变属性的值。如果这个属性是数组类型的,你不想完全改变这个值,只想做添加操作可以使用此方法。

//给 category 增加两个值
sensors.appendProfile({catrgory: ['玉米','白菜']});
//给 category 增加一个值
sensors.appendProfile({catrgory: '玉米'});
JS

3.4. incrementProfile(properties)

对当前用户的属性做递增或者递减。

// 表示 navClick 递减
sensors.incrementProfile({'navClick': -1});
// 表示 navClick 递增2
sensors.incrementProfile({'navClick': 2});
// 直接传入一个属性名,表示递增1
sensors.incrementProfile('navClick');
JS

3.5. deleteProfile()

删除当前用户及他的所有属性。

//删除当前这个用户及他的所有属性
sensors.deleteProfile();
JS

3.6. unsetProfile(property)

删除当前用户的一些属性

//删除 email 和 location 属性
sensors.unsetProfile(['email','location']);
//删除 email 属性
sensors.unsetProfile('email');
JS


4. 物品元数据上报

在神策推荐项目中,客户需要将物品元数据上报,以开展后续推荐业务的开发与维护。Web SDK 提供了设置与删除物品元数据的方法。

item_id(物品 ID ) item_type (物品所属类型)共同组成了一个物品的唯一标识。所有的 item 系列方法都必须同时指定物品 ID 及物品所属类型这两个参数,来完成对物品的操作。

版本要求

  • Web JS SDK 1.18.12  及以后版本

4.1. setItem(item_type,item_id,properties)

直接设置一个物品,如果已存在则覆盖。除物品 ID 与物品所属类型外,其他物品属性需在 properties 中定义。

物品属性中,属性名称与属性值的约束条件与事件属性相同,详细说明请参考 数据格式

item_type:必选。

item_id:必选。

properties:可选。

sensors.setItem("food","2",{name:"玉米",flavour:"甜"});
JS

4.2. deleteItem(item_type,item_id)

如果物品不可被推荐需要下线,删除该物品即可,如不存在则忽略。

除物品 ID 与 物品所属类型外,不解析其他物品属性。

item_type:必选。

item_id:必选。

sensors.deleteItem("food","2");
JS

5. 设置自定义属性 

参考  插件集成 (Web) 文档 集成 自定义属性插件

6. 页面浏览时长

参考  插件集成 (Web) 文档 集成 页面浏览时插件

7. 页面加载时长

参考  插件集成 (Web) 文档 集成 页面加载时长插件

8. 高级功能 & 插件

更多功能可参考 高级功能(Web)

更多插件可参考 插件集成(Web)