移动应用分析平台上基于Ajax实现客户端应用数据采集(李改)

  • 优秀论文奖
  • 文章作者:中国新闻技术工作者联合会 2021/12/30-04:43 阅读: loading...

    康洁 瞿弋微

    (新华社技术局)

    摘要:

    随着移动互联网的发展和智能终端的普及,移动应用下载量和新应用需求呈井喷式增长。然而,由于大量移动应用存在内容同质化,用户群定位不清,推广渠道分散,异构平台体验不一致等问题,会使运营陷入困境。移动应用分析平台的主要作用是通过收集移动端产品的用户、设备、事件、使用情况等海量数据,从上报信息中分析挖掘潜在价值,帮助应用开发及运营人员了解产品表现,强化核心功能,从而在移动互联网时代实现数据化、精细化的运营。

    文中介绍了移动应用分析平台的工作原理和建设意义,对移动应用数据采集部分的技术实现进行了深入研究,在此基础上提出了未来移动应用分析平台的发展建议。

    关键词:移动应用分析 移动Ajax SDK 客户端应用数据采集

    1 引言随着移动互联网的发展和智能终端的普及,全球移动应用市场发展迅猛。预计到2017年,全球智能手机和平板电脑的应用程序下载量将达到1600亿。中国作为全球第二大移动应用市场,移动应用下载量和新应用需求将呈井喷式增长,同时预示移动客户端作为新媒体的主要载体,其影响范围将持续扩大。为落实中央要求、抢占新兴媒体舆论阵地,新华社提出要大力开展党政客户端技术建设,通过在智能终端上开发信息资讯客户端,为全国各地方党委、政府建设自主掌控的掌上新媒体服务平台,帮助地方政府实现舆论引导和政务公开,同时提供便民服务和沟通渠道,成为群众建言献策和参政议政的有力载体。为全面了解新华社资讯的消费群体,及时发现用户对信息服务的需求变化,和用户建立起良性的互动关系。在新华社党政客户端集成管控平台项目中将重点收集和分析用户数据,汇聚受众基本信息如年龄段、兴趣爱好、所在区域等,对用户进行统一管理,提供用户特性分析等服务;汇聚终端用户登录、阅读、分享、评论等行为信息,为进一步增强内容建设,发展个性化服务产品提供数据支撑;汇聚APP产品停留时间、跳转、退出等使用信息,为进一步提升产品设计,增强用户粘性指明方向,最终达到资源优化、流程优化、体验优化、产品优化的目的。2 移动应用分析相关概念2.1 移动应用分析概念移动应用是移动互联网的重要载体,移动应用分析是指在获得移动应用用户使用等基本数据情况下,进行数据分析,深入挖掘用户使用的特点,找到产品设计的不足,发现运营推广的机遇,优化产品及运营策略,提升移动应用的质量。2.2移动应用分析的意义2.2.1监控移动应用运营状态移动应用分析最基本的使用场景就是实时监控应用的运营状态。通过收集应用每日的新增用户、活跃用户、留存用户等数据,并对其加以分析,以日报、周报、月报的形式进行系统地监控。通过分析和比较这些核心数据的变化趋势,用数据说话,可以帮助运营和推广人员多维度观察应用的运营状态,及时发现问题。2.2.2提升移动应用推广效果渠道是移动应用推广的主要方式,不同渠道面对的是不一样的用户群体,根据渠道和推广位置的数据分析选择成本低、效果好的渠道可以有效地找到目标用户,提升运营表现,降低推广成本。2.2.3发现移动应用产品问题通过分析应用的访问路径、自定义事件点击/转化等数据,找到用户流失的原因,利用数据更快地定位出产品问题或策略问题,并依据规范的移动分析思路和方法找出解决方案。2.2.4优化移动应用功能及体验作为移动互联网的主要入口之一,移动应用的体验优秀与否在一定程度上决定了用户的去留,通过移动应用分析找到产品问题,结合访问路径、用户的人口学属性等制定优化策略,提升应用的吸引力和易用性。2.3 移动应用分析工作原理目前移动应用分析的方式主要是较为流行的基于SDK(Software Development Kit,即软件开发工具包)的分析统计。这种方式是在应用中嵌入一段SDK代码,SDK代码规定了用户行为收集的规范,用户的启动和使用行为通过SDK记录在应用中,当发送条件被触发后,这些日志被发送到服务器来进行分析和挖掘。此方式的优点是安装使用简单,用户行为统计更加准确。以下为基于SDK的移动应用分析数据收集流程图:

    图1 移动应用分析工作流程

    首先产品开发团队向移动应用分析平台注册以获取APPID,这是移动应用的唯一标识,通过APPID将采集上报信息与移动应用有机关联起来;第二步 根据行为收集的规则,在APP 实现代码中植入SDK和发行渠道的相关信息;打包生成安装文件,上传到应用市场供审核发布;第三步 配合线下活动进行应用推广,用户在正确下载安装应用后,SDK在后台自动采集用户使用及设备信息,根据上报策略向移动应用分析平台进行异步数据上报;第四步 移动应用分析平台以流方式接收上报日志文件,接收后存储到Hbase库中,后续使用Map-Reduce工具对日志内容进行分析和挖掘。第五步 根据不同角色及业务需求,建立分析模式,生成各类图表,供产品运营及开发人员分析参考。2.4 移动应用数据采集对象为实现移动统计分析平台能够根据应用发展目标直观生成相应指标和图表,在数据采集阶段应尽量确保数据的全面性、完整性和可靠性。移动应用数据采集的对象主要包括渠道来源、受众属性、用户行为和终端设备。1)渠道来源:目前的移动应用分发主要依赖外部渠道的推广,这里的渠道既包括AppStore、Google Play等官方的应用市场和商店外,还有91助手、百度手机助手、联盟、In App推广等非官方渠道。渠道推广大都是要付费的,因此产品开发团队非常关注各个渠道推广效果如何,渠道来源的分析就抓住了这一点强需求,从源头上帮助开发者对比分析推广效果,以便优化广告投放,提高ROI(Return On Investment,即投资回报率)。2)受众属性:对于移动应用的用户群体特性进行分析,是了解应用的受众属性最好的方式。掌握了受众的属性(如地域分布、年龄、爱好、学历分布等),才能更加准确的指导后续运营中的广告投放,做到有的放矢,把推广的费用花在刀刃上。3)用户行为:了解了什么样的人在使用你的应用之后,更要了解这些人是如何使用的。用户行为包括,用户活跃度、留存比例、新增数量、使用时长、使用频率、使用间隔、页面访问路径、页面访问深度等。通过这些翔实的数据分析,能够让用户在应用内的行为一目了然。所以深入细致的用户行为分析,能够极大的帮助开发者优化应用流程和定位应用内问题。4)终端设备:移动互联网时代与PC互联网时代相比,对于开发者最大的挑战之一就是终端设备千差万别,移动应用的适配问题常常让人头疼。分辨率不同、机型不一样、操作系统迥异,这些都给兼容性带来了极大的挑战。因此,对于开发者来讲,能够全面掌握用户的终端设备及网络接入情况,这对产品设计具有指导性意义。以上这些数据都是移动应用精细化运营所要研究的问题,数据分析的本质也是在于透过数据能够挖掘出背后的问题和症结所在,用本质原因解释表面的现象,以指导运营的优化。通过这样的过程,数据的价值才能彰显出来。3 移动应用数据采集技术原理

    图2 数据采集实现原理图

    如图示,根据党政客户端具体业务场景,为实现移动应用跨平台数据采集的总目标,分别开发iOS和Android版的移动应用统计SDK。SDK是一些被软件工程师用于为特定的软件框架、硬件平台、操作系统等创建应用的开发工具的集合,它可以简单的为程序设计语言提供应用程序编程接口。移动应用统计SDK参考业内领先的移动应用数据采集工具,支持android4.4安卓手机和iOs7苹果手机。通过在iOS和Android原生应用中嵌入统计SDK,当自定义事件被触发时,响应函数调用原生接口,对日志数据进行封装后进行上报。由于移动端内存小、计算能力弱、网络不稳定等特性,在数据上报时采用移动Ajax技术进行异步上报。上报数据格式使用JSON半结构化数据格式规范。移动应用数据上报到统计分析平台后,经过收集、清洗、分析等数据处理过程,进行各项数据汇总,结合业务模式,生成各类图表,供产品运营及开发人员分析参考。4 移动应用数据采集关键技术4.1 AjaxAjax (Asynchronous JavaScript and XML)并不是一门新的语言 ,它实际上是由几种主流技术以新的方式组合而成 ,在共同的协作中发挥各自的作用 ,并打破了使用页面重载。Ajax的工作原理相当于在用户和服务器之间加了一个中间层,使用户操作与服务器响应异步化。并不是所有的用户请求都提交给服务器 ,像一些数据验证和数据处理等都交给 Ajax引擎自己来做 ,只有确定需要从服务器读取新数据时再由 Ajax引擎代为向服务器提交请求,如图3所示。

    图3 客户端编程模型

    在 Ajax之前 ,Web站点强制用户进入提交 /等待 /重新显示 ,用户的动作总是与服务器的处理时间同步。Ajax引擎提供与服务器异步通信的能力,用户触发请求时,使用 JavaScript和 html立即更新 U I ,并向服务器发出异步请求 ,以执行更新或查询等流程。当请求返回时 ,就可以使用 JavaScript和 css来相应地更新 UI ,并不刷新整个页面。如果用户交互不需要从服务器上获得数据,Ajax引擎会自主处理这个交互;如果需要从服务器上获取一些数据,Ajax引擎会完成一个异步调用,而不打断用户流。借助Ajax,用户体验不到浏览器何时与服务器通信,Web应用看起来是即时响应的。现在Ajax技术大量应用到移动领域,解决移动业务的如下问题:1) 间断的网络连接问题:Ajax将一部分应用逻辑从服务器端移到浏览器端,与传统Web应用的按请求获取(Fetch on Demand)不同,Ajax采取预取(Predictive Fetch)模式可以提高缓存命中率,大幅减少用户的访问延时。2) 带宽限制问题:在一个会话中,服务器只返回一次页面,包括模板文件、用户导航及大量JavaScript代码,由这些代码决定是否离线处理或将请求传递给Web服务器。在整个交互过程中,Web服务器只需发送相关的数据。这样大幅缩减了数据的传输量,降低带宽的耗费。3) 输入补全:Ajax的异步机制可以在用户输入数据的同时从服务器取得备选数据以便自动补全,极大缓解移动设备输入方式的压力。4.2 JSONJSON(JavaScript Object Notation) 是一种轻量级的数据交换格式基于JavaScript的一个子集。JSON有两种数据结构,分别是对象和数组,通过这两种结构可以表示各种复杂的结构:1、对象:数据结构为 {key:value,key:value,...}的键值对。取值方法为对象.key 获取属性值,这个属性值的类型可以是数字、字符串、数组、对象几种。2、数组:数组在js中是中括号“[]”括起来的内容,数据结构为 ["java","javascript","vb",...]使用索引方式取值,字段值的类型可以是数字、字符串、数组、对象几种。5 移动应用数据采集具体技术实现集成移动统计分析SDK的应用在启动后,根据上报策略(包括启动上报、事件上报等),完成数据组织和封装。根据网络连接情况,以POST方式向后台上报接口进行内容上报。在网络连接不稳定或内容提交不成功的情况下,将上报信息写入本地日志文件,待恢复后再次提交日志,日志文件内容的去重由服务器端完成。在日志上报实现过程中我们遇到一种情况,就是移动应用会并行发出多条ajax请求。在网络状况良好时,基本上ajax请求数对性能没有什么影响。但是在信道资源紧张的移动网络下,会造成网络拥堵的问题。而一个移动应用中只有大部分主请求是有时效性要求的,所以我们引入Ajax队列,将用户行为上报请求滞后发送,即等主请求都返回后,再依次发送。这时,我们就需要引入ajax队列的概念,将ajax请求分优先级,优先级低的可以滞后发送,尽量将网络资源让给主要的ajax请求,为了方便的使用ajax队列,我们封装了一个ajax基础库。

    图4 异步日志上报实现原理图

    下面以事件上报为例,其数据组织上报和处理的时序图如下,在数据上报过程中调用了异步上报接口。

    图5事件上报时序图

    6 集成及测试效果6.1功能测试4月中旬完成了统计上报SDK1.0版本的开发工作后,为测试移动应用统计SDK设计是否满足数据采集需求,选取新华河北Android版应用为原型,进行集成测试工作。历时5天,完成sdk第一阶段测试工作,实现了对栏目点击量、稿件点击量、停留时长、终端信息、自定义事件等重点数据的采集功能。集成过程遵循Android版移动应用统计sdk集成方案,围绕业务需求主要对现有模块进行自定义事件和启动上报两种方式上报数据。步骤分为后台页面数据注册处理部分和前端客户端相关模块测试两部分。针对自定义上报数据方式,需首先进入自定义事件管理模块添加事件id并通过事件上报方式与相应界面、模块进行匹配。其次,根据要求针对用户登录、栏目点击、文章点击、文章顶踩、评论等模块进行事件方法的植入。第三,利用logcat工具进行模拟器调试,确认数据组装情况,调用接口,完成信息上报。根据测试内容需求,客户端登录、栏目点击、稿件点击、文章评论、点赞、收藏、栏目停留时长等模块均以事件方式上报测试数据。后台基础统计结果如下图:

    图6 APP使用时长效果图

    6.2性能测试1) 在本次测试中,将授权验证startWithAppKey方法植入在新华河北客户端用户登录方法中,增加登录运行时间4-5秒,约占app启动时长的50%。其余上报自定义事件约占点击响应时间10%以下。2) 根据统计分析要求,结合SDK使用文档说明,对原有的App的修改主要涉及登录界面、程序主界面、栏目列表界面、栏目订阅、新闻详情界面、设置界面等主要前端展示界面。涉及改动界面Activity类10个左右,每个Activity添加相关事件上报和启动上报代码大约20行。代码开发量与数据采集指标、上报事件数等成正比。7 移动应用统计分析业务在新华社的应用展望7.1 背景介绍党政客户端项目是全社重点工程,是抢占新媒体主阵地、实现战略转型的突破口,是推进集成服务的新空间,抢占4G先机的制高点。今年全国两会前,浙江分社建成、推出10个党政客户端,北京、上海、云南、江苏等13个试点分社也相继推出多个党政客户端应用。2014年全年目标为建成500-800个党政客户端,覆盖三分之一县市,初步建成全国最大的党政客户端集群,并逐步拓展行业、企事业用户。7.2移动应用分析面临的问题1) 全局数据需要打通当我们获取单独APP数据时,这些数据都是孤立的,我们不太会关心用户在其他APP中有什么样的行为特征。而当我们拥有数十个APP时,如果能将各APP数据打通,那我们能获得的数据价值将会呈几何级数增长。每个用户使用的手机MAC号通常情况下是唯一的,所以我们可以通过MAC号来将用户打通。2) 信息需要补全在移动应用分析中,一个棘手的问题,就是用户信息不完整,不能有效地为其推送。用户信息不完整的主要原因是在单个APP中留下的信息量少,如果能利用用户在其他APP的信息来补全,则可以大大优化用户体验。7.3应用展望1) APP互推:APP互推是一种通过挖掘APP之间的隐含关系,将一个APP推送到另外一个相关类的App产品。在没有打通APP数据之前,APP互推一般都是根据随机原则、热门APP原则、相似相近原则来进行推荐。这些方法存在命中率问题,如为不同类型用户推荐相同的APP,推荐的APP符合用户喜好的准确率低,推荐内容不够丰富等。当多个APP数据打通后,原始APP推送方法可以得到明显的改善。一方面,我们可以获取用户的全局信息,利用这些信息我们可以更好地为用户做个性化推荐;另一方面,由于APP的打通,我们能更好地将用户、APP进行聚类分析,这样更方便了解相似用户对相似应用的偏好使用。2) 广告应用在没有打通APP数据之前,APP的广告一般都是根据APP的关键词原则进行投放,不同用户在登录同一应用时可能接收到同一个广告。这种投放方法存在明显问题,只抓住了APP的匹配性,没有抓住APP上具体人的匹配性。比如:一个人刚浏览过母婴类的APP转入另一个新闻类的APP时,该新闻类APP大多会为其投放既定内容广告,而不是母婴类的广告。当我们把APP数据打通后,用户的信息更全面,可以综合起来使用。如上例中用户浏览母婴类APP后转入新闻类APP时,该新闻类APP会为其投放热销品和母婴类的广告。因为通过全面的用户信息,APP已经记忆了用户的历史行为。所以,当上述情况发生时,新闻网站可以根据用户从母婴网站带来的喜好为其投放与其喜好相近的广告。这样才能更加准确的抓住用户心理,让用户、应用提供商及广告商实现共赢。8 结束语2013年10月 , 党政客户端项目进入市场,现已先后推出了覆盖28省三百多个资讯类移动应用,受到用户好评,初步取得了较好的社会和经济效益。随着覆盖区域不断扩大和产品功能日趋丰富,该品牌的权威性和影响力将更加突现。移动应用分析平台使党政客户端产品进入数字化运营,科学有据的分析和合理的改进措施必将促进新华社出品移动应用的更快发展 。 参考文献:【1】. 官建文,唐胜宏等. 《中国移动互联网发展报告2013》, 北京: 社会科学文献出版社;2013年5月: 253-271【2】. 张传福, 刘丽丽, 卢辉斌,等.《移动互联网技术及业务》, 北京:电子工业出版社; 2012年1月:97-101.【3】. 百度移动应用分析白皮书v1.0, 2003: 4-42. 编辑:中国新闻技术工作者联合会

    评论 点击评论