SDK提供了registerPropertyPlugin方法,通过该方法传入自定义的属性插件对象给指定的事件添加、修改或删除属性。
自定义属性插件对象介绍:
用于对属性进行修改,data为发送前的完整数据。
data包括SDK采集的所有数据类型:
item_set、
item_delete、
profile_set、
profile_set_once、
profile_append、
profile_increment、
profile_delete、
profile_unset、track、
track_signup。
可配置该方法中对待发送数据data进行属性的添加、删除、修改操作。
{ properties:function(data){ //添加 //data.properties.hello='world' //修改 //data.properties.$title='newtitle' //删除 //deletedata.properties.$screen_width }}JSisMatchedWithFilter(data)用于对数据进行筛选,data为发送前的完整数据。
同上面data包括所有数据类型。
如果配置了该方法,仅当该方法返回true时,配置的properties方法才会得到执行。
如果不配置该方法,则配置的properties方法始终执行。
{ isMatchedWithFilter:function(data){ //筛选事件名为$SignUp的事件 if(data.event==='$SignUp'){ returntrue; } //筛选在页面标题为home的事件 if(data.properties.$title==='home'){ returntrue; } //其他事件不会执行properties方法 returnfalse; }}JS1.2.使用示例2.开启数据的批量发送SDK版本需1.14.7及以上
//默认不开启批量发送batch_send:false,//开启批量发送batch_send:true,//或者batch_send:{ datasend_timeout:6000,//一次请求超过多少毫秒的话自动取消,防止请求无响应。 send_interval:6000,//间隔多少毫秒发一次数据。 storage_length:200//存储localStorage条数最大值,默认:200。如localStorage条数超过该值,则使用image方式立即发送数据。v1.24.8以上支持。},JS
写入策略:
发送策略:
定时触发发送,或者遇到$pageview(或者使用quick('autoTrack')方法)和$SignUp也会立即存储并且发送。
重复策略:
必须请求success后,才会删除数据,不然会一直请求,直到数据满一定数量。
注意事项:
下面配置需要放在初始化配置中,与server_url平级,需要WebJSSDK版本是1.14.10及以上版本
正常情况下,WebJSSDK丢数据概率不超过5%,但是在关闭页面的情况下,丢失率会增加。
针对此问题,可以选择下面几种解决方式:
如果是关键的点击,需要准确的采集,比如支付等事件是在关闭页面时发送,建议在服务端中埋点采集。
配置参数is_track_single_page(推荐使用这种模式),默认值为false,表示是否开启自动采集web浏览事件$pageview的功能。其原理是修改window对象的pushState和replaceState原生方法,在页面的url改变后自动采集$pageview事件,若用户浏览器不支持这两种方法或者是使用hash的路由模式,我们也会监听popstate和hashchange事件来自动触发$pageview事件。
使用方法示例:
//SDK版本1.12.18以上支持,默认值为false。is_track_single_page:true//注意:如果进首页不会自动redirect时,sa.quick('autoTrack')是需要的,否则不需要。JS
SDK版本大于等于1.14.1的is_track_single_page参数增加function(){}的配置,必须return一个值。
is_track_single_page:function(){ returntrue时候,使用默认发送的$pageview returnfalse时候,不执行默认的$pageview return{}时候,把对象中的属性,覆盖默认$pageview里的属性。}//注意:如果进首页不会自动redirect时,sa.quick('autoTrack')是需要的,否则不需要。JS必须保证切换页面前神策WebJSSDK的已经执行,否则的话可能第一次切换页面不会触发$pageview。
在页面切换的时候,手动调用sensors.quick('autoTrackSinglePage')来采集web浏览事件$pageview,这个方法在页面url切换后调用。
//比如现在是在react中可以在全局的onUpdate里来调用。onUpdate:function(){ sensors.quick('autoTrackSinglePage');}//vue项目在路由切换的时候调用。router.afterEach((to,from)=>{ Vue.nextTick(()=>{ sensors.quick("autoTrackSinglePage"); });});//注意:vue下因为首页打开时候就会默认触发页面更新,所以需要去掉默认加的sa.quick('autoTrack')。JS
此方法也可添加自定义属性,
sensors.quick("autoTrackSinglePage",{platForm:"H5"});JS注:本文档内容为神策产品使用和技术细节说明文档,不包含适销类条款;具体企业采购产品和技术服务内容,以商业采购合同为准。