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