经过 Push 来提升移动应用的活跃度

开发移动App 的童鞋,都会有这样一个问题:应用发出去了,就不可控了。用户手机上一堆的应用,有可能用户根本就忘记了我这个应用的存在,不怎么去使用,我有没有什么办法?我发布了新版本相信能够更吸引用户,但他也不知道啊;我想作个活动来激活用户更多地使用个人应用,怎么作到呢? php

提升活跃度的根本固然还在于产品自己,这一点是毋庸置疑的。正若有牛人总结说:互联网企业产品是惟一的核心html

想必不少人了解,产品以外,运营也是很是重要的部分,甚至是更重要的部分。最近著名的移动应用统计供应商 Flurry 发表了一篇文章:移动应用经济的数学模型 - 盈利模式矩阵。这篇文明开篇就谈到:在新的移动应用经济中,无论一个公司最初有多成功,最后的胜者取决于用户参与度和维系用户的能力。得到用户以后,真正的战斗才刚打响,那就是留住用户,并经过他们最终获利。在“移动优先”的全新世界里,参与度就是新战场。 android

而在移动App里集成 Push能力,则赋予了开发者对移动App的运营能力,让开发者有更多的机会来与用户交互,让用户更多地参与进来,留住用户,并最终提升获利。 ios

Push 怎么样提升应用的活跃度 服务器

国外为不少大 IT 公司包括 Oracle, Intel, Saleforce, USA Today 在内都使用的第三方推送服务 Urban Airship ,针对大量应用作了一个统计,以下图: 网络

push activate user

上图代表,平均一个应用通常 6 个月留存率只有 15%,但作了 Push 后留存率提升一倍。 并发

即当一个应用,适时地运营向用户 Push 一些通知、消息时,可以有效地激活用户更多地使用 Apps,更少地卸载应用。 app

全部移动 App都有必要具有 Push 能力 jsp

上述谈到的是,Push 可以有效地提升用户活跃度与用户留存率。从这个角度,全部的移动  App都有必要加上 Push 功能。 ide

其实,移动App 具有Push 能力,还有更多的必要性,如下再具体地列举几个:

  1. 用户须要App提供及时的信息,好比News类应用、聊天类、位置服务类等。
  2. 用户须要及时地同步信息到移动端,好比设备同步类、用户主动发起的同步需求等。
  3. 用户发起订阅某部份内容,应用内容有更新时主动推送给用户。
  4. 用户想要发起与别的用户一块儿玩游戏,别的用户须要及时获得邀请。

怎么样为移动应用加上 Push 能力

通常来讲,每一个手机平台都有自家提供 Push 功能,让应用开发者可以很方便地把 Push 能力集成到应用中。Android 上有 GCM (Google Cloud Messaging,原来叫 C2DM),iOS 上有 APNs(Apple Push Notification service),Windows Phone 上有 MPNs(Microsoft Push Notification service)。

但悲剧在于,GCM 在国内基本上是不可用的。有以下两个缘由:

其1、国内大部分 Android 手机都是不带 Google 服务的,也就用不了 GCM 这个 Google服务。这是主要的问题。

其2、在国内,Google的服务,大可能是不稳定的。缘由你懂的!

GCM 的不可用,给国内 Android开发者带来很大的困扰,迫使 Android 开发者来思考:怎么样在 Android 上实现  Push?

咱们有两个基本的选择:

  1. 本身开发 Push
  2. 使用第三方提供的 Push服务

1、本身开发Push

先说第一个方案,本身开发Push。本身实现又有以下几个可能的做法:

  1. 基于 androidpn (基于 XMPP IM)开源方案,或者其余 xmpp, mqtt 开源系统
  2. 本身开发伪 Push
  3. 彻底本身开发长链接 Push 服务

相似于 androidpn 的开源方案存在必定的问题,请参考另一篇文章:Android Push 开源方案解析。这篇文章根据咱们团队的聊天应用实践经验说明,想要直接基于开源系统来实现 Push服务会有其问题:系统容量是有限的,不适合移动对流量、电量消耗要求比较高的场景,要高可用性仍是须要去基于开源的源代码去调整、改进,维护成本高。

第二个本身实现的方式,是伪 Push,即所谓轮询(polling ),其实是定时去 http 拉取,检查服务器端是否有信息须要下发。我所了解到当前至关一部分本身实现了 Push方案的移动应用,都是采用这种方案来实现的。这种方式的好处在于:实现简单,容量大点http服务器端也相对容易搞定。

可是,伪 Push方案其问题也是很明显的,即其时效性是达不到要求的,推送消息没法及时到达客户端。若是轮询间隔很短,则电量、流量消耗都会比较大。另外,http每一个请求包也相对较大。

第三个本身实现的方式,则就彻底是自主开发了。这个路子来讲,仍是相对更难走一点的,开发团队须要有比较强的网络服务开发经验,最好有 IM开发经验。这里不详述技术上的细节与挑战。

 2、使用第三方提供的 Push服务

Push 是个基础服务,不论是以开源方案为基础搭建,仍是彻底自主研发,投入都是比较大的,须要有网络服务方面的专业团队。投入很大的成本开发后,随着客户端用户量不断增大,其后期扩容、维护的工做量,也都是不断上升的,难度也愈来愈大。

因此,大多数应用开发者,不是去本身搭建 Push 这个基础服务,而是考虑去使用第三方提供的专业的服务。

国外有很多专业的第三方 Push 服务,好比 Urban AirshipPush IOPubnubPusher。这些公司的服务通常是要收费的。固然在国内,使用国外的服务仍是会有网络延时方面的考虑因素(你懂的)。

国内来讲,以前没有给广泛开发者开放使用的第三方 Push服务提供商。最近,有公司来提供这个服务了,那就是:极光推送

极光推送:免费快捷的解决方案

极光推送,是专门针对移动 Push场景来设计的、开放的大容量 Push 服务。其技术团队由 Oracle、腾讯、华为前员工组成,并作过移动聊天App,对大容量并发网络链接服务具备丰富的经验。

极光推送的目标是在如下几个方面作到极致:

  1. 服务器端承载:单机接入并发 200万以上,服务器总体可在线平行扩展
  2. 消息稳定发送:借鉴聊天场景的设计,不容许丢失消息
  3. 客户端流量与电量消耗:每次心跳不到 100 个字节(若是XMPP或者HTTP,须要 1k 以上)

极光推送也力求开发者尽量简单的集成SDK,为应用提供 Push能力。在 android 应用客户端,最少可只须要一行代码,即集成极光推送SDK:

       JPushInterface.init(this);

以外根据要求复制 SDK jar 包到应用里指定的目录,以及根据要求配置 AndroidManifest.xml 文件。具体了解请参考极光推送推送Android SDK集成指南

在服务器端,咱们提供开发者Portal注册开发者账号后,登陆便可在开发者Portal里向应用推送消息,简单到只须要填写推送内容,而后点击发送按钮。另外,也提供远程 API 方式供推送消息。完整地了解,请从这里开始:极光推送快速入门

通常来讲,同一个移动App,都会有多个平台的版本,通常至少有 Android 与 iOS 二个平台的。极光推送目前支持 Android 与 iOS 两个平台,服务器端推送时,能够同时兼容这二个平台的推送。这一点,能够大大地减轻运营的工做量。

若是您有移动App 集成 Push 能力的需求,或者对相关技术有兴趣,请访问极光推送官方网站了解进一步的信息,或者关注@极光推送新浪微博。

相关文章
相关标签/搜索