tencent cloud

文档反馈

标签功能

最后更新时间:2023-05-08 16:52:58

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

    说明:

    标签推送属于群推,会有限频,不建议频繁推送或标签对应设备较少的情况下使用标签推送,可以相应的使用其他单推或列表推。

    标签推送场景

    用户促活与流失召回

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

    赛事订阅通知

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

    续费通知

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

    标签概览

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

    标签类型 场景 移动推送内置 tag_type 限制 示例
    自定义标签 客户自定义,例如会议 ID,班级 ID,用户喜好(篮球,数码产品等)等 xg_user_define
  • 最多可以有10000个自定义 tag(如需提高该限制,请联系 在线客服
  • 每个设备 token 最多可绑定100个自定义 tag(如需提高该限制,请联系 在线客服)
  • 每个自定义 tag 可绑定的设备 token 数量无限制
  • love_basketball, love_shopping, male 等
    系统预设标签 App 版本 xg_auto_version 移动推送系统预设,无限制 1.0.1,1.0.2等
    省份 xg_auto_province guangdong,hunan,shanghai等
    城市 xg_auto_city beijing,tianjin,chongqing等
    活跃信息 xg_auto_active 20200521,20200522等
    移动推送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 进行标签推送时需使用移动推送内置 tag_type 设置标签类型。

    使用前准备

    自定义标签管理

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

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

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

    说明:

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

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

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

    关键字
    冒号":"是标签绑定时的关键字,用户标签的 key-value 分割,例如用户给某个设备 token 打了"level:3"的标签,则移动推送后台会将"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"。

    绑定/解绑标签

    移动推送提供了单标签绑定/解绑单设备,单标签绑定/解绑多设备,多标签绑定/解绑单设备,多标签绑定/解绑多设备的接口。

    单标签单设备

    推荐场景

    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个字节。
    • 每次调用标签数量最大100个。
    • 接口调用逻辑为同步。
    单标签多设备

    推荐场景
    此时只能调用 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个。
    • 接口调用逻辑为同步。

    标签覆盖

    移动推送提供了两种标签覆盖方式,一是普通覆盖,二是按标签类别进行覆盖,又名 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 标签,就需要客户维护该设备对应的全部标签,或者调用移动推送接口把该设备对应的历史标签查找出来再进行删除,这就带来很多的不方便,故可调用此接口,仅进行 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个字节。
    • 每次调用标签数量最大100个。
    • 接口调用逻辑为异步,建议调用的频率间隔1秒以上。

    删除标签场景

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

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

    推荐场景

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

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

    标签删除用法

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

    使用限制

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

    删除应用对应的某标签

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

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

    使用限制

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

    预设标签管理

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

    设备绑定标签查询

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

    开始使用

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

    控制台使用

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

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

      选中标签之后,还会显示选中标签所对应的绑定设备数,上图表述的标签组合意思为:对广东且在2日内活跃过的用户进行推送。之后点击测试预览即可进行对应目标设备的推送。

    调用 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 查询绑定的标签。

    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持