个推消息推送标签推送
一、需求背景
1.1 背景描述
标签是推送赋予用户或者推送设备的一种特征属性,例如:“男性”,“喜爱足球”等,常见的使用场景是根据特征属性,实现针对特定用户的精准推送,从而提升通知消息的转化率。
个推支持客户将自身应用的标签绑定到个推服务器,以便后续可使用该标签实现精细化推送,辅助精细化运营。同时支持使用个推用户画像基础属性标签(例如用户属性、地区属性的标签)圈选目标用户进行消息推送。
二、功能实现
标签推送之前需要先设置标签,设置标签可以调用客户端api接口,也可以调用服务端api接口;默认一个客户端cid,每天只能修改标签一次,最多设置100个标签;单个标签长度最大为32字符,标签总长度最大为512个字符
2.1 标签设置
开发者可在客户端或者服务端给 cid 设置标签,客户端需要区分 android 和 ios,开发者选择其中一个渠道(客户端或服务端)设置标签即可。
2.2.1 客户端标签设置
Android
类名 | com.igexin.sdk.PushManager |
---|---|
接口 | public int setTag(Context context,Tag[] tag, String sn) |
接口调用示例:
String[] tags = new String[] {"tag1", "tag2", "tag3"};
Tag[] tagParam = new Tag[tags.length];
for (int i = 0; i < tags.length; i++) {
Tag t = new Tag();
//name 字段只支持:中文、英文字母(大小写)、数字、除英文逗号和空格以外的其他特殊符号,具体请看代码示例
t.setName(tags[i]);
tagParam[i] = t;
}
PushManager.getInstance().setTag(context, tagParam, String.valueOf(System.currentTimeMillis()));
参数:
- context:应用的 Context
- tag:用户标签
sn:用户自定义的序列号,用来唯一标识该动作,用户 IntentService 中会回执该结果
iOS
+ (BOOL)setTags:(NSArray *)tags;
+ (BOOL)setTags:(NSArray *)tags andSequenceNum:(NSString *)aSn;
接口调用示例:
[GeTuiSdk setTags:@[@"标签1",@"标签2",@"标签3"]];
[GeTuiSdk setTags:@[@"标签1",@"标签2",@"标签3" andSequenceNum:@"seqtag-1"];
参数:
- tags:NSString 的对象数组,不能为 nil。只能包含中文字符、英文字母、0-9、+-*.的组合(不支持空格)
aSn:用户自定义的请求序列号,用来唯一标识该动作。若不指定sn,会根据tags自动生成sn。建议每个设置标签操作设置不同的sn标识。
2.2.2 服务端标签设置(RestAPI V2)
- 接口地址: BaseUrl
/user/custom_tag/cid/$cid
- 请求方式:
POST
Request请求说明:路径参数说明(路径中$开头的参数)
名称 | 类型 | 是否必须 | 默认值 | 说明 |
---|---|---|---|---|
cid | String | 是 | 无 | 用户标识 |
Header参数说明
名称 | 类型 | 是否必须 | 默认值 | 说明 |
---|---|---|---|---|
token | String | 是 | 无 | 接口访问凭据,获取方式请参考获取鉴权token |
- 参数示例
{ "custom_tag": [ "tag1", "tag2" ] }
复制请求参数说明
名称 | 类型 | 是否必须 | 默认值 | 描述 |
---|---|---|---|---|
custom_tag | String Array | 是 | 无 | 标签列表,标签中不能包含空格 |
2.2 标签推送
2.2.1 服务端(RestAPI V2)
- 接口地址: BaseUrl
/push/tag
- 请求方式:
POST
- Request请求说明:
名称 | 类型 | 是否必须 | 默认值 | 说明 |
---|---|---|---|---|
token | String | 是 | 无 | 接口访问凭据,获取方式请参考获取鉴权token |
body参数说明:
- content-type:
application/json;charset=utf-8
- 参数示例:
{ "request_id":"请填写requestid", "group_name":"请填写任务组名", "settings":{ "ttl":3600000 }, "audience":{ "tag":[ { "key":"custom_tag", "values":[ "0901","0902" ], "opt_type":"or" } ] }, "push_message":{ "notification":{ "title":"请填写通知标题", "body":"请填写通知内容", "click_type":"url", "url":"https//:xxx" } } }
编辑:yimen,如若转载,请注明出处:https://www.yimenapp.com/kb-yimen/15481/
部分内容来自网络投稿,如有侵权联系立删