高级功能(其他小程序)
|
收藏
1. 属性插件化
属性插件化用于修改埋点事件属性的高级功能,用户可通过属性插件化功能实现对指定事件(或所有事件)的属性进行新增、修改和删除。
1.1. 接口介绍
SDK 提供了 registerPropertyPlugin 方法,通过该方法传入自定义的属性插件对象给指定的事件添加、修改或删除属性。
自定义属性插件对象介绍:
方法名 | 描述 | 示例 |
---|---|---|
properties(data) | 用于对属性进行修改,data 为发送前的完整数据。 data 包括 SDK 采集的所有数据类型: profile_set、 profile_set_once、 profile_append、 profile_increment、 track、 track_signup 。 可配置该方法中对待发送数据 data 进行属性的添加、删除、修改操作。 |
JS
|
isMatchedWithFilter(data) | 用于对数据进行筛选,data 为发送前的完整数据。 同上面 data 包括所有数据类型。 如果配置了该方法,仅当该方法返回 true 时,配置的 properties 方法才会得到执行。 如果不配置该方法,则配置的 properties 方法始终执行。 |
JS
|
1.2. 使用示例
常用方法:修改事件名为 $MPViewScreen 下的 $title 属性
sensors.registerPropertyPlugin({ isMatchedWithFilter:function(data){ return data.event === "$MPViewScreen"; } properties:function(data){ data.properties['$title'] = 'http://xxx'; } });
JS常用方法:删除所有事件中的 platform 属性
sensors.registerPropertyPlugin({ isMatchedWithFilter:function(data){ return data.type === 'track'; } properties:function(data){ delete data.properties['platform']; } });
JS注意:需要先做事件筛选,再做属性修改。因为 profile 等类型的数据也是可以被修改的。
sensors.registerPropertyPlugin({ isMatchedWithFilter:function(data){ return data.type.slice(0, 7) === 'profile'; } properties:function(data){ delete data.properties['aaa'] = 'bbb'; } });
JS对所有类型数据,修改属性值。注意:这种用法一般情况下是错误的,会导致所有数据(包括 profile 等)都被修改,引发意想不到的情况
sensors.registerPropertyPlugin({ properties:function(data){ data.properties['aaa'] = 'bbb'; } });
JS直接在 properties 里进行筛选和属性修改也是可以的
sensors.registerPropertyPlugin({ properties:function(data){ if(data.event === '$MPViewScreen'){ data.properties['$title'] = 'http://xxxx'; } } });
JS
注:本文档内容为神策产品使用和技术细节说明文档,不包含适销类条款;具体企业采购产品和技术服务内容,以商业采购合同为准。