极光推送集成(一)
版本记录
版本号 | 时间 |
---|---|
V1.0 | 2017.05.13 |
前言
现在很多APP都有推送功能,其中极光推送就是很多APP的首选。我们最近的几个APP也是用的极光,但是没有总结过,下面我就根据项目和开发文档进行总结。先给出极光文档。
一、JPUSH产品简介
JPush是经过考验的大规模APP推送平台,每天推送消息数超过5亿条。 开发者集成SDK后,可以通过调用API推送消息。同时,JPush提供可视化的web端控制台发送通知,统计分析推送效果。 JPush全面支持 Android, iOS, Winphone 三大手机平台。
消息形式
极光推送的消息有很多,主要有如下四种形式:通知,自定义消息,富媒体和本地通知。
**1. 通知 **
或者说 Push Notification,即指在手机的通知栏(状态栏)上会显示的一条通知信息。通知主要用于提示用户的目的,应用于新闻内容、促销活动、产品信息、版本更新提醒、订单状态提醒等多种场景。详情看开发文档Push API v3 notification。
**2. 自定义消息 **
自定义消息不是通知,所以不会被SDK展示到通知栏上。其内容完全由开发者自己定义。自定义消息主要用于应用的内部业务逻辑。一条自定义消息推送过来,有可能没有任何界面显示。开发者参考文档:Push API v3 message。
**3. 富媒体 **
JPush支持开发者发送图文并茂的通知,从而更好的传达信息,带来更丰富的用户互动。JPush提供了5种模板,开发者可以通过填充模板的内容,发送landing page、弹窗、信息流形式的富媒体通知。开发者还可以直接通过URL发送预先编辑好的页面。富媒体当前支持Android平台,为更好的使用富媒体的功能,建议更新当前SDK版本至v2.1.8及以上。暂时只能通过极光推送的控制台发送,不支持API形式。
Android 开发者参考文档:Rich Push开发指南
4. 本地通知
本地通知API不依赖于网络,无网条件下依旧可以触发;本地通知的定时时间是自发送时算起的,不受中间关机等操作的影响。本地通知与网络推送的通知是相互独立的,不受保留最近通知条数上限的限制。本地通知适用于在特定时间发出的通知,如一些Todo和闹钟类的应用,在每周、每月固定时间提醒用户回到应用查看任务。iOS 开发者参考文档
推送目标
通过使用标签,别名,Registration ID 和用户分群,开发者可以向特定的一个或多个用户推送消息。
1. 标签
为安装了应用程序的用户打上标签,其目的主要是方便开发者根据标签,来批量下发 Push 消息。可为每个用户打多个标签。
举例: game, old_page, women
2. 别名
每个用户只能指定一个别名。同一个应用程序内,对不同的用户,建议取不同的别名。这样,尽可能根据别名来唯一确定用户。iOS 开发者参考文档:iOS 标签和别名。使用别名和标签推送请参考文档:Push API v3 Audience
3. Registration ID
客户端初始化 JPush 成功后,JPush 服务端会分配一个 Registration ID,作为此设备的标识(同一个手机不同 APP 的 Registration ID 是不同的)。开发者可以通过指定具体的 Registration ID 来进行对单一设备的推送。
4. 用户分群
用户分群的筛选条件有:标签、地理位置、系统版本、注册时间、活跃用户和在线用户。比如,开发者可以设置这样的用户分群:位于北京、上海、广州和深圳,并且最近7天在线的用户。开发者可以通过在控制台设置好用户分群之后,在控制台推送时指定该分群的名称或使用API调用该分群的id发送。用户分群控制台使用指南:用户分群
统计分析
JPush支持推送数量、用户打开次数、用户使用时长、新增用户、活跃用户等数据的统计。Android开发者需要实现了相关的统计API,才可以进行用户相关的统计。iOS的开发者不需要实现统计API,可以直接在【控制台】-【统计】页面查看相关数据。
快速开始方法
二、控制台使用指南
创建应用
创建应用步骤
1. 创建应用
点击[创建应用]按钮即可。
创建应用2. 配置应用信息
- Step1: 基本信息:输入应用名称 (必填), 上传一个图标;
配置android平台信息:填写应用包名, JPush 系统会在后台根据你输入的包名生成的推送的 Android 应用 Demo, 该 Demo 包含了该配置的信息; - Step2: 配置iOS平台信息:上传相关环境的推送证书,并填写和证书配套的密码;
- Step3: 配置WinPhone平台信息:选择是否开启即可。
- Step4: 信息配置完成后,查看应用信息如下:
应用管理
- 点击[home]回到首页,可浏览所有应用的信息,点击应用名称或设置可查看应用详情,点击推送可去到发送通知页,编辑并推送通知,点击统计,可查看该应用的所有统计数据。
应用详情如下
应用信息应用设置如下
应用设置分组管理
- 点击[home]回到首页后,在左侧导航中点击[分组管理],可浏览应用的分组管理信息并创建新分组。
报表下载
- 点击[home]回到首页后,在左侧导航中点[报表下载],可以根据时间对报表进行下载。
发送通知
- 路径:选择应用->推送->发送通知,填写推送内容后点击页面最下方的[立即发送]按钮即可。
- Web界面会弹出对话框, 提示是否发送, 选[发送吧]即可。
- 推送成果后,弹出对话框,点击[去看看]即可查看推送结果。
自定义消息
- 路径:选择应用->推送->自定义消息 填写推送内容后点击页面最下方的[立即发送]按钮即可。
富媒体消息
- 路径:选择应用->推送->富媒体消息。可通过模板发送landing page、弹窗、信息流等形式的富媒体消息,或者直接通过URL发送预先编辑好的页面。
通过landing page 模板发送
- Step1:路径:选择应用->推送->富媒体消息->模版->landing page,目前landing page只提供一种通用模板。
- Step2:进入模板内容编辑页面,填写所有内容,左侧可预览内容的展示效果,单击[下一步]。
- Step3:单击[预览富媒体页面],可预览刚刚编辑完成的landing page模板;单击页面最下方的[立即发送]按钮,即可完成该landing page的推送。
通过弹窗模板发送
- Step1:选择应用->推送->富媒体消息->模版->弹窗,挑选适合的模板。
- Step2:进入模板内容编辑页面,填写所有内容,左侧可预览内容的展示效果,单击下一步。
- Step3:单击[预览富媒体页面],可以预览刚刚编辑完成的弹窗模板,单击页面最下方的[立即发送]按钮,即可完成该弹窗的推送。
通过信息流模板发送
- Step1:路径:选择应用->推送->富媒体消息->模版->信息流,挑选适合的模板。
- Step2:进入模板内容编辑页面,填写所有内容,左侧可预览内容的展示效果,单击下一步。
- Step3:单击[预览富媒体页面],可以预览刚刚编辑完成的弹窗模板,单击页面最下方的[立即发送]按钮,即可完成该信息流的推送。
通过URL发送通知
- Step1:路径:选择应用->推送->富媒体消息->URL。
- Step2:输入需要推送的页面的URL,单击[下一步]按钮,由于通知的大小有限制,URL不可过长,若URL超过限制长度,请自行转成短地址再输入。
- Step3:URL不提供页面预览功能,请确保输入正确的URL,单击页面最下方的[立即发送]按钮,即可完成URL推送。
推送历史
- 路径:选择应用->推送->推送历史
在右边可以浏览推送的历史数据,包含推送时间,内容,类型,IOS 目标|成功,Android目标|成功,Winphone目标|成功,操作。
推送详情说明:
类型包括:广播、tag、alias、Registration ID
操作包括:转发、详情、删除
注意:
推送历史数据只保留一个月的统计信息。
详情如下
定时推送
- 路径:选择应用->推送->定时消息
右边的下拉菜单中可以选择[通知]还是[自定义消息]的定时推送消息。
定速推送
定速推送时长(分钟),在应用的 "推送" 模块,点击定速推送。
定速推送用户分群
- 路径:选择应用->推送->用户分群->创建用户分群。用户分群可设置:标签,地理位置,活跃用户,系统版本,在线用户,注册用户中的一个或多个条件;用户分群的名称为必填项,在控制台向用户分群发送时使用名称;用户分群的ID是在创建之后生成的,调用API时可指定该ID。
统计与报表说明
查看报表
JPush 的 Web 上提供了多种应用级别的统计数据。如下图所示,用户在登录JPush 帐号,并选择了具体的应用后,可以在顶部导航条内选择“统计”。
选择报表类型
JPush 统计包括:推送统计、用户统计、API统计、活跃分析、在线留存率、用户分群统计、设备信息统计、排行统计、地区分布、错误列表、流失分析、回访分析。
统计报表选择统计时间
可以在报表右上角选择统计的时间范围,也可以自定查询范围,具体统计周期如下图所示。单位粒度依次为:小时,天,月。
例:如果选择“昨天”,那么报表呈现的数据是以小时为单位;如果选择”最近7天“,那么报表呈现的数据则是是以天为单位。
时间统计统计项说明
推送统计
推送报表呈现“推送数量”和“用户点击”情况,部分统计效果需要实现 推送效果反馈 API
送达数量:Android 用户实际收到推送的数量合计,该数量包括:通过Portal发出的,以及通过API发出的。包括通知,也包括自定义消息。
iOS 与 Window Phone 系统由于原理不同,此曲线显示的为正确送达到 APNS 和 MPNS 的统计。
用户点击数:用户通过点击通知栏消息进入应用的次数。
对于 Android应用,需要实现了统计分析 API才有这个统计数据。
用户统计
- 新增用户
“新增用户”是指新增的 JPush 注册用户。当应用第一次启动时,JPush SDK 会向 JPush 发起内部注册。iOS 系统如果用户在首次使用时选择禁用推送,则不计入新增用户统计。 - 在线用户
“在线用户”是指统计周期 与 JPush Server 建立网络连接成功的用户总数。统计时间连接过一次,则计入该统计项目,同一用户多次连接不重复计算。 - 活跃用户
“活跃用户” 是指统计时间内至少打开一次应用的用户总数。活跃用户与在线用户的区别是,活跃必须是用户打开过应用而在线用户是用户侧有网络与 JPush 保持连接。
Android 系统,需要实现推送效果反馈 API才可以统计到活跃用户。
API 统计
- API统计
统计时长内调用 Push API 的总次数。注:API 次数不同于消息数,一次广播推送与一次别名推送均为 1 次 API 调用。
活跃分析
-
推送数量
定义同上,这里主要用作对比曲线,用来衡量推送后的用户活跃效果 -
用户打开次数
所有用户打开应用的次数合计。该指标可用于观测,是否随着推送数量的增加,用户打开应用更多了。
Android 系统,需要实现了推送效果反馈 API才有此统计数据。
- 用户使用时长(分钟)
所有用户使用应用的时长合计。该指标可用于观测,是否随着推送内容的不同,用户使用应用的时间更长。
Android 系统,需要实现了推送效果反馈 API才有此统计数据。
- 在线留存率
某段时间内新增的,过了一段时间以后仍然还在与 JPush 服务器有连接的用户,称为留存用户。留存用户占当时新增用户的比例称为留存率。“在线留存率“”可以更真实的反映用户的用户留存情况。
注意:JPush 的留存用户定义是在线用户,即与服务器仍然有连接的用户(可以是不打开应用只后台在线)。此定义不同与其他根据用户活跃统计的“活跃留存率”,由于iOS 平台机制用户打开应用才可能在线所以此留存约等于“活跃留存”。
例如:日留存。某一天新增的用户数为100,在 3 天后这 100 个用户中依然在线的用户数为 50,那么这天新增用户的 3 天留存率为 50%。
短信验证码
数据概览
路径:选择应用->短信验证码->数据概览
短信余量:剩余可发送的短信条数,这里的余量是该账号下所有应用可发送短信条数的总和。
短信发送量:今日发送短信量、本月发送短信量、上月发送短信量,这里的发生量是该应用的使用量。
发送纪录
路径:选择应用->短信验证码->发送纪录;
当前应用发送的所有短信验证码的纪录,支持手机号、时间查询。
三、JPush短信补充
针对开发者提供推送补充服务,如果APP侧一段时间内无法收到推送的消息(可能由于断网、后台禁止运行、消息延迟等原因)的用户进行短信通道信息补充。对于到达强需求的业务优先使用推送可以一定程度减少短信费用开销,又能保证信息最终的传递到达。
优势
极光推送的短信服务有如下优势:
- 独享通道:享有独立通道,高速稳定;
- 三网合一:目前支持中国移动,中国联通,中国电信三大运营商的手机用户,短信推送及时准确送达。(暂不支持国外的手机号)
- 极速稳定:极光千台服务器强力支持,覆盖范围广,极致提升短信推送效率;
- 低成本:发送短信的费用低;
- 灵活性:模板与模式可随心定制。
数据指标
- 下发速度:与运营商合作,下发速度200条/秒;
- 送达时间:送达时间由运营商控制,一般情况下是几秒送达;
- 短信内容:内容要求符合国家规定,正常的营销信息可正常发送,手机用户可以选择是否接收。
四、JPush短信补充
Rich Push 开发指南
概述
Rich Push,即富媒体推送,允许开发者推送 Web页面、图片、声音等除普通文本之外更丰富的内容。应用开发者可以利用“富文本推送”功能推送如新闻、优惠券、活动信息等更加丰富的内容,也可以使用“富媒体文件推送” 使已有的 IM 类沟通功能得到扩展。
JPush从终端用户使用体验的角度出发,充分考虑到国内的网络环境特点,Rich Push 功能上做了些特别的设计:1)Portal 上准备资源时,都保存到 JPush 的服务器上;2)JPush SDK 展示推送前预加载媒体文件。这样保证了一个富文本推送页面展示时是一定可见的、完整的。
功能说明
功能上分为信息流模板推送和URL富媒体链接推送二个部分。详细使用,请参考文档富媒体推送
- 信息流模板推送
推送 Web 页面(富文本)
Portal 上提供推送工具,来快捷地创建富文本页面
富文本作为通知推送到客户端
客户端点击通知,自动展示该富文本页面
- URL推送
推送页面的URL,点击通知栏消息后跳转URL指定的页面。
SDK 支持
只支持Android不支持IOS
五、常见问题
1. 推送数量和推送频率的限制是多少?
推送数量
没有限制!
通过控制台或API推送通知或消息,均不会限制推送的数量。
推送频率
免费版本的每个Appkey的最高推送频率为600次/分钟。
付费版本可享有更高的推送频率,具体请联系商务。
2. 怎么样保证推送消息的安全?
我们建议开发者不要推送保密的信息,就像QQ建议你不要在聊天时发送保密的信息一样。如果开发者的确有保密的信息,需要送达到用户,则可以考虑这样做:先通过 JPush 推送一条消息,这条消息触发客户端App去与开发者服务器交互保密信息。
3. 为什么在控制台上或者调用API推送消息时提示:找不到目标用户?
其含义是:当向客户端推送消息时,发现对于指定的推送方式,找不到该方式下的目标用户。
-
如果推送方式是群发,则表示:该应用还没有一个客户端成功地集成了 JPush SDK 并连接到 JPush 服务器。如果您确实做了客户端App集成 JPush SDK的工作,请检查客户端日志,看是不是注册失败。
-
如果推送方式是别名或者标签,则表示:该别名或者标签,在客户端还未被成功地调用 setAliasAndTags 设置成功。请参考:别名与标签使用教程Android 文档 iOS 文档。
4. 通知与自定义消息有什么区别?
下图是个简单的区分。详情请参考文档
通知与自定义消息5. 可以推送多媒体文件到客户端么?
推送消息本身是限定长度的文本。不直接支持文件的推送,但可以通过推送 url 来实现。即先推送文件下载 url,到客户端触发逻辑来通过 url 下载文件。
6. 怎么样向特定的某个用户推送消息?
在客户端使用 setAliasAndTags API 来为该用户指定别名。以便服务器端对该别名推送消息。ios客户端如何设置别名和标签,使用别名和标签推送请参考文档
7. 怎么样向特定的某个用户推送消息?
在客户端使用 setAliasAndTags API 来为该用户设置标签。这样服务器可以向所有具有该标签的用户群发消息。另外还可以在控制台设置用户分群(根据标签,地理位置等条件筛选用户),在控制台推送时指定该分群的名称或使用API调用该分群的id发送,也可以向一群用户推送消息。ios客户端设置别名和标签参考文档如上。
8. 其他国家能否使用极光推送(局域网能否使用极光推送)?
JPush 对于访问国家没有任何限制。理论上国外使用是没有问题的,但具体区域还需要开发者自己评估。服务器端判断能否访问JPush服务器的方法是ping通 api.jpush.cn,也可以执行 curl 测试。客户端判断是否正常可以通过观察日志,看是否可以注册和连接成功。
后记
这些都是极光推送的基础,需要好好理解,基本都是官方指南,后面还会说明SDK的集成。待续~~~~