Skip to content

创建受众规则与属性

本页合并「创建受众规则」与「用户属性」两部分。先介绍作为受众底层构件的属性类型与管理,再讲规则编辑器的字段、运算符与 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_payingis_internal_testerequals、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 注册好
  • 你在项目里有编辑权限

操作步骤

受众规则配置步骤

  1. 左侧导航点 Audience
  2. 受众列表右上角点 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 列表代表「命中其一即满足」的语义。

运算符与数据类型

可见运算符依属性的数据类型而定:

数据类型运算符
Stringequals、does not equal、is in、is not in、contains
Booleanequals、does not equal
Numberequals、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
Versionequals、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 组合多行

规则编辑器有两层布尔逻辑:

  1. OR 行 —— 在同一个条件组里加多行表示「任意一行命中即为真」。平台先求 OR
  2. AND 组 —— 新增一个组表示「所有组都必须命中」。两组之间会显示 AND 文字

整条规则是「积之和」形式:(行 OR 行) AND (行 OR 行)

示例 1:版本 + 设备

受众规则示例:版本与设备

语义:App 版本 ≥ 1.3.0 RAM > 10MB。

示例 2:多国家组合

受众规则示例:多国家

  • 第一组两条 country 行用is in——日本韩国用户都满足该块
  • 第二组只有一条 app_version
  • 两组之间以 AND 连接,用户必须同时满足两组

这比为每个国家单独建受众更清晰,后续新增地区时也更容易维护。

之后再修改规则

一旦受众被至少一个 In Progress 实验引用,规则编辑器进入只读状态。要修改规则:

  1. 等引用它的实验跑完,或先把它们归档
  2. 打开受众,点 Edit,调整每行规则
  3. 保存

编辑之后才启动的实验按新规则评估;编辑发生时已经在跑的实验,分组结果保持不变,但新的曝光按新规则求值。

更稳妥的做法:中途修改规则时,复制一份新受众而不是改原受众