创建受众规则与属性
本页合并「创建受众规则」与「用户属性」两部分。先介绍作为受众底层构件的属性类型与管理,再讲规则编辑器的字段、运算符与 AND / OR 组合。
用户属性
属性(Attribute) 是 ABC 已知的一项用户信息——所在国家、当前 App 版本、加入时长等。受众通过「属性 + 运算符 + 取值」描述自己要覆盖的人群。
在哪里管理
左侧导航点 Audience → Attributes,列表展示项目内可用的全部属性:

顶部 Active / Archived 过滤器按状态筛选,搜索框对名称、描述、创建人做子串匹配。
数据类型
每个属性有且只有一种数据类型,创建后不可修改。数据类型决定受众规则里能选哪些运算符。
| 类型 | 适用场景 | 常见运算符 |
|---|---|---|
| String | 类别型标签——国家、平台、渠道 | equals、does not equal、is in、is not in、contains |
| Number | 连续值或计数值——RAM、会话次数 | equals、is less than、is greater than、is between 等 |
| Boolean | 二值标志——is_paying、is_internal_tester | equals、does not equal |
| Version | 形如 1.3.0 的语义化版本号 | equals、is less than、is greater than 等 |
⚠️ Version 是结构化类型,不是字符串:
1.10.0会被正确识别为大于1.9.0。版本号字段不要选 String,否则字符串字典序排序会让1.10.0排到1.9.0之前。
创建属性

- 名称 —— 受众规则里下拉选项名,用 snake_case(
first_install_version) - 数据类型 —— 必填,创建后不可改,选错只能归档后重新创建
- 描述(可选) —— 建议写清楚这个属性代表什么、值从哪里来
如何匹配用户属性
ABC 计算受众和属性时,读取的是请求带上来的用户对象。有两条注入路径:
- 来自 SDK / HTTP API —— 在每次需要分流的请求里,把字段值放进用户对象。对客户端实验来说,这是唯一可行的路径
- 来自数据仓库 —— 对「从仓库用户属性表读取属性」的实验,平台属性的名称必须与仓库表上的列名一致
属性的生命周期与限制
- 不支持改名 —— 要改名,归档旧属性,注册新名字,再把所有引用它的受众改过去
- 不支持改数据类型 —— 创建时禁用该字段
- Archive 把属性从 Active 列表和规则编辑器下拉里移除
- 一旦属性被某个正在被活跃实验引用的受众间接引用,就不能修改这条属性。要改,先归档对应受众,或等引用它的实验跑完
- 归档后的属性可以在 Archived 视图里看到,并可恢复
受众规则
受众规则是决定哪些用户属于一个受众的布尔表达式。本节讲清规则编辑器的字段、运算符按数据类型限定的方式,以及 OR / AND 条件的求值顺序。
前置条件
- 你打算引用的属性都已在 Audience → Attributes 注册好
- 你在项目里有编辑权限
操作步骤

- 左侧导航点 Audience
- 受众列表右上角点 Create → 进入 Create a New Audience 页面
1. 基础信息
| 字段 | 必填 | 说明 |
|---|---|---|
| 名称 | 是 | 其他入口(实验 setup、变更日志)都按这个名字引用本受众。项目内唯一 |
| 描述 | 否 | 列表页可搜。建议写清意图,例如「iOS 用户、1.3.0+,用于新引导流程实验」 |
| 创建人 | 是 | 默认你自己。可加更多负责人,每个都能编辑 |
2. 规则
每行规则由三个字段组成:
| 字段 | 作用 |
|---|---|
| Select attribute | 从项目属性目录里选一个属性 |
| Select operator | 选比较运算符。可选项由属性数据类型决定 |
| Search or add attribute values | 选一个或多个比较值,按 Enter 确认 |
值字段接受自由输入——输入一个值后按 Enter 加为一个 chip。重复操作可加入多个值;同一行里 chip 列表代表「命中其一即满足」的语义。
运算符与数据类型
可见运算符依属性的数据类型而定:
| 数据类型 | 运算符 |
|---|---|
| String | equals、does not equal、is in、is not in、contains |
| Boolean | equals、does not equal |
| Number | equals、does not equal、is in、is not in、is less than、is greater than、is less than or equal to、is greater than or equal to、is between |
| Version | equals、does not equal、is in、is not in、is less than、is greater than、is less than or equal to、is greater than or equal to、is between |
Version 运算符按结构比较版本号,
1.10.0会被正确识别为大于1.9.0。
用 AND / OR 组合多行
规则编辑器有两层布尔逻辑:
- OR 行 —— 在同一个条件组里加多行表示「任意一行命中即为真」。平台先求 OR
- AND 组 —— 新增一个组表示「所有组都必须命中」。两组之间会显示 AND 文字
整条规则是「积之和」形式:(行 OR 行) AND (行 OR 行)。
示例 1:版本 + 设备

语义:App 版本 ≥ 1.3.0 且 RAM > 10MB。
示例 2:多国家组合

- 第一组两条
country行用is in——日本或韩国用户都满足该块 - 第二组只有一条
app_version行 - 两组之间以 AND 连接,用户必须同时满足两组
这比为每个国家单独建受众更清晰,后续新增地区时也更容易维护。
之后再修改规则
一旦受众被至少一个 In Progress 实验引用,规则编辑器进入只读状态。要修改规则:
- 等引用它的实验跑完,或先把它们归档
- 打开受众,点 Edit,调整每行规则
- 保存
编辑之后才启动的实验按新规则评估;编辑发生时已经在跑的实验,分组结果保持不变,但新的曝光按新规则求值。
更稳妥的做法:中途修改规则时,复制一份新受众而不是改原受众