推送技术哪家强? 个推vs极光vs信鸽第三方推送服务对比

 推送技术哪家强? 个推vs极光vs信鸽第三方推送服务对比

支持平台

  

  

个推



极光



信鸽



Android









ios









Window  Phone








在支持平台上,个推和信鸽一样仅支持Android、ios。极光推送支持Android、ios、WindowPhone。

服务端SDK(Server-SDKs)

服务端SDK,基于多种服务器端编程语言,封装了REST API,简化了开发者调用远程API来推送消息的难度。

第三方服务对服务端语言支持对比

  

  

个推



极光



信鸽



JAVA









PHP









Python









C#









C++









Node.js









Ruby









Go








小结:个推支持更多的服务端语言的支持,方便了更多的使用不同开发语言的开发者来使用个推的推送服务。

服务端API(Server-API) 推送API

l  个推 http://sdk.open.api.igexin.com/apiex.htm

个推提供了对单个用户推送接口、对指定用户列表推送接口、对指定应用群推接口和ios推送方式接口。

个推服务端API的原理非常简单,组装一个对象,塞进去需要的值,然后编码一下通过http请求发送到个推的推送服务器上,后面的复杂的推送流程就全权交给个推服务器了。

个推推送服务的客户端展示的推送通过需求定制化的推送模板来实现的。例如TransmissionTemplate(基本模板类型)、NotificationTemplate(通知栏模板)、LinkTemplate(通知栏—链接模板)、NotyPpLoadTemplate(通知栏—弹框下载模板)。

http://sdk.open.api.igexin.com/apiex.htm";

  

    public static void main(String[]  args) throws Exception{

  

        IGtPush  push = new IGtPush(host, appkey, master);

  

        //建立连接,开始鉴权

  

        push.connect();

  

        //透传模板

  

        TransmissionTemplate  template = TransmissionTemplateDemo();

  

        AppMessage  message = new AppMessage();

  

        message.setData(template);

  

        //设置消息离线,并设置离线时间

  

        message.setOffline(true);

  

        //离线有效时间,单位为毫秒,可选

  

        message.setOfflineExpireTime(24*1000*3600);

  

        //设置推送目标条件过滤

  

        List  appIdList = new ArrayList();

  

        List  phoneTypeList = new ArrayList();

  

        List  provinceList = new ArrayList();

  

        List  tagList = new ArrayList();

  

        appIdList.add(appId);

  

        //设置机型

  

        phoneTypeList.add("ANDROID");

  

        //设置省份

  

        provinceList.add("浙江");

  

        //设置标签内容

  

        tagList.add("开心");

  

        message.setAppIdList(appIdList);

  

        message.setPhoneTypeList(phoneTypeList);

  

        message.setProvinceList(provinceList);

  

        message.setTagList(tagList);

  

        IPushResult  ret = push.pushMessageToApp(message);

  

        System.out.println(ret.getResponse().toString());

  

    }

  

    public static TransmissionTemplate  TransmissionTemplateDemo() {

  

        TransmissionTemplate  template = new TransmissionTemplate();

  

        template.setAppId(appId);

  

        template.setAppkey(appkey);

  

        template.setTransmissionType(1);

  

        template.setTransmissionContent("请输入需要透传的内容");

  

        return template;

  

    }

  

}

  [/td][/tr]
[tr][td=1]
[/td][td=1,2]  

正确返回

  [/td][td]

返回码


[/td][td]

结果说明


[/td][td=540]
[/td][/tr]
[tr][td=1]
[/td][td]

OK


[/td][td]

群推消息发送成功


[/td][td=540]
[/td][/tr]
[tr][td=1]
[/td][td=1,14]

错误返回


[/td][td]

返回码


[/td][td]

结果说明


[/td][td=540]
[/td][/tr]
[tr][td=1]
[/td][td]

Error


[/td][td]

请求信息填写有误


[/td][td=540]
[/td][/tr]
[tr][td=1]
[/td][td]

action_error


[/td][td]

未找到对应的action动作


[/td][td=540]
[/td][/tr]
[tr][td=1]
[/td][td]

appkey_error


[/td][td]

Appkey填写错误


[/td][td=540]
[/td][/tr]
[tr][td=1]
[/td][td]

domain_error


[/td][td]

填写的域名错误或者无法解析


[/td][td=540]
[/td][/tr]
[tr][td=1]
[/td][td]

sign_error


[/td][td]

Appkey与ClientId不匹配,鉴权失败


[/td][td=540]
[/td][/tr]
[tr][td=1]
[/td][td]

AppidNoMatchAppKey


[/td][td]

appid和鉴权的appkey不匹配


[/td][td=540]
[/td][/tr]
[tr][td=1]
[/td][td]

PushMsgToListOrAppTimesOverLimit


[/td][td]

群推次数超过最大值


[/td][td=540]
[/td][/tr]
[tr][td=1]
[/td][td]

PushTotalNumOverLimit


[/td][td]

推送个数总数超过最大值


[/td][td=540]
[/td][/tr]
[tr][td=1]
[/td][td]

AppIdNoUsers


[/td][td]

该AppId下的用户总数为0


[/td][td=540]
[/td][/tr]
[tr][td=1]
[/td][td]

SendError


[/td][td]

消息推送发送错误


[/td][td=540]
[/td][/tr]
[tr][td=1]
[/td][td]

SynSendError


[/td][td]

报文发送错误


[/td][td=540]
[/td][/tr]
[tr][td=1]
[/td][td]

flow_exceeded


[/td][td]

接口消息推送流量已超限


[/td][td=540]
[/td][/tr]
[tr][td=1]
[/td][td]

OtherError


[/td][td]

未知错误,无法判定错误类型


[/td][td=540]
[/td][/tr]
[tr][td=1]
[/td][td]

客户端展示


[/td][td=2,1]


[/td][td=540]
[/td][/tr]
[tr][td=1][/td][td=71][/td][td=264][/td][td=210][/td][td=540][/td][/tr]
[/table]

l  极光 https://api.jpush.cn/v3/push

向某单个设备或者某设备列表推送一条通知、或者消息。

推送的内容是 JSON 结构,其中包含平台信息,推送目标,通知内容,消息内容与可选参数

1)    请求示例

  

curl -X POST -v https://api.jpush.cn/v3/push  -H "Content-Type: application/json" -u  "7d431e42dfa6a6d693ac2d04:5e987ac6d2e04d95a9d8f0d1" -d  '{"platform":"all","audience":"all","notification":{"alert":"Hi,JPush!"}}'

  

  

> POST /v3/push HTTP/1.1

  

> Authorization: Basic  N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==

  

2)    返回示例

  

< HTTP/1.1 200 OK

  

< Content-Type: application/json

  

<

  

{"sendno":"18","msg_id":"1828256757"}

  

3)    推送对象

一个推送对象,以 JSON 格式表达,包含一条推送相关的所有信息,最多包含以下五个方面:

  

关键字

  



含义



https://api.jpush.cn/v3/push/validate


功能说明

该 API 只用于验证推送调用是否能够成功,与推送 API 的区别在于:不向用户发送任何消息。

l  信鸽

1)     查询群发消息发送状态

http://接口域名/v2/push/get_msg_status?params

[table=98%,rgb(249, 249, 249)]
  

参数名

  

类型



必需



默认值



参数描述



push_ids



json





[]



[

  

{“push_id”: string},  {“push_id”:“xxxx”},

    


2)     查询应用覆盖的设备数

http://接口域名/v2/application/get_app_device_num?params


3)     查询应用的Tags

http://接口域名/v2/tags/query_app_tags?params


4)     取消尚未触发的定时群发任务

http://接口域名/v2/push/cancel_timing_task?params

  

参数名

  

类型



必需



默认值



参数描述



push_id



string







要取消的任务号



5)     批量设置标签

http://接口域名/v2/tags/batch_set

  

参数名

  

类型



必需



默认值



参数描述



tag_token_list



string







json字符串,包含若干标签-token对,后台将把每一对里面的token打上对应的标签。每次调用最多允许设置20对,每个对里面标签在前,token在后。注意标签最长50字节,不可包含空格;真实token长度至少40字节。

  

示例如下(其中token值仅为示意): [[”tag1”,”token1”],[”tag2”,”token2”]]



6)     批量删除标签

http://接口域名/v2/tags/batch_del

  

参数名

  

类型



必需



默认值



参数描述



tag_token_list



string







json字符串,包含若干标签-token对,后台将为每一对里面的token删除对应的标签。每次调用最多允许设置20对,每个对里面标签在前,token在后。注意标签最长50字节,不可包含空格;真实token长度至少40字节。

  

示例如下(其中token值仅为示意): [[”tag1”,”token1”],[”tag2”,”token2”]]



7)     查询应用某token设置的标签

http://接口域名/v2/tags/query_token_tags?params

  

参数名

  

类型



必需



默认值



参数描述



device_token



string









8)     查询应用某标签关联的设备数量

http://接口域名/v2/tags/ query_tag_token_num?params

  

参数名

  

类型



必需



默认值



参数描述



tag



string








通过对比,个推和信鸽对开发者提供了更多的API接口,方便了开发者更好地使用其推送服务。


总结

个推——专业的手机推送决方案,成为国内该领域的先驱和最专业服务商。通过个推的推送解决方案,公司和开发者可以在应用推送功能上节省开发成本,并达到节资源、保证用户推送质量,省用户流量和电能消耗的效果。

开发者还可获得推送的BI数据。个推还提供智能推送服务,通过属性分析与推送测试的功能,帮助找到APP用户中最精准的人群,摒弃盲目推送,为用户提供最想要的信息,从而实现精细化运营。


信鸽——在产品功能上和个推、极光推送等服务并没有显示出BAT巨头的优势,而可取之处在于通过腾讯的大数据分析为用户划分标签,并结合 7亿qq用户的画像标签,比如人口属性、消费能力、短时兴趣、LBS 信息等等,从而让开发者可以针对不同用户群体推送不同的内容。


极光——是一个面向普通开发者开放的,部分免费的第三方消息推送服务。极光推送使得开发者可以即时地向其应用程序的用户推送通知或消息,与用户保持互动,从而有效地提高留存率。平台提供整合了Android推送、iOS推送的统一推送服务。


  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

潘永青

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值