您的当前位置:首页正文

新闻App用户行为分析的实现

2024-09-15 来源:星星旅游
新媒体研究·理论研究39

新闻App用户行为分析的实现

摘 要:本文对新闻App用户行为数据采集方式、数据分析方法进行了研究,提出了一种适用于新闻App用户行为高效分析的方法。该方法使用splunk进行后端数据分析,通过对列方式解决用户行为数据高并发问题,保证了App的高可用性。文中叙述的方法已经在实际使用的App中进行了部署,并经受了长时间的运行考验,可为类似新闻阅读类应用提供现实参考。关键词:用户行为分析;数据采集;数据分析;队列;splunk

中图分类号:TP311.5;TP316 文献标识码:A

文章编号:1671-0134(2019)03-039-05 DOI:10.19483/j.cnki.11-4653/n.2019.03.006文/赵强 彭玮

1.用户行为分析意义

用户行为,简单来说就是用户在网站或App上进行操作而产生的一系列行为。

在获取网站或者App等平台用户访问基本数据后,对相关数据进行统计分析,从中发现用户的行为习惯和潜在需求,有针对地解决业务相关问题、提高用户体验,并为决策提供依据的过程我们称之为用户行为分析。

那么,为什么要进行用户行为分析?截至2018年12月底,我国网站数量为523万个,App在架数量为449万款,每个领域都拥有成百上千的网站和移动App产品,竞争异常激烈。在这种环境下,如果企业能做好精细化的用户行为分析、找准问题所在,并有效提出改进方向,既能避免资源浪费,又有助于优化产品质量,提升公司竞争力。

用户行为分析通常应用于以下场景:

(1)运营分析,用户来源渠道统计,有助于判断哪个渠道有利于拉拢新用户。

(2)产品改版分析,通过AB测试或其他方法来分析不同App版本下的用户行为,以此来判断哪个版本会受用户喜爱,最终上线哪个版本。

(3)预测分析,合理构建算法模型,通过训练模型、验证模型,最终使用模型对用户关键行为进行预测,提前洞察可能出现流失的环节,提早干预,从而降低流失率。

(4)采用基于用户的协同过滤算法进行产品或内容推荐,即为A用户推荐相似用户B用户感兴趣的产品或者内容。用户画像构建是前提,用户行为越多,推荐越精准,用户的使用率和使用时长也会优化。2.新闻App用户行为分析

据2018年2月底发布的《第43次中国互联网络发展状况统计报告》显示,网络新闻占据中国网民各类手机应用的前三位,截至2018年12月底,手机网络新闻用户达到6.53亿,占手机网民的79.9%。由此可见,通过移动设备获取新闻资讯已经成为非常重要的渠道。

新闻媒体,从纸媒到门户再到移动端。传统媒体多

是以文字和图片呈现,而新媒体不仅可以通过文字、图片,还可以通过图集、视频等多元化方式展现新闻内容,对用户的冲击力更大、更直观。在新闻内容传播的同时,用户还可以进行评论、点赞、转发,增加了互动社交性也扩大了传播性。新媒体的时效性、传播迅速也是传统媒体远远比不上的。当用户不仅仅是看新闻而是使用一个新闻资讯产品时,我们要在考虑满足用户对新闻内容需求的同时也要考虑到用户的体验。为了更好地了解我们新闻App产品的使用情况和不足,本文将就新闻类App的用户行为分析技术做些分析和总结。

图1 手机网民各类手机互联网应用使用率图

3.用户行为数据采集

用户行为数据的采集方式直接决定了数据源的质量,是用户行为数据分析的基础。数据的采集通常采用“埋点”方式。埋点又可分为客户端埋点(前端埋点)和服务器埋点(后端埋点)。3.1客户端埋点

客户端埋点还可分为代码埋点和可视化埋点。3.1.1代码埋点

前端的代码埋点,顾名思义是在产品开发阶段,依据PM要求的数据需求文档,前端开发人员在每个需要采集的数据点写入代码。在用户每次前端操作时能够触发埋点上传数据。3.1.2可视化埋点

开发加入“无埋点”的采集代码,能够对网页或者

40

理论研究·新媒体研究

App上所有的可交互事件元素进行解析并监测,当有用户操作行为(交互事件)发生时,即对此事件进行采集、上报。无埋点并不是不用写入任何代码,而是通过代码将所有事件元素解析后,以可视化的方式呈现,让PM、运营经理等可以根据需要自行手动选取、标定。为了与开发逐一进行代码写入的方式进行区分,被称作可视化埋点。可视化埋点通常通过第三方工具实现。3.2服务器端埋点

服务器端埋点也成为后端埋点,指的是开发在服务器端写入代码,采集了前后端的交互事件数据以及存储与业务服务器中的业务数据。

三种方式对比如下表1所示:

表1 三种埋点方式对比表可视化埋点

前端代码埋点

后端代码埋点准确度低中高前期工作量低高高后期工作量

高中低优点

部署简单;准确度高;准确度高;便于运营和产品配置自定义强自定义强缺点不灵活;网络传输压力大工作量大

工作量大

第三方产品

Heap Analytics、Google Analytics、Growing IOTalkingData

4.分析数据

4.1分析指标

行为数据分析,通常要靠指标分析结果,选取合适的指标,才能有效判断用户的使用情况和App的问题所在。下面介绍几种常用的指标。4.1.1新增用户

新增用户指的是App被下载安装后第一次启动App的用户,用于衡量推广的效果。通常按照时间和渠道来源分类。

4.1.2活跃用户

活跃用户指的是在一定统计周期内打开App的用户数,一般用来衡量App的运营现状。4.1.3用户留存率

用户留存率是指在某一个统计时段的新增用户数中经过了一段时间后仍打开这个App的用户比例,包括次日留存、7日留存(如今天新增用户数在第7日再次打开App的比例,14日和30日留存以此类推)、14日留存、30日留存。这个指标是验证你的App对用户是否具有吸引力。

4.1.4启动次数

统计某一时段用户打开App的次数。4.1.5使用时长

使用时长是指在统计周期内所有用户从打开App到关闭App的总时长。这个指标考核的是你的App用户粘性高不高,也反映了App的产品质量高低,使用时长一般会结合启动次数一起分析。4.1.6用户画像分析

有了用户数据,再做用户画像分析会更加容易。用户画像是对人口属性的特征分析、用兴趣分析、用户行

为分析等。用户画像可以帮助App逐渐实现精准化营销,直接进行App与指定用户之间的点对点交互。4.2分析工具使用

用户行为数据分析工具通常有以下几种:4.2.1脚本统计

Python、R语言是常用的数据分析语言,优点是成本不会太高,缺点是开发周期长、学习成本高,而且运行效率可能不高。4.2.2第三方统计

Talking Data、Growing IO、Google Analytics等工具,都可以用于数据分析,优点是方便快捷,缺点是成本会比较高。

4.2.3日志分析工具

日志分析工具,如splunk、ELK,可以分析各种数据,而且有统计功能,优点是可以更灵活地运用于自身的业务。

5.实现方法

本文实现了新闻App的用户行为分析,通过前端埋点方式采集客户端用户行为数据,将数据传入后端,后端将行为数据放入队列,splunk通过应用接收队列数据后定时进行分析,并将统计结果放回队列中,程序取出队列数据放入MongoDB数据库,最终页面展示在业务系统中,供业务人员使用。流程如下图2所示:

图2 App用户行为分析流程

5.1前端埋点

获取用户行为数据采用前端埋点的方式,根据分析需求,规划埋点位置,定义埋点字段,可获取真实的用户行为数据,埋点上传字段如下表2所示:

表2 前端埋点字段

operateId字段time埋点采集动作类型含义ip设备操作时间设备位置ip地址contentTypeclientinfopositioncontentId操作信息类型手机型号title文章idappSoucedeviceId手机文章标题msgwordAppimer号搜搜名称createtimeid入库时间(后台入库时插入)uuidchanneluserId已登录用户上传用户AppiddeviceScreensysVersionversion设备系统版本App渠道名版本netType设备分辨率deviceTokenplatform手机平台(Android/ios)网络类型coordinates上传设备经纬度ios传表3为埋点采集动作类型(字段:operateId)。

表3 埋点采集动作类型

动作数值对象注册1用户登录2用户

打开3新闻、栏目(要闻等)、app关闭4新闻、栏目(要闻等)、app

收藏5新闻赞6新闻分享7新闻订阅8站点评论9新闻搜索10关键词安装11

App表4为操作信息类型(字段:contentType)。

表4 操作信息类型

动作数值栏目1专栏2普通文章3图片4视频5直播间6专题7华媒8评论9用户相关10App

11

5.2数据可靠传输机制

由于用户行为数据并发量大且频率高,因此,我们需要采取合适的方式保证数据的可靠传输并且减少对后端的压力。这里我们采用消息队列方式进行数据传输,消息队列指的是在消息传输过程中保存消息的容器,埋点获取的用户行为信息,通过App后端传入队列rabbitmq中,采用消息队列临时存储数据,有以下好处:5.2.1异步处理,减少请求响应时间

一次用户行为, App前端获取埋点数据后会向后端进行请求,后端接收数据后将其存入预先规定好的存储设备中。然而,这样App后端就会承受较大压力,一是前端频繁的请求,二是存储数据请求响应的过程。使用队列方式,可以减少请求响应时间,将数据直接放入队列中,然后让消费者再去存储数据,异步处理,减轻了后端压力。

5.2.2应用解耦,不影响App的正常运行

当App后端要去存储用户行为数据时,如果存储设备出现无法访问等问题,那么App的正常运行可能就会受到影响。这时如果中间加入队列方式,App后端将数据传入队列,就不会影响到App,数据只会堆积到队列中,但也能确保用户行为数据的完整性。

综上,我们采用了队列方式存放及管理埋点数据,以降低前端数据采集与后端数据处理系统之间的耦合性,提升系统运行效率。

5.3 splunk应用接收mq数据

队列中的用户行为数据需要由消费者取走,通常可以用程序方式,消费队列数据将其放入数据库中,再用

新媒体研究·理论研究41

脚本对数据进行分析。然而,我们会面临如下问题:首先原始的用户行为数据数据量非常庞大,普通数据库不适宜存储大数据,二是如果用脚本操作数据库,数据库会承受较大压力,分析数据的速度也会受到影响。这里我们选择采用splunk来接收存储数据。

Splunk是一个典型的大数据处理工具,面向机器数据的全文搜索引擎,是一个一体化的平台:数据采集-存储-分析-可视化。Splunk的应用AMQP Messaging经过配置可直接接收队列数据,存于splunk中,splunk的专用搜索语言SPL(searchprocessinglanguage)语法简单,类似sql,可以直接进行分析,效率高速度快。与splunk类似的工具还有ELK,ELK是ElasticSearch,Logstash,Kibana的缩写,分别提供搜索,数据接入和可视化功能,ElasticSearch是一个基于Lucene的开源搜索服务。使用splunk有如下优势:

(1)数据导入简单,splunk提供各种应用可以

直接接收不同数据,适配性强,而ELK需要filebeats或者logstash接收,接收后再传入ES,配置过程较为繁琐。如图3所示,splunk可以通过应用接收MySQL数据、Citrixnetscaler数据等等,经过配置即可导入。其中amqp_ta即为接收队列数据的应用,部分配置如图4所示。图5为导入的用户行为数据。

图3 splunk安装应用图

图4 splunk配置队列数据导入

42

理论研究·新媒体研究

图5 用户行为数据事件

导入elasticsearch的数据要通过logstash处理为符合要求的数据格式,通过配置logstash/config/logstash.conf文件中input、filter、output模块,如下图6配置input模块和图7配置output模块,最终导入elasticsearch,图8即为kibana查看导入es的json格式数据。

图6 logstash配置input模块

图7 logstash配置output模块

图8 导入elasticsearch后kibana可视化图

(2)字段识别容易,splunk支持自动抽取字段,搜索时也会动态抽取新的字段,而这是elastic不支持的。

(3)数据分析和处理上,ElasticSearch使用Search API来实现,而splunk提供较强大的SPL,语法简洁,非常易用,以查看某天的新闻阅读量排行为例,splunk的SPL语句如下:

host=mq2

| search appSouce=chinanews operateId=3 contentType=3 | stats count as pv by contentId | sort -pv

Python调用ES的脚本如下图9所示,比SPL略复杂,如果需要更复杂的计算,更会凸显SPL的优势。

图9 Python调用ES

图10 splunk分析结果图

通过图10splunk结果和图11python调用ES结果前十名对比,可以看出,分析结果稍有偏差,从kibana查看访问量最高的contentId8788405如图12所示,可以看出结果应该和splunk统计的相同均为607才对,但是聚

合运算过后,结果就不准确了。查看ES官方文档可以了解到api提供的聚合运算确实存在一定误差。因此语法简单易懂,计算准确的splunk就更有优势了。

图11 Python调用ES分析结果图

图12 kibana查看contentId8788405访问量

(4)可视化方面,ELK用的是kibana,splunk直接在平台上集成了非常方便的数据可视化和仪表盘功能,通过简单配置就可以进行可视化分析。5.4 splunk定时统计输出

Splunk的告警功能能够满足对数据进行定时统计分析的需求。如下图13所示,每天0点执行SPL语句,语句实现了统计昨日访问量前100名的正文稿件,结果数量大于0时,触发执行Python脚本mq.py,Python脚本实现将统计结果处理后放到队列。

图13 splunk定时统计分析

5.5页面展示

Java程序取上一步队列里的结果,放入mongodb数

新媒体研究·理论研究43

据库中。业务统计系统将结果展示在页面中,某天的正文访问量排行部分内容统计如下图14所示。

图14 业务统计系统部分统计结果

结语

综上,splunk为用户提供了一个存储和处理数据的平台,以最简单的方式将数据接入平台,最快的速度计算数据,让业务人员根据自身需求,利用平台上的数据解决自己实际业务中的问题。这样的方式可以在更多的行业和领域进行复制。将splunk应用于新闻App用户行为分析的实现,帮助我们很好地贴合实际业务进行分析,更深层次认识产品现状,对App的运营开发、改善优化具有指导意义。

参考文献

[1]http://www.woshipm.com/user-research/588417.html应用场景.

[2]http://www.woshipm.com/data-analysis/574447.html.[3]《第43次中国互联网络发展状况统计报告》http://www.cnnic.net.cn/hlwfzyj/hlwxzbg/hlwtjbg/201902/P020190228510533388308.pdf.

[4]http://www.kejilie.com/chanpin100/article/MzaYJz.html.[5]https://www.ichdata.com/app-user-behavior-monitoring.html.

[6]https://blog.csdn.net/kingcat666/article/details/78660535.[7] http://www.huodonghezi.com/news-764.html.[8]https://splunkbase.splunk.com/app/1812/.

[9]https://blog.51cto.com/splunkchina/1948105.

[10]https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-cardinality-aggregation.html.

[11]https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-terms-aggregation.html#_shard_size_3.

[12]http://beta.dooland.com/index.php?s=/magazine/article/id/954935.html.

(作者单位:中国新闻社)

因篇幅问题不能全部显示,请点此查看更多更全内容