标签功能

最近更新时间:2021-08-05 15:59:26

标签是精准推送中会用到的功能,开发者可以调用移动推送 TPNS SDK 或服务端 API,为设备绑定一个/多个标签。在完成绑定之后,就可以针对标签来进行推送,方便进行更精细化的运营。

标签推送场景

用户促活与流失召回

App 运营中经常需要针对新用户进行消息提醒,从而作为新用户体验旅程设计的重要一环,提高新用户的留存率;通过在推送时选择 TPNS 提供的“设备新增”标签,即可快速对指定日期用户进行推送,方便快捷。
同样,我们也提供了“沉默用户”标签,可以指定 N 日内未活跃的用户作为推送对象,对其进行消息推送将这些流失用户进行召回,提升 App 活跃用户数。

赛事订阅通知

某直播 App 10月24日18:00有一个足球比赛直播,10月20日开始开放直播预约,希望在直播开始前,给订阅这个节目的用户推送直播即将开始的通知。
在用户订阅这个节目时,可以将这个节目的主题"10241800足球"作为标签和这个用户设备 token 进行绑定,当直播快开始时,选择"足球"这个标签进行比赛即将开始的推送,当比赛完毕后,再调用 TPNS 的解绑标签接口,将"10241800足球"标签和设备 token 进行解绑。

续费通知

应用 A 希望对3天后会员到期的用户推送续费通知,假设当前某设备 token 绑定的标签为"football"和"deadline:20200210",用户在2020年2月9号续期了一个月,则此时需用"deadline:20200310"的标签将"deadline:20200210"替换掉,即 deadline 这个标签类别只能有一个值(最新值),此时可调用 TPNS 提供的 kv 覆盖接口,在不影响其他标签的情况下,解绑"deadline:20200210"标签之后,再绑定"deadline:20200310"标签,推送时(可设置定时推送),选择标签为当天时间+3天的标签,如当天日期是20200307,则可选择标签为"deadline:20200310"进行续费通知的推送。

标签概览

TPNS 目前提供了两大类标签功能,包括用户自定义标签和 TPNS 平台侧维护的预设标签,标签类别如下表所示:

标签类型 场景 tpns 内置 tag_type 限制 示例
自定义标签 客户自定义,例如会议 ID,班级 ID,用户喜好(篮球,数码产品等)等 xg_user_define
  • 最多可以有10000个自定义 tag(如需提高该限制,请联系 在线客服
  • 每个设备 token 最多可绑定100个自定义 tag(如需提高该限制,请联系 在线客服)
  • 每个自定义 tag 可绑定的设备 token 数量无限制
  • love_basketball, love_shopping, male 等
    系统预设标签 App 版本 xg_auto_version TPNS 系统预设,无限制 1.0.1,1.0.2等
    省份 xg_auto_province guangdong,hunan,shanghai等
    活跃信息 xg_auto_active 20200521,20200522等
    TPNS SDK 版本 xg_auto_sdkversion 1.1.5.4,1.1.5.4,1.1.6.1等
    系统版本 xg_auto_systemversion 10.0.0, 12.4.5等
    系统语言 xg_auto_systemlanguage zh,en,ja 等
    国家 xg_auto_country CN,US 等(大写字母)
    手机品牌 xg_auto_devicebrand xiaomi,huawei 等
    机型 xg_auto_deviceversion Samsung Note4, vivo Y75A 等
    最近连续活跃 暂不支持 API 调用 最近 N 天活跃的设备,N 取值为[1,30]的任意一值,格式为 string。 最近"10"天活跃的设备
    最近连续沉默 暂不支持 API 调用 最近 N 天不活跃的设备,N 取值为[1,30]的任意一值,格式为 string。 最近"10"天不活跃的设备
    最近注册 暂不支持 API 调用
  • 最近注册的设备,标签取值为起始日期至截止日期 [startDate, endDate],格式 [YYYYmmdd,YYYYmmdd]
  • startDate 和 endDate 之间的日期间隔不能超过30天
  • endDate 不能为当天
  • startDate 不能超过90天
  • startDate 和 endDate 可以相同
  • [20200901,20200910]注册的设备
    说明:

    在使用 API 进行标签推送时需使用 TPNS 内置 tag_type 设置标签类型。

    使用前准备

    自定义标签管理

    自定义标签是指用户可以自己定义设备标签名字的标签设置方式,目前 TPNS 提供了两种方式,一种是用 REST API 进行标签设置,另一种是通过终端 SDK 进行标签设置。

    方式一:通过 rest API 进行标签设置
    自定义标签的绑定和解绑。
    API 具体参见文档:标签绑定

    方式二:通过终端 SDK 进行标签设置
    iOS SDK 进行标签的设置,详情请参见文档 自定义标签设置
    Android SDK 进行标签的设置,详情请参见文档 自定义标签设置

    说明:

    • 单个设备最多可绑定100个标签(超出可联系 在线客服 申请提高额度)。
    • 单个 App 最多可绑定10000个标签(超出可联系 在线客服 申请提高额度)。
    • 单个标签不能超过50个字节。
    • 批量绑定解绑标签时,单次请求标签数量不能超过500个。

    自定义标签使用场景及关键字

    标签推送适用于标签绑定设备多(一般绑定设备数超过10个),且推送频次较少(一般该标签的日推送数不超过10次)的场景,针对绑定设备数较小且推送频次较多的标签推送场景,推荐使用账号推送,即通过账号绑定多个设备,用账号替代标签来进行推送。

    关键字
    冒号":"是标签绑定时的关键字,用户标签的 key-value 分割,例如用户给某个设备 token 打了"level:3"的标签,则 TPNS 后台会将"level"作为这个标签的 key,"3"作为标签的 value,这个不影响用户的实际推送,还是按"level:3"这个标签来推,key-value 方式存储主要是方便后续的同类标签的覆盖,如这个设备 token 还绑定了其他标签,如"male",即此时该设备对应两个标签,"male"和"level:3",如果这个设备对应的会员等级升级到4级了,用户希望用"level:4"标签来覆盖"level:3"标签,而不影响"male"标签,此时可直接调用 kv 覆盖接口来给这个设备设置"level:4"标签,这个设备 token 所绑定的标签则变为"male"和"level:4"。

    绑定/解绑标签

    TPNS 提供了单标签绑定/解绑单设备,单标签绑定/解绑多设备,多标签绑定/解绑单设备,多标签绑定/解绑多设备的接口。

    单标签单设备

    推荐场景

    1. 调用终端 SDK 接口,如 App 内自动获取用户订阅频道,对该频道标签和设备 token 进行绑定,反之进行解绑。
    2. 非频繁的调用 Rest API 接口,如接入测试时的调用。

    标签绑定用法

    {
      "operator_type": 1,
      "tag_list": ["tag"],
      "token_list": ["token"]
    }

    标签解绑用法

    {
      "operator_type": 2,
      "tag_list": ["tag"],
      "token_list": ["token"]
    }

    使用限制

    • 每个标签最大50个字节。
    • 接口调用逻辑为同步。

    多标签单设备

    推荐场景

    1. 调用终端 SDK 接口,如 App 内自动获取用户特征信息,如年龄,省份,性别等标签信息,对这些标签和用户设备 token 进行绑定,反之进行批量解绑。
    2. 调用 Rest API 接口,如 App 运营人员从公司内其他渠道获取该设备对应的订阅信息,如单身,爱好足球,喜欢看电影等,对这些标签和该用户设备 token 进行绑定,反之进行批量解绑。

    标签绑定用法

    {
       "operator_type": 3,
       "tag_list": ["tag1","tag2"],
       "token_list": ["token"]
    }

    标签解绑用法

    {
      "operator_type": 4,
      "tag_list": ["tag1","tag2"],
      "token_list": ["token"]
    }

    使用限制

    • 每个标签最大50个字节。
    • 每次调用标签数量最大500个。
    • 接口调用逻辑为同步。
    单标签多设备

    推荐场景
    此时只能调用 Rest API 接口,如 App 运营人员希望给所有爱好足球的用户打上足球的标签,则可利用此接口进行批量绑定,反之进行批量解绑。

    标签绑定用法

    {
       "operator_type": 7,
       "tag_list": ["tag"],
       "token_list": ["token1","token2"]
    }

    标签解绑用法

    {
       "operator_type": 8,
       "tag_list": ["tag"],
       "token_list": ["token1","token2"]
    }

    使用限制

    • 每个标签最大50个字节。
    • 每次调用设备 token 数量最大500个。
    • 接口调用逻辑为同步。
    多标签多设备

    推荐场景
    此时只能调用 Rest API 接口,如 App 运营人员希望给喜欢足球的用户打上足球的标签,喜欢篮球的用户打上篮球的标签,则可以利用此接口进行批量绑定,反之进行批量解绑。

    标签绑定用法

    {
       "operator_type": 9,
       "tag_token_list": [{"tag":"tag1","token":"token1"},{"tag":"tag2","token":"token2"}]
    }

    标签解绑用法

    {
       "operator_type": 10,
       "tag_token_list": [{"tag":"tag1","token":"token1"},{"tag":"tag2","token":"token2"}]
    }

    使用限制

    • 每个标签最大50个字节。
    • 每次调用设备token数量最大500个。
    • 接口调用逻辑为同步。

    标签覆盖

    TPNS 提供了两种标签覆盖方式,一是普通覆盖,二是按标签类别进行覆盖,又名 kv 覆盖,此时":"号为关键字,作为 key-value 值的分割符。

    普通覆盖

    推荐场景

    1. 调用终端 SDK 接口,如该设备所订阅的所有频道信息已经失效,则需要对这些频道标签和设备进行一一解绑,但需将这些频道标签遍历出来再逐个解绑,则会很不方便,故此时可调用这个接口进行覆盖。
    2. 调用 Rest API 接口,如 App 运营人员希望给设备重新设置标签,不想让这个设备受到之前标签的干扰,故可调用这个接口进行覆盖。

    标签覆盖用法

    {
       "operator_type": 6,
       "tag_list": ["test", "level:1",, "level:2"], 
       "token_list": ["token"]
    }

    使用限制

    • 每个标签最大50个字节。
    • 接口调用逻辑为异步,建议调用的频率间隔1秒以上。

    kv覆盖

    推荐场景

    1. 调用终端 SDK 接口。
    2. 调用 Rest API 接口。

    使用说明:以":"进行分割,":"前作为标签类别,":"后面的作为这个标签具体的值,例如 level:2 表示该设备所在的等级为2级,假如这个设备对应的等级升级到3级,则需要先删除 level:2 标签,在添加 level:3 标签,如果客户明确知道这个设备仅有 level:2 这一个标签,则可调用普通覆盖接口进行覆盖,但往往一个设备会对应多个标签,如该设备还对应一个 test 标签,此时要精确删除 level:2 标签,就需要客户维护该设备对应的全部标签,或者调用 TPNS 接口把该设备对应的历史标签查找出来再进行删除,这就带来很多的不方便,故可调用此接口,仅进行 level 类标签的覆盖。

    标签覆盖用法

    {
       "operator_type": 6,
       "tag_list": ["test:2", "level:3"], 
       "token_list": ["token"]
    }

    接口说明:当且仅当 tag_list 内全部标签都带有":"时,才会进行 kv 覆盖,例如该 token 已有 test,level:1标签,调用此接口后,该 token 的标签列表则变为 test, test:2, level:3。
    使用限制

    • 每个标签最大50个字节。
    • 每次调用标签数量最大500个。
    • 接口调用逻辑为异步,建议调用的频率间隔1秒以上。

    删除标签场景

    TPNS 提供了两种删除标签的方式,一是删除单设备对应的全部标签,二是删除应用对应的某标签。

    删除单设备对应的全部标签

    推荐场景

    1. 调用终端 SDK 接口。
    2. 调用 Rest API 接口。

    使用说明: 可利用此接口将设备对应的全部历史标签删除,一般针对设备对应的过期标签,或由于运营人员操作失误,希望重新对设备进行标签设置的场景。

    标签删除用法

    {
       "operator_type": 5,
       "token_list": ["token"]
    }

    使用限制

    • 每个标签最大50个字节。
    • 接口调用逻辑为异步,建议调用的频率间隔1秒以上。

    删除应用对应的某标签

    推荐场景
    (1)此时只能调用 Rest API 接口
    说明:可利用此接口将应用对应的某些标签进行删除,即对这些标签与对应绑定的设备进行全部解绑之后,在从应用的标签列表中移除,一般应用在一些彻底废弃的标签,如测试时引入的一些test标签,在正式上线之后,将这些test标签移除。
    标签删除用法

    {
       "tag_list": ["tag1", "tag2"]
    }

    使用限制

    • 每个标签最大50个字节。
    • 每次调用标签数量最大500个。
    • 接口调用逻辑为异步,建议调用的频率间隔1秒以上。

    预设标签管理

    • 预设标签是指 TPNS 平台侧维护的标签,即在用户设备注册或连接到 TPNS 服务器时 SDK 自动采集的标签信息,目前 TPNS 平台维护的预设标签包括:App 版本,系统版本,省份,活跃信息,系统语言,SDK 版本,国家&地区,手机品牌,手机机型。
    • 每个设备只会绑定最新的预设标签,并会进行自动互斥,如某设备的 App 版本当前为1.0.1,当这个设备的 App 版本升级到1.0.2时,则会自动将该设备和1.0.1版本标签进行解绑,并重新对该设备和1.0.2版本标签进行绑定。

    设备绑定标签查询

    可在腾讯云管理台的【App推送管理-排查工具】页面,根据设备 token 查询具体的预设标签和自定义标签。
    如图所示:

    开始使用

    标签推送支持使用预设标签或自定义标签进行推送,同时您也可以选择预设标签和自定义标签进行组合(与或组合)推送,多方面满足您的运营需求。

    控制台使用

    腾讯云管理台中进行标签推送,如下图所示步骤。

    1. 先选择标签类型,可选自定义标签,和预设标签中的某类标签。
    2. 在选定标签类型之后,可选择具体需要推送的标签。

      选中标签之后,还会显示选中标签所对应的绑定设备数,上图表述的标签组合意思为:对广东和江苏的用户,且在20200423,20200422和20200421这三天活跃过,并且是男性的用户进行推送。之后点击预览即可进行对应目标设备的推送。

    调用 API 标签推送

    在 Push API 请求参数中设置 audience_type(推送目标)为 tag, 即为标签推送,详情请参见 推送接口 文档。
    API 示例:对广东和江苏的用户且在20200423,20200422和20200421这三天活跃过,并且是男性的用户进行推送

    {
       "audience_type": "tag",
       "tag_rules": [
           {
               "tag_items": [
                   {
                       "tags": [
                           "guangdong",
                           "jiangsu"
                       ],
                       "is_not": false,
                       "tags_operator": "OR",
                       "items_operator": "OR",
                       "tag_type": "xg_auto_province"  
                   },
                   {
                       "tags": [
                           "20200421",
                           "20200422",
                           "20200423"
                       ],
                       "is_not": false,
                       "tags_operator": "OR",
                       "items_operator": "AND",
                       "tag_type": "xg_auto_active"
                   }
               ],
               "operator": "OR",
               "is_not": false
           },
           {
               "tag_items": [
                   {
                       "tags": [
                           "male"
                       ],
                       "is_not": false,
                       "tags_operator": "OR",
                       "items_operator": "OR",
                       "tag_type": "xg_user_define"
                   }
               ],
               "operator": "AND",
               "is_not": false
           }
       ],
       "message_type": "notify",
       "message": {
       "title": "测试标题",
       "content": "测试内容",
       "android": {
        "ring": 1,
           "ring_raw": "ring",
           "vibrate": 1,
           "lights": 1,
           "clearable": 1,
           },
         "custom_content":"{\"key\":\"value\"}"
       }
    }
    }

    常见问题

    1. 能否开放根据标签查绑定设备数据的 API 接口?
      此接口暂时内部使用,从保护系统稳定的角度出发,没有开放出去的计划,可在管理台推送页面上选中相应的标签后,查看对应绑定的设备数。

    2. 能否开放根据设备 token 查绑定标签的 API 接口?
      此接口暂时内部使用,从保护系统稳定的角度出发,没有开放出去的计划,可在管理台工具箱中输入对应 token 查询绑定的标签。

    目录