公共属性

概述

如果某个事件的属性,在所有事件中都会出现,可以将该属性设置为事件公共属性。设置公共属性后,之后触发的所有事件,都会自动加上设置的公共属性。

1. Android 公共属性

1.1 Android 设置事件公共属性

可以通过 registerSuperProperties() 设置事件公共属性。 例如将平台类型设置为事件的公共属性,设置方法如下:

    // 将'平台类型'作为事件公共属性,后续所有触发事件都会添加上 "PlatformType" 属性,且属性值为 "Android"
    try {
        JSONObject properties = new JSONObject();
        properties.put("PlatformType", "Android");
        SensorsDataAPI.sharedInstance().registerSuperProperties(properties);
    } catch (JSONException e) {
        e.printStackTrace();
    }

重复调用 registerSuperProperties 会覆盖之前已设置的公共属性,公共属性会保存在 App 本地存储中。可以通过 unregisterSuperProperty() 删除一个公共属性,使用 clearSuperProperties() 会删除所有已设置的事件公共属性。

当公共属性和事件属性的 Key 冲突时,事件属性优先级最高,它会覆盖公共属性。

注意:请在开启自动采集( enableAutoTrack )方法之前调用 registerSuperProperties 方法,确保每个事件都会添加已设置的公共属性。

1.2 Android 设置动态公共属性

2.0.1 及以后的版本可以通过 registerDynamicSuperProperties 方法设置动态公共属性,设置之后 SDK 会自动获取 getDynamicSuperProperties 中的属性添加到触发的事件中。

2. iOS 公共属性

2.1 iOS 设置事件公共属性

可以通过 registerSuperProperties: 方法设置事件公共属性。 例如将平台类型设置为事件的公共属性,设置方法如下:

重复调用 registerSuperProperties: 会覆盖之前已设置的公共属性,公共属性会保存在 App 本地存储中。可以通过 unregisterSuperProperty: 删除一个公共属性,使用 clearSuperProperties: 会删除所有已设置的事件公共属性。

当公共属性和事件属性的 Key 冲突时,事件属性优先级最高,它会覆盖公共属性。

注意:请在开启自动采集( enableAutoTrack: )方法之前调用 registerSuperProperties: 方法,确保每个事件都会添加已设置的公共属性。

2.2 iOS 设置动态公共属性

1.10.8 及以后版本可以通过 registerDynamicSuperProperties: 方法设置动态公共属性,设置之后 SDK 会自动将设置的动态属性添加到触发的事件中。

3. JavaScript 公共属性

可以通过 registerPage 方法,为页面设置公共属性。 比如想在当前页面的后续事件中都注入当前页面地址及前向地址属性,此方法设置公共属性只针对当前页面有效:

当公共属性和事件属性的 Key 冲突时,事件属性优先级最高,它会覆盖公共属性。

4. 微信小程序公共属性

可以在 app.js 文件引入 sensorsdata.min.js 文件之后, init() 方法调用之前使用 registerApp() 方法设置公共属性。 例如将平台类型设置为事件的公共属性,设置方法如下:

当公共属性和事件属性的 Key 冲突时,事件属性优先级最高,它会覆盖公共属性。

5. 服务端公共属性

以 Java 端为例。可以通过 registerSuperProperties() 设置公共属性。例如将服务器的应用版本及机房地址设置为事件的公共属性,设置方法如下:

设置公共属性后,再通过 track() 追踪事件时,公共属性会被添加到每个事件中,使用 clearSuperProperties() 会删除所有已设置的事件公共属性。

当公共属性和事件属性的 Key 冲突时,事件属性优先级最高,它会覆盖公共属性。

Last updated

Was this helpful?