【友盟+】开发者社区

浅谈友盟推送的单播及任务

zhaoheng 发表于 2017-7-8 16:33:00 |

zhaoheng
zhaoheng 发表于 2015-7-13 15:42:33 | 显示全部楼层 |阅读模式


       友盟推送是一款由友盟推出的致力于提供精准推送服务的产品。在其文档中,阐述了一些基本概念供开发者用户了解和参考。本文我们就来介绍其中的两个,“单播”“任务”

       “单播(unicast)是指向指定的设备发送消息,包括向单个device_token或者单个alias发消息。如果我们想向多个device_token或者多个alias发消息的话,这种发送方式被我们称为“列播(listcast)”。在本文中,我们把单播和列播统称为单播,便于和下文介绍的任务做对比。单播及列播的设置,以友盟推送后台(http://message.umeng.com)为例,选择“应用列表-->应用信息-->新建消息”,在发送对象中,我们可以直接选择单播的发送方式。iOS和Android都是填入准备发送的设备的device_token(device_token:友盟消息推送服务对设备的唯一标识。Android的device_token是44位字符串, iOS的device_token是64位。).如果想实现列播功能,只需在字符串之间用 "," 间隔即可。列播最多可添加10个设备(若调用API进行推送,则可以添加不超过500device_token
       需要注意的是,使用alias推送的用户需要在网站后台选择用户ID;在API推送中,发送类型应选为customizedcast

1.png
2.png
3.png
       介绍完了单播和列播,我们就来说说什么叫“任务”

       由于单播和列播只是最基本的推送功能,且发送数量有一定的限制,对于数量庞大的推送和多维度的精准推送显然有些捉襟见肘。所以“任务”便应运而生了。
       任务是除了单播和列播外的其它类型的播的类型的统称。任务包括广播、组播、文件播以及自定义播(必须是文件形式)。在功能上,与单播和列播相比,任务支持实现消息的查询和撤销;在推送策略上,任务还支持定时发送功能;在发送频率上,每分钟发送次数,对于单播目前没有限制,对于任务,每分钟不能超过3次。
       广播(broadcast,顾名思义,此种播的功能是可以向安装该APP的所有设备发送消息。在消息推送的后台,用户只需选择发送给所有人即可实现广播功能。如下图

4.png
       需要注意的是,在API推送中,广播的发送次数是有一定限制的。由于广播推送的特性,一味的增加广播次数很容易令一款APP的用户体验下降,造成卸  载。所以友盟推送对于测试阶段的App(友盟后台简单判断集成个数小于200的App属于未上线App)的广播次数是没有限制的。而对于已经上线的App,广播次数每天不超过3次。如果业务场景确实需要发送超过3次广播,用户可以发送邮件到msg-support@umeng.com申请调大广播次数。我们会根据用户的实际需求,将广播次数调大到合适的次数。
如果说广播是补全了单播在单次推送量上的劣势,那么组播就是弥补了单播在推送精准度上面的不足。
       组播(groupcast)是一种向满足特定筛选条件的设备集合发送消息的播的类型,如 “特定版本”、”特定地域”等。特别是友盟消息推送最近推出新的性别维度用户画像,基于友盟大数据推算出设备使用者性别,并且按照性别的差异化精准推送消息,助力App运营,提升用户体验,拒绝骚扰App用户。友盟消息推送所支持的诸多筛选维度和友盟统计分析所提供的数据展示维度是一致的,后台数据也是打通的,所以用户可以体会到更精准专业的多维度推送服务。在后台设置组播也是十分容易上手的。用户只需选择发送给部分人便可调出组播界面。然后用户便可根据自己的需求来选择维度从而实现个性化的组播服务,如下图。在API推送中,开发者需要按照filter条件筛选特定用户群, 具体请参照filter参数(可参见文档http://dev.umeng.com/push/android/api-doc#4_7)。
5.png
       此处给大家介绍一个有趣的功能。如果直接调用API的开发者对filter条件的使用有问题的话,可以在网站后台选择好筛选条件,点击“生成JSON串”,就可以得到正确的filter参数了。
       在这里我要提一下,由于我们做了其他的逻辑处理,组播以及当天添加的tag,会在次日才能生效并投入使用。希望开发者们提前知悉。
       最后我来介绍下“文件播(filecast)和“自定义播(customizedcast)。正如前文所说,单播和列播在单次推送用户数量上有一定的限制。而文件播和自定义播这两种推送形式就可以完美地解决这个问题。文件播支持开发者将批量的device_token或者alias存放到文件, 通过文件ID进行消息发送。而自定义播支持开发者通过自有的alias进行推送(alias的设置方法参见http://bbs.umeng.com/thread-5955-1-1.html), 可以针对单个或者一批alias进行推送(单播),也可以将alias存放到文件进行发送(任务)。通常来说,通过file_id方式发送消息到达设备的延时会比通过alias方式发送消息的稍大,因为友盟推送后台对任务的处理有一定的调度耗时。所以我们建议alias个数小于50个时使用alias方式发送(单播),而当超过50个时则使用file_id方式发送(任务)。如果通过文件方式发送,且alias或divice_token数小于50个的话,友盟推送后台会自动转化成列播。需要注意的是,使用文件播前需要先调用文件上传接口获取file_id,具体请参照"2.4文件上传接口"(http://dev.umeng.com/push/android/api-doc#2_4)。
       细心的读者应该发现了,调用友盟API接口实现推送,可以实现更多个性化的推送。而使用友盟后台进行推送又十分简单快捷。那么我们就来谈谈用推送后台Portal发推送和调用API发推送的一些区别吧。用Portal做推送的话,不管是单播还是任务,数据库是会记录下来的,用户可以在后台-->消息管理-->历史记录看到自己的发送记录,如下图。
6.png
      如果调用API实现推送,单播是不提供历史记录的,当然其他方式还是提供的,这也是单播和任务的一个重要区别。有需求的用户需要在这一点上格外留心。
       以上便是我们有关单播和任务的一些介绍。熟练运用好这几种推送方式,可以让开发者实现更精准的推送,使开发者获得更好的体验,也能让推送的效果事半功倍。欢迎大家关注我们的新浪官方微博@友盟推送http://weibo.com/umengpush)来获取更多友盟消息推送的最新动态。


推荐阅读: 【如何判断API发送的参数是否正确】









上一篇:自定义消息推送没有回调
下一篇:白名单问题




小妮子
小妮子 发表于 2015-11-3 16:20:07 | 显示全部楼层
单播可以发送成功 也可以收到,广播发送后,任务状态提示的 筛选结果为空 是怎么回事呢?

zhaoheng
zhaoheng 发表于 2015-11-3 16:39:54 | 显示全部楼层
小妮子 发表于 2015-11-3 16:20
单播可以发送成功 也可以收到,广播发送后,任务状态提示的 筛选结果为空 是怎么回事呢? ...

iOS么?开发环境添加了测试设备了么。

小飞虾
小飞虾 发表于 2016-1-7 15:38:46 | 显示全部楼层
友盟推送的 发表于 2015-11-3 16:39
iOS么?开发环境添加了测试设备了么。

添加了测试设备,结果还是“单播可以发送成功 也可以收到,广播发送后,任务状态提示的 筛选结果为空”

Doing
Doing 发表于 2016-3-15 09:25:19 | 显示全部楼层
友盟推送的 发表于 2015-11-3 16:39
iOS么?开发环境添加了测试设备了么。

开发环境,单播成功过一次左右,其他全部网络异常,群播肯定网络异常。可以确定token和证书都是正确的。你说换个网络环境,提交成功的时候不是已经将数据交给友盟了么?






沉于海底的信
沉于海底的信 发表于 2017-1-5 11:29:53 | 显示全部楼层
可以,详细。。


design
design 发表于 2017-7-8 16:33:00 | 显示全部楼层
写的很不错
您需要登录后才可以发帖 登录 | 立即注册

本版积分规则

发表主题

精彩推荐

【报错必看】程序来源失败/新浪精简版授权失败C8998/
问题描述: 1.分享提示程序来源失败,请下载正确的第三方客户端2.新浪微博授权跳转到授权界面不动提示C8998
友盟5.0以下注册时报错
调用PushAgent的register方法报错[/backcolor] java.lang.NoClassDefFoundError: com.umeng.message.ut
集成推送register抛出异常!!!!!
报错内容就是图片 application中只调用了register

关注我们

新浪微博
微信

欢迎关注友盟官方微博微信!

在线客服
返回顶部 返回列表