我是标题
  • 介绍
  • 产品使用指南
    • 新手入门
      • 神策分析是什么
      • 神策分析能做什么
      • 神策分析怎么解决问题
      • 神策分析的数据来源
    • 功能介绍
      • 基本概念
        • 行为分析常用名词
        • 神策分析相关名词
        • 基础指标配置说明
        • 属性筛选条件说明
      • 分析模块
        • 事件分析
        • Session 分析
        • 漏斗分析
        • 留存分析
        • 分布分析
        • 归因分析
        • 用户路径分析
        • 网页热力分析
        • APP 点击分析
        • 间隔分析
        • 用户属性分析
        • 搜索用户
        • 用户分群
          • 用户分群(1.14 版本)
          • 用户分群
          • 用户分群(1.13 之前版本)
        • 用户行为序列
        • 书签及数据概览
          • 数据概览(1.11 之前版本)
          • 概览分组
          • 渠道对比组件使用说明
          • 预置概览
        • 自定义查询
      • 辅助功能
        • 事件分类
        • 查询抽样
        • 权限管理
          • 角色权限与账号(1.14 版本)
        • 预警管理
        • 元数据管理
        • 可视化全埋点
        • 维度字典
        • 正则表达式
        • 推荐分享
        • 小版本升级
        • 掌上神策分析
  • 技术指南
    • 数据采集
      • 数据模型
      • 数据格式
      • 调试模式
        • 调试模式动态配置
      • 数据校验
      • 导入实时查看
        • 导入实时查看(新版本)
        • 导入实时查看(老版本)
      • 埋点管理
      • 多项目
      • 如何准确的标识用户
      • 新增用户及首日首次标记
    • 快速接入指南
      • 接入前准备(全员阅读)
      • 如何准确的标识用户 (全员阅读)
      • 事件设计 (需求方阅读)
      • SDK 采集数据 (开发必读)
        • JavaScript 快速使用
        • 微信小程序快速使用
        • Android 快速使用
        • iOS 快速使用
        • Java 快速使用
      • 数据校验(测试必读)
    • 客户端 SDK
      • C++ SDK
      • 微信小程序 SDK
        • 微信小程序 SDK 历史版
        • 微信小程序 SDK 标准版
        • 微信小程序 SDK 插件版
        • 微信小程序 SDK 自定义全埋点版
      • 支付宝小程序 SDK
      • 百度小程序 SDK
      • JavaScript SDK
        • 常见问题
        • 全埋点(AutoTrack)
        • 点击图(HeatMap)
        • 单页面
        • 关闭页面发数据
      • Android SDK
        • 常见问题
        • 全埋点(AutoTrack)
        • 点击图(HeatMap)
      • iOS SDK
        • 常见问题
        • 全埋点(AutoTrack)
        • 点击图(HeatMap)
      • 打通 App 与 H5
      • App 第三方框架
        • React Native(Android & iOS)
        • Flutter(Android & iOS)
        • Weex(iOS)
        • Weex(Android)
        • 第三方 H5 页面嵌入 js(iOS)
        • 第三方 H5 页面嵌入 js(Android)
      • APICloud SDK
    • 服务端 SDK
      • C SDK
        • C SDK Demo
      • CSharp SDK
      • Java SDK
        • Java SDK Demo
      • Python SDK
      • PHP SDK
      • Ruby SDK
      • Golang SDK
      • Node SDK
    • 公共属性
    • 渠道追踪
      • App 渠道追踪
      • Web 渠道追踪
      • 小程序渠道追踪
      • 渠道对接
      • 渠道链接管理
    • 数据导入
      • BatchImporter
      • LogAgent
        • LogAgent 场景使用示例
      • FormatImporter
      • HdfsImporter
      • 数据导入常见问题
    • 数据导出
      • 查询 API
      • 订阅实时数据
      • 使用 JDBC 进行数据访问
      • 数据迁移
    • 辅助工具
      • 数据清理工具使用说明
      • 多项目管理工具使用说明
      • 元数据创建工具使用说明
      • 环境检测工具使用说明
    • 高级功能
      • 数据接入 API
      • App 消息推送
      • 虚拟属性和维度表
      • 数据预处理模块
      • 服务转发配置
      • 使用 HTTPS 的数据接入
      • API
        • 查询 API
        • 功能 API
          • 分群 API(1.12 及之前版本)
          • 分群 API(1.13 版本)
          • 分群 API(1.14 版本)
          • 埋点统计 API(1.11 及之前版本)
          • 埋点统计 API(1.12 及之后版本)
      • 第三方登录
      • 数据归档
  • 最佳实践
    • 功能应用示例
      • 事件分析
      • 漏斗分析
      • 留存分析
      • 分布分析
      • 间隔分析
      • 用户分群
      • 自定义查询
      • 用户行为序列
    • 复杂分析场景
      • 定位商品销量变化原因
  • 常见问题
  • 产品更新日志
Powered by GitBook
On this page
  • 概述
  • 1. Android 公共属性
  • 1.2 Android 设置动态公共属性
  • 2. iOS 公共属性
  • 2.1 iOS 设置事件公共属性
  • 2.2 iOS 设置动态公共属性
  • 3. JavaScript 公共属性
  • 4. 微信小程序公共属性
  • 5. 服务端公共属性

Was this helpful?

  1. 技术指南

公共属性

概述

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

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 设置动态公共属性

        // 初始化 SDK 后,设置动态公共属性
        SensorsDataAPI.sharedInstance().registerDynamicSuperProperties(new SensorsDataDynamicSuperProperties() {
            @Override
            public JSONObject getDynamicSuperProperties() {
                try {
                    // 比如 isLogin() 是用于获取用户当前的登录状态,SDK 会自动获取 getDynamicSuperProperties 中的属性添加到触发的事件中。
                    boolean bool = isLogin();
                    return new JSONObject().put("isLogin",bool);
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return null;
            }
        });

2. iOS 公共属性

2.1 iOS 设置事件公共属性

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

    // 将'平台类型'作为事件公共属性,后续所有触发事件都会添加上 "PlatformType" 属性,且属性值为 "iOS"
    [[SensorsAnalyticsSDK sharedInstance] registerSuperProperties:@{@"PlatformType" : @"iOS"}];

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

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

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

2.2 iOS 设置动态公共属性

    [[SensorsAnalyticsSDK sharedInstance] registerDynamicSuperProperties:^NSDictionary<NSString *,id> * _Nonnull{
        //比如 LoginManager 的 isLogin 方法是用于获取 App 当前的登录状态
        BOOL isLogin = [LoginManager isLogin];
        return @{@"isLogin":@(isLogin)};
    }];

3. JavaScript 公共属性

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

<script>
(function(para) {
  var p = para.sdk_url, n = para.name, w = window, d = document, s = 'script',x = null,y = null;
  w['sensorsDataAnalytic201505'] = n;
  w[n] = w[n] || function(a) {return function() {(w[n]._q = w[n]._q || []).push([a, arguments]);}};
  var ifs = ['track','quick','register','registerPage','registerOnce','clearAllRegister','trackSignup', 'trackAbtest', 'setProfile','setOnceProfile','appendProfile', 'incrementProfile', 'deleteProfile', 'unsetProfile', 'identify','login','logout','trackLink','clearAllRegister'];
  for (var i = 0; i < ifs.length; i++) {
    w[n][ifs[i]] = w[n].call(null, ifs[i]);
  }
  if (!w[n]._t) {
    x = d.createElement(s), y = d.getElementsByTagName(s)[0];
    x.async = 1;
    x.src = p;
    y.parentNode.insertBefore(x, y);
    w[n].para = para;
  }
})({
      sdk_url: '在 github 下载新版本的 sensorsdata.min.js',
      name: 'sensors',
      server_url:'数据接收地址',
      //heatmap_url神策分析中点击分析及触达分析功能代码,代码生成工具会自动生成。如果神策代码中 `sensorsdata.min.js` 版本是 1.9.1 及以上版本,这个参数必须配置,低于此版本不需要配置。
      heatmap_url: "在 github 下载新版本的 heatmap.min.js",
      //web_url 神策分析中点击分析及触达分析功能会用到此地址,代码生成工具会自动生成。如果神策后台版本及 `sensorsdata.min.js` 均是 1.10 及以上版本,这个参数不需要配置。
      web_url:"神策分析后台地址",
      heatmap: {}
    });
    //以异步加载 SDK 为例,神策 SDK 初始化完成,此时调用设置公共属性的方法,来保证之后的事件都有这两个属性。
    sensors.registerPage({
      current_url: location.href,
      referrer: document.referrer
    });
    sensors.track('button_A_click'); // 这时候,这个 button_A_click 事件,就会带有current_url和referrer这些属性。且仅对当前页面有效。
</script>

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

4. 微信小程序公共属性

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

    let sensors = require('./utils/sensorsdata.min.js');
    // 将'平台类型'作为事件公共属性,后续所有触发事件都会添加上 PlatformType 属性,且属性值为 'miniprogram'
    sensors.registerApp({
         PlatformType:'miniprogram'
    });
    sensors.init();

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

5. 服务端公共属性

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

    Map<String, Object> properties = new HashMap<String, Object>();
    // 服务器应用版本
    properties.put("ServerVersion", "1.2");
    // 服务器机房地址
    properties.put("Location", "BeiJing");
    // 设置事件公共属性
    sa.registerSuperProperties(properties);

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

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

PreviousNode SDKNext渠道追踪

Last updated 6 years ago

Was this helpful?

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

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

2.0.1
1.10.8