写点什么

让 1.5 亿移动端用户第一时间获取消息

2013 年 6 月 26 日

在内容同质化严重的时候,同样的内容,如何让用户第一时间打开自己的移动应用阅读,而不是其他家的?如何将以前需要数小时甚至数天才能发送完毕的消息,在半小时内搞定?特别是类似爱奇艺这样体量巨大的公司,面对自己的 1.5 亿移动端用户,想维持他们的活跃度,也绝对是一个挑战。目前,云推送技术有望帮助解决这一困境,而且可应用多个移动平台,包括 iOS 和 Android 等。日前,InfoQ 编辑采访了爱奇艺移动业务事业部的产品总监任衡,以及产品经理周政、吕苏等,就云推送技术在爱奇艺的应用做了探讨,相信他们的经验对其他有类似需求的移动研发人员有一定的借鉴价值。

维持用户活跃性——爱奇艺的大难题

爱奇艺 2010 年成立,自 2012 年开始发力移动端,据说不论是在 iPad 还是 iPhone 端,都基本上是国内最早做移动端的,到目前为止,也几乎覆盖了所有的平台,包括 iPhone 和 iPad、Android 手机和平板、WinPhone 和 WinPad、Symbian 和 Bada 等。另外,爱奇艺还和三星、华为、步步高、Oppo 等手机厂商合作,在它们的手机中预装其应用。根据艾瑞的数据, 爱奇艺与 PPS 合并后,移动端的用户覆盖规模达到第二名的两倍。

但话说回来,用户装了你的应用不一定就是你的忠实用户,根据一个非官方的说法,很多用户下载了某些应用之后就再也没有打开过。也就是说,如果及时唤醒用户并维持他们的活跃度,比如上了新片或者最新的娱乐八卦消息等如何推送到用户眼前,这才是众多厂商首要解决的问题,这也是爱奇艺所面临的挑战。从技术层面上分析,不论是成本、实时性、可扩展性和个性化,每个都不是容易的事情。

成本维度考量:在一个相对较短的时间内,把数亿条消息全都推送出去,对于服务器、带宽等都是很大的挑战。另外,苹果也有自己的消息中心,它的容量也是有限的,如果一股脑将全部的信息推送给它,它也承受不住,而且达到率会大打折扣。这种情况下,就需要通过一种缓释的方式,一部分一部分地推送给苹果消息中心,这都需要 N 多服务器和带宽的支持。对于公司来说,当然也希望通过规模化的操作来降低成本。

实时性维度考量:对于熟悉娱乐界的同学来说,这就比较好理解了,比如最近爆出八卦,某大众偶像已经结婚,这是一个很劲爆的消息,那么爱奇艺获得了这个新闻之后,如何第一时间发出去?要知道,现在每个用户的终端设备上几乎都装着多个视频客户端,而谁的客户端先发出消息,那么谁也就抢得了先机,用户也就可能选择谁。另外,用户也并不是每天 24 小时都拿着手机看的,一般中午 12 点和晚上 6 点是两个明显的小高峰,饭前和下班路上大家都有看手机的习惯,如果在这个时间段让用户收到所推送的消息,开启率和激活率无疑会有比较大的提升。

扩展性维度考量:如果说自己架设服务器,倒也是能做,只是扩展性上不是很好把握,比如要用多少服务器,每个服务器的容量大小等都是需要考虑的。即使爱奇艺能做,相比于专门提供这样服务的公司,比如百度,可能就不如他们将这样的服务做得精细而全面。所以说,通过百度云推送,爱奇艺能够以一种比较低成本、高效的方式解决自己的问题,而且不用考虑任何负载、带宽需求。

个性化维度考量:个性化的优势不言而喻,不同的手机不同的特点,不同的用户也有不同的需求,比如功能手机只能接收文字,而 Android 手机还可以接收图片,以后也许会直接包含视频等。那么多的手机型号,而且各个厂商可能都有自己的推送服务,对于爱奇艺来说,能够维护好这个复杂的系统也是很大的挑战。如果有一个专门的技术,让开发者不用考虑手机型号,各类推送服务,只需要将精力放在业务上面,比如不同用户的特性,然后依此推送个性化的服务,给喜欢电影的人推送新片,给女性推送娱乐八卦等。大家各司其职,各取所长,工作效率就会提高很多。

基于云的推送服务的引入

在苹果没有在国内架设自己的数据中心之前,类似爱奇艺这样的公司,在推送消息时,经常遇到的问题就是丢包。其原因也比较简单,一是因为苹果的带宽较小,本来总量可能比较大,但是分配给国内的公司就少很多。

在引入百度云推送服务之前,爱奇艺一直没有找到特别好的办法解决丢包的问题。在测试了多次之后,他们才决定选用百度云推送的服务,其原因主要是,虽然爱奇艺的技术团队对自己的服务端做了很多改进,但是相比于百度云的规模效应,还是小巫见大巫。举个简单的例子,原来自己需要花费四、五个小时才能发完所有的消息,现在则是几十分钟的事情,这就是云技术的能量。而且对于 Android 平台,因为不像 iOS 那样还要走自己的消息中心,百度云推送可以让爱奇艺的信息做到实时发布。

对于百度云推送服务的特点,爱奇艺根据自己的理解,也做了一些总结。以自己以前自建服务器完成信息推送服务,和现在的云推送服务相比,任衡举了一个快递配送的例子,虽然现在的快递公司很多,但是大家很多时候还是愿意选择顺丰,其原因就在于其服务可以及时、安全,服务质量也不错。可以说,百度云推送就是一个功能完善、经验丰富的配送站,比如从前自己通过苹果消息中心推送信息时,不知道那个道路只能跑两辆车,于是一下子塞进去了一万辆,结果自然是堵塞。而百度知道那个是双车道的,每次只能塞两辆,基于这些经验,于是就将客户发送到他那儿的一万辆车分次发,每次两辆,问题就轻易解决了。

另外,很多中小型公司,其实包括爱奇艺在内,面对苹果的消息中心,有时候也不知道如何调整自己的策略才更好,而百度知道,鉴于自己在互联网领域的多年经验,它知道何时中国的带宽波动最大,而何时苹果的消息发送中心效率最高,因为走过很多遍,也就知道了路上有哪些坑。要知道百度地图、百度音乐都是体量很大的移动客户端,在其发展的过程中,相信也都遇到了各种各样的问题。而解决这些问题之后的经验,通过百度云推送服务都可以无缝传递给企业。

谈到在使用百度云推送时的经验,以及如何让后来者少走一些坑。任衡和周政提到,因为百度云推送的接口是标准的,所以只要严格按照文档中的指南,很快就可以上手。爱奇艺是差不多用了一个月的时间完成了从测试到调试到上线的三部曲。其实,在选用百度云推送之前,爱奇艺也测试了其他一些国内的云推送服务公司,之所以最终选择百度云,一方面是公司间的关系,另外就是百度在运维、云计算方面的技术积累,以及从公司品牌和个性的服务等方面,都比较占优势。

期待——更多的个性化数据分析

虽然现在百度云推送已经实现了比较好的消息推送功能,能够满足企业的基本需求,但是用户的需求是无止境的。在交谈中,任衡也列举了一些例子,类似淘宝的数据魔方,通过收集整理买家的数据,能够了解他的喜好,然后推送不同的广告信息。而百度云推送也许将来可以通过和爱奇艺合作,基于所发送的信息,深入了解用户对信息的敏感度,然后按照电影、电视剧、娱乐八卦对人群细分,从而不仅可以将消息推送到用户面前,而且推送的都是他们感兴趣的。如果能做到这一点,那么就善莫大焉。

在 InfoQ 编辑和爱奇艺的研发经理沟通的过程中,即使是体量大的移动端,即使有着强大的技术研发力量,也是希望能够将自己的精力放在业务上,让用户有片看,让视频更加流畅,让用户体验更好,然后将非核心的事情都外包出去,比如将消息推送交给百度云推送去做等。对于体量不如爱奇艺这么大的中小型公司,也许需求更是如此吧。在接下来,InfoQ 的编辑会走进更多的有代表性的移动产品,与其技术负责人、产品经理沟通,获取更多在移动产品开发过程中的难题,以及可能的解决方案。各位读者如果在研发过程中遇到什么难题,也欢迎以评论的方式与编辑讨论,InfoQ 的编辑会带着这些问题和有经验的专家沟通,为大家尽可能答疑解惑。

题外话:本文所提到的百度云推送技术百度目前已经对外开放,InfoQ 的读者可以优先注册体验

2013 年 6 月 26 日 01:535662

评论

发布
暂无评论
发现更多内容

Python中 *args 和 **kwargs的用法

Young先生

Python *args **kwargs 缺省参数

功利学习法:我为什么要这么功利?

非著名程序员

学习 程序员 程序人生 提升认知

可读代码编写炸鸡四(下篇) - 提炼注释的下一步是提炼注释

多选参数

代码质量 代码 代码组织 代码规范

我终于弄懂了Python的装饰器(二)

Young先生

Python 装饰器

推荐 10个 NB的 IDEA 插件,开发效率至少提升一倍

程序员内点事

Java 效率 IDEA

小姐姐面试蚂蚁金服被虐经历,哪吒心疼.

通天哪吒

面试 Java 面试

一致性Hash算法

莫莫大人

极客大学架构师训练营

环信即时通讯云荣获《2020年度云通讯产品创新奖》

DT极客

Spring Boot 最流行的 16 条实践解读,值得收藏!

Java小咖秀

spring 学习 Spring Boot SpringBoot 2 经验分享

Homework-我的一致性Hash算法

River Tree

Homework

架构师训练营总结 -5

River Tree

极客大学架构师训练营 个人总结

我终于弄懂了Python的装饰器(一)

Young先生

Python 装饰器

创业使人成长系列 (1)- 从失败中学习

石云升

创业 个人成长 成长

第五周作业

我终于弄懂了Python的装饰器(四)

Young先生

Python 装饰器

第五周学习总结

架构师训练营第五周学习总结

0x12FD16B

一篇文章深入理解JDK7 HashMap

独钓寒江雪

hashmap map 源码解析 哈希冲突

[架构师训练营] Week02 - 学习总结

谭方敏

一篇文章深入理解JDK8 HashMap

独钓寒江雪

源码 hashmap 线程安全

Atlassian Team Playbook | OKR 好的不只是逼格

Atlassian速递

开发

想怎么玩,就怎么玩!搭载桌面级十代酷睿的神舟超级战神真香!

飞天鱼2017

猿灯塔:spring Boot Starter开发及源码刨析(一)

猿灯塔

Java 源码剖析

编程能力 —— TicTacToe(井字棋)

wendraw

Java 前端进阶训练营 编程能力

再谈任务分解

松花皮蛋me

Java 精益开发

深入理解CAS:以AtomicInteger为例

独钓寒江雪

Atomic CAS AtomicInteger 自旋

week5 coding

AIK

我终于弄懂了Python的装饰器(三)

Young先生

Python 装饰器

直接赋值,深拷贝和浅拷贝

Leetao

Python Python基础知识

week5 总结

AIK

如何写一份合格的技术简历?

通天哪吒

面试

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

让1.5亿移动端用户第一时间获取消息-InfoQ