标签表达式

标签格式

移动推送支持单Tag多Tag推送:

  • 单Tag推送时,TargetValue的值是普通字符串,直接存放该Tag的名字即可。

  • 多Tag推送时,TargetValue需要使用标签表达式,如下所述。

标签表达式

当推送目标为标签(Target=TAG)时,可以选择在标签字段(TargetValue)中使用标签表达式,以实现自定义的多标签条件推送。

语法

标签表达式通过使用条件操作符和标签的嵌套与组合,来表达多标签之间的复杂条件关系,其描述基于JSON格式。

操作符和标签类型对象在JSON结构中使用了不同的关键字进行标识,如下表所示:

关键字

类型

含义

and

操作符

表达“且”关系,可作用于一个或多个子表达式或标签

or

操作符

表达“或”关系,可作用于一个或多个子表达式或标签

not

操作符

表达“非”关系,只能作用于一个标签

tag

标签

具体的标签节点,存储业务标签名称

每一个tag对应的是KeyTypeClientKey的键值对,在解析TagValue的表达式时,不会把tag解析为最终的deviceId,而是解析为KeyTypeClientKey的键值对进行运算,并取得最终的运算结果。这里的KeyType指的是能直接和tag进行绑定的DEVICEACCOUNTALIAS

以表达式TargetValue={"and": [{"tag": "tag1"}, {"tag": "tag2"}]} 为例,具体的计算逻辑举例如下:

lQLPJyEW4asc1VrNAyTNBmGwR4A0EQ9kZLYEVAVEu8DQAA_1633_804..png

限制

  • 操作符限制:

    • andor操作符的最大嵌套层数:2

    • andor操作符的最大操作数:10

    • Tag计算中没有全集概念,因此not不能单独存在

  • 推送频次限制:

    • 标签结果集在500万以上:2次/天

    • 标签结果集在100万到500万之间:20次/天

    • 标签结果集在10万到100万之间:100次/天

    • 标签结果集在10万以内:不限制

  • 如果您有更大的使用需求,请提工单申请。

示例

{
  "and": [
    {
      "tag": "男性"
    }, {
      "not": {
        "tag": "90后"
      }
    }, {
      "or": [
        {
          "tag": "活跃"
        }, {
          "not": {
            "tag": "国外"
          }
        }
      ]
    }
  ]
}

上述表达式将筛选出标签符合”男性、非90后、活跃或非国外“的用户。