腾讯大数据前端开发负责人郑灿双:移动分析助力 App 精细化运营

  • 陈思

2017 年 6 月 15 日

话题:大数据腾讯语言 & 开发架构前端

2017 年 GMTC 全球移动技术大会上,腾讯大数据带来了自己的移动分析系统 MTA 和移动推送工具(信鸽)。前端开发负责人郑灿双也在会场发表了名为:移动分析助力 App 精细化运营的演讲。

InfoQ 记者在大会现场采访到了郑灿双,请他谈谈关于移动分析和推送系统对 App 精细化运营的影响的理解,同时在技术层面为我们进行深入分析。

App 精细化运营

什么是 App 精细化运营?对于 App 精细化运营这件事情,郑灿双个人理解是这样:“一个中心,两个基本点”。“一个中心”就是,以用户为中心,“两个基本点”就是数据、技术。

一个中心

一个面向开发者的工具,为什么要以用户为中心呢?郑灿双说:“其实可以反过来想一下,一般所说对 App 进行的所有平台、技术以及数据分析,这些步骤或者是过程,最终的端点都是对用户,所以我认为应该是用户为中心。” 

研发者要关注的是用户在自家 App 上所产生的行为数据、用户属性的数据,以及与自身业务相关的一些如付费、UGC 等产生的业务数据等。以用户为中心是精细化运营的一个中心。

两个基本点

1. 数据

数据其实是承接用户而来的。

首先需要有灵活且强大的数据采集能力,要尽可能更多的去覆盖、采集种种用户行为和用户属性相关的数据,才能有助于开发者后续去灵活的运用这些数据进行 App 精细化的运营。因此,获得数据要具备灵活和强大的数据采集能力。

接下来就是对数据有足够强大的分析和挖掘的能力。拥有这么多数据,用户在 App 上产生这些数据是能够产生价值的,比如可以做相关的一些聚类分析,一些用户行为的透视,来辅助、指导运营者做 App 的精细化运营,有时还可能会用到一些数据挖掘的能力,充分利用数据推动运营,才能让它产生更多的价值。

腾讯移动分析 MTA 使用了 looklike 的技术,关联用户的相似兴趣,然后指导运营者做 App 精细化触达,这就是数据层面的价值挖掘。

2. 技术

技术,是指精细化运营阶段,要具备和使用合适的工具和技术手段来辅助运营,缩短运营周期,强化关键路径。

在 App 整个精细化运营的过程中,一直被倡导一个点即是灵活。

在 App 动态运营的过程中,如果发现需要快速地迭代修改 App 的一些内容或者功能时,一般来说会经历设计、研发、发版、上线等很繁冗的一个链路,这其实对于 App 精细化所要求的动态性来说,是一个沉重的过程。

于是开发者们在技术层面上给予这样工具和平台的支持,能够强化整个 App 精细化运营的关键路径,加快迭代速度。

MTA 会提供可视化埋点来帮助移动开发者在云端动态运营 App;还有类似于 Crash 这样的实时统计能力,帮助 App 开发者能够掌握自己 App 健康情况的第一手数据;同时还提供云控的能力,这可以让 App 的开发者和运营者在云端对自己的 App 进行云化管理。

这就是郑灿双理解的 App 精细化运营“一个中心,两个基本点”。

移动分析和推送系统的技术支撑

“腾讯移动分析 MTA、腾讯移动推送(信鸽)每天会处理 4000 亿的用户行为的流水,有大概上千台的机器的计算资源。我们作为对外开放的数据服务平台,我们的产品和业务线需要消耗大量的计算资源,其背后离不开我们背靠的整个腾讯数据平台对数据计算和数据处理的强大能力。”

郑灿双补充道:“目前来看的话,腾讯大数据拥有业界最大规模的一个计算集群,近万台的一个计算集群规模,同时腾讯的计算能力也是业界领先的。在去年 9 月份的时候,全球的 Sort Benchmark 排序比赛上,腾讯大数据以 99.8s 的时间完成 100TB 的数据排序,这个成绩比上一届冠军的 329 秒提高了 3 到 4 倍,这足以证明腾讯大数据的数据计算能力完全是业界领先的。”

整个腾讯大数据平台经过八、九年的技术积累,已经可以很好地去适配业界,无论是中小开发者还是中大型的一些国企和私企,对大数据和甚至之后的 AI 机器学习这方面的一些诉求都完全可以匹配。

腾讯大数据平台的发展,模式是社区 + 自研的形式。有很多技术都是来源于社区并且本地化,然后再贡献到社区,之后结合实践为社区分享资源和组件。

对应着整个大数据处理的一个链路,从数据接入、数据计算到数据存储,任务调度到数据应用这几个链路来看,腾讯大数据采用了很多的业内领先的框架和技术,像数据接入的 hippo,数据交互的 hue,数据存储的 HDFS、Hbase,PG,数据计算的 HIVE、Spark,机器学习有自研的 tesla 等等。

可视化埋点与其技术实现

郑灿双在采访中提到了可视化埋点技术:腾讯 MTA 的可视化埋点技术,在网页快速圈点,即可完成用户行为跟踪。

那么可视化埋点如何实现?如何根据可视化埋点生成可视化界面?

郑灿双回答道:

终端设备和 SDK 之间会维持一个专有的通道。

这跟平时的统计通道是分开的,而且是一个长连接的通道,我们的终端设备会负责截屏,然后终端 SDK 会有一个跑马的策略,就是每秒钟刷新一次这样的截屏信息,然后把截屏的信息以及这个屏幕内所有可点击的元素信息、位置信息,都会上传到 config access 的接入层,然后 web 端有一个 webworker,轮询的去 config access 节点去取 activity 的页面截图和元素坐标位置信息,确认是否有一些新的截屏。

如果有的话,前台页面就会刷新,然后从 config access 这边拉到页面信息和这个页面所有可点击元素的标识以及位置信息,在前面 web 端进行一个重绘,然后 App 的运营者在管理台后台就可以实时的看到当前 App activity 的页面具体是展示成什么样子,以及对应的各个可点击元素的位置,然后这名 App 运营者就可以方便地在 web 端进行一些类似于埋点之类的配置,通过云控的系统下发到 App 里面来。

云化 App 动态运营

云控确实是云化 App,是 App 动态运营的一个很关键的技术。

“腾讯大数据目前采用的动态化技术无非无外乎两点,拉(pull)和推(push)两种方式,就是动态去获取配置的方式,针对不同的情况下,我们会产生不同的策略。”

郑灿双以 MTA 举例:因为它只是数据上报的一种通道,采用的是短连接,所以它更适合的是拉,就是终端去主动向服务器端询问有没有最新的配置,如果有就主动去拉这个配置。

而在腾讯移动推送(信鸽)的模式下,因为它是一个推送的通道,需要维持一个长连接,这种就能用推的技术,并且将增量更新的配置推送到相应设备上。这样整个搓成对性能几乎不会有任何影响。

基本上就是在不同的需求场景下采用不同的动态化的技术来实现配置的云控。

未来发展方向

采访的最后,郑灿双讲到整个 App 开发者平台接下来的发展方向大概会分三块:

一、基础建设

包括基础集群的质量、数据的准确性、系统的稳定性和安全性、推送速度时效性等。

二、为开发者提供更多的服务

例如为开发者提供 Crash 分析、推送的通道、系统的监控、热更新、安全加固这样一系列的工具类产品。

三、为产品运营者服务

提供精细化运营的能力,帮运营者做用户画像,做精准推送,提供 LBS 的分析,帮他实现可视化的埋点,帮他提升运营效率。

讲师介绍:

郑灿双,腾讯大数据前端开发负责人,专注于 js、php、node 等前端应用开发领域,带领团队在大数据平台的建设中,沉淀了基于 Angular/Vue/React 的前后端分离 / 组件化开发的最佳实践,并在 H5、Hybrid、微信公众号、小程序,php 面向服务开发等领域积累丰富经验,目前主要参与移动分析、移动推送等移动开发者服务的建设。

大数据腾讯语言 & 开发架构前端