标签表达式
标签格式
移动推送支持单Tag和多Tag推送:
单Tag推送时,
TargetValue
的值是普通字符串,直接存放该Tag的名字即可。多Tag推送时,
TargetValue
需要使用标签表达式,如下所述。
标签表达式
当推送目标为标签(Target=tag
)时,可以选择在标签字段(TargetValue
)中使用标签表达式,以实现自定义的多标签条件推送。
语法
标签表达式通过使用条件操作符和标签的嵌套与组合,来表达多标签之间的复杂条件关系,其描述基于JSON格式。
操作符和标签类型对象在JSON结构中使用了不同的关键字进行标识,如下表所示:
关键字 | 类型 | 含义 |
---|---|---|
| 操作符 | 表达“且”关系,可作用于一个或多个子表达式或标签 |
| 操作符 | 表达“或”关系,可作用于一个或多个子表达式或标签 |
| 操作符 | 表达“非”关系,只能作用于一个标签 |
| 标签 | 具体的标签节点,存储业务标签名称 |
每一个tag对应的是KeyType和ClientKey的键值对,在解析TagValue的表达式时,不会把Tag解析为具体的deviceId,而是解析为KeyType和ClientKey的键值对进行运算,并取得最终的运算结果。
例如:一个deviceId属于别名alias1、alias2,alias1、alias2分别属于tag1、tag2,那么TargetValue={"and": [{"tag": "tag1"}, {"tag": "tag2"}]} 等价于求{<KeyType=alias, clientKey=alias1>}∩{<KeyType=alias, clientKey=alias2>},最终结果为{}。
限制
操作符限制:
and
和or
操作符的最大嵌套层数:2and
和or
操作符的最大操作数:10
推送频次限制:
标签结果集在500万以上:2次/天
标签结果集在100万到500万之间:20次/天
标签结果集在10万到100万之间:100次/天
标签结果集在10万以内:不限制
如果您有更大的使用需求,请提工单申请。
示例
{
"and": [
{
"tag": "男性"
},
{
"not": {
"tag": "90后"
}
},
{
"or": [
{
"not": {
"tag": "国外"
}
},
{
"tag": "活跃"
}
]
}
]
}
上述表达式将筛选出标签符合”男性、非90后、活跃或非国外“的用户。