基础 API 介绍(Web)
|
收藏
1. SDK 初始化参数
如果使用自动代码生成,一般情况下无需手工修改参数。
参数 | 默认值 | 含义 | 备注 |
---|---|---|---|
sdk_url | 无 | sensorsdata.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_subdomain | true | 设置成 true 后,表示在根域下设置 cookie 。也就是如果你有 zhidao.baidu.com 和 tieba.baidu.com 两个域,且有一个用户在同一个浏览器都登录过这两个域的话,我们会认为这个用户是一个用户。如果设置成 false 的话,会认为是两个用户。 | |
show_log | false | 设置 true 后会在网页控制台打 logger,会显示发送的数据,设置 false 表示不显示。 | |
source_channel | 无 | 默认获取的来源是根据 utm_source 等 ga 标准来的,如果使用百度统计的 hmsr 等参数,需在此字段中加入对应参数,参数必须是数组,例如:['hmsr']。使用网页通用渠道添加自定义属性时,需将对应的自定义属性名添加到此字段。 | |
source_type | 自定义搜索引擎流量,社交流量,搜索关键词。 | ||
max_string_length | 500 | 通用字符串最大长度,超过部分会被截取丢弃(由于超过 7000 的字符串会导致 url 超长发不出去,所以限制长度)。 | |
send_type | image | 表示使用 beacon 请求方式发数据,可选使用 'image' 图片 get 请求方式发数据。( 神策系统 1.10 版本以后 ) 支持使用 'ajax' 和 'beacon' 方式发送数据,这两种默认都是 post 方式, beacon 方式兼容性较差。 | |
callback_timeout | 200 ,单位毫秒 | 表示回调函数超时时间,如果数据发送超过 callback_timeout 还未返回结果,会强制执行回调函数。 | SDK 版本 1.11.6 以后支持 |
queue_timeout | 300 ,单位毫秒 | 表示队列发送超时时间,如果数据发送时间超过 queue_timeout 还未返回结果,会强制发送下一条数据。 | SDK 版本 1.11.6 到 1.18.17 支持 |
datasend_timeout | 3000 ,单位毫秒 | 表示数据发送超时时间,如果数据发送超过 datasend_timeout 还未返回结果,会强制取消该请求。 | SDK 版本 1.11.6 以后支持 |
preset_properties | 是否开启 $latest 最近一次相关事件属性采集以及配置 $url 作为公共属性,默认值为一个对象。 | SDK 版本 1.14.10 及以后支持 | |
is_track_single_page | false | 表示是否开启单页面自动采集 $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>
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>
另外如果函数在异步回调中返回值,这种情况也是会被过滤掉。
<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>
2.3. 获取预置属性
版本要求
Web JS SDK 1.9.13 及以后版本
此方法可获取,页面地址,页面标题,前向地址,SDK 类型及版本,屏幕宽高,最近一次的相关属性,如果服务端需要使用这些属性需要客户自己传输,且这些属性不包括需要后端解析的 ip 及 UA 等属性。
sensors.quick('isReady',function(){
var presetProperties = sensors.getPresetProperties();
});
3. 设置用户属性
3.1. setProfile(properties)
直接设置用户的属性,如果存在则覆盖。
sensors.setProfile({email:'xxx@xx'});
3.2. setOnceProfile(properties)
如果不存在则设置,存在就不设置。
sensors.setOnceProfile({email:'xxx@xx'});
3.3. appendProfile(properties)
给数组属性添加值。通过setProfile只能改变属性的值。如果这个属性是数组类型的,你不想完全改变这个值,只想做添加操作可以使用此方法。
//给 category 增加两个值
sensors.appendProfile({catrgory: ['玉米','白菜']});
//给 category 增加一个值
sensors.appendProfile({catrgory: '玉米'});
3.4. incrementProfile(properties)
对当前用户的属性做递增或者递减。
// 表示 navClick 递减
sensors.incrementProfile({'navClick': -1});
// 表示 navClick 递增2
sensors.incrementProfile({'navClick': 2});
// 直接传入一个属性名,表示递增1
sensors.incrementProfile('navClick');
3.5. deleteProfile()
删除当前用户及他的所有属性。
//删除当前这个用户及他的所有属性
sensors.deleteProfile();
3.6. unsetProfile(property)
删除当前用户的一些属性
//删除 email 和 location 属性
sensors.unsetProfile(['email','location']);
//删除 email 属性
sensors.unsetProfile('email');
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:"甜"});
4.2. deleteItem(item_type,item_id)
如果物品不可被推荐需要下线,删除该物品即可,如不存在则忽略。
除物品 ID 与 物品所属类型外,不解析其他物品属性。
item_type:必选。
item_id:必选。
sensors.deleteItem("food","2");
5. 设置自定义属性
参考 插件集成 (Web) 文档 集成 自定义属性插件
6. 页面浏览时长
参考 插件集成 (Web) 文档 集成 页面浏览时插件
7. 页面加载时长
参考 插件集成 (Web) 文档 集成 页面加载时长插件
8. 高级功能 & 插件
更多功能可参考 高级功能(Web)
更多插件可参考 插件集成(Web)
注:本文档内容为神策产品使用和技术细节说明文档,不包含适销类条款;具体企业采购产品和技术服务内容,以商业采购合同为准。