CN111372130B - 一种用户在线时长统计方法、装置、电子设备及存储介质 - Google Patents
一种用户在线时长统计方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111372130B CN111372130B CN202010136198.1A CN202010136198A CN111372130B CN 111372130 B CN111372130 B CN 111372130B CN 202010136198 A CN202010136198 A CN 202010136198A CN 111372130 B CN111372130 B CN 111372130B
- Authority
- CN
- China
- Prior art keywords
- user
- time
- pull
- live broadcast
- broadcast room
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
- H04N21/44204—Monitoring of content usage, e.g. the number of times a movie has been viewed, copied or the amount which has been watched
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本公开实施例公开了一种用户在线时长统计方法、装置、电子设备及存储介质。该方法包括:按照预设的计算周期获取用户的拉取消息记录,其中,所述拉取消息记录包括用户标识、直播间标识和拉取时间;根据所述拉取消息记录确定所述用户在各个直播间的用户在线时长。通过上述技术方案可以实时统计用户观看直播的时间长度,避免通过业务代码埋点的方式统计用户在线时长准确度不高的情况。
Description
技术领域
本公开实施例涉及互联网技术,尤其涉及一种用户在线时长统计方法、装置、电子设备及存储介质。
背景技术
消息是直播互动的载体,观播用户、主播和后端系统的交互大多都需要通过消息服务完成。流经消息系统的原始数据主要有两种:
1、写入的消息数据(是对写入消息的记录),可得到消息在什么时候发、消息类型以及发送内容等信息;
2、拉取消息的拉取数据(也可称为ack数据,是对拉取消息的记录),可得到消息在什么时候被拉取以及被谁拉取等信息。
目前实现观播时长统计的方案是在业务代码中进行埋点,通过埋点确定用户进入直播间的时间以及离开直播间的时间,从而确定用户的观播时长。然而,业务代码中的埋点可能由于网络问题或用户直接强杀进程等原因而提供不准确的数据,进而,导致上述基于用户行为变化的统计方案的容错性低,无法统计出准确的用户在线时长。
发明内容
本公开提供一种用户在线时长统计方法、装置、电子设备及存储介质,可以提高用户在线时长的统计准确度。
第一方面,本公开实施例提供了一种用户在线时长统计方法,包括:
按照预设的计算周期获取用户的拉取消息记录,其中,所述拉取消息记录包括用户标识、直播间标识和拉取时间;
根据所述拉取消息记录确定所述用户在各个直播间的用户在线时长。
第二方面,本公开实施例还提供了一种用户在线时长统计装置,该装置包括:
记录获取模块,用于按照预设的计算周期获取用户的拉取消息记录,其中,所述拉取消息记录包括用户标识、直播间标识和拉取时间;
时长确定模块,用于根据所述拉取消息记录确定所述用户在各个直播间的用户在线时长。
第三方面,本公开实施例还提供了一种电子设备,该电子设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本公开实施例提供的用户在线时长统计方法。
第四方面,本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开实施例提供的用户在线时长统计方法。
本公开实施例提供一种用户在线时长统计方案,通过按照预设的计算周期获取用户的拉取消息记录,根据所述拉取消息记录确定所述用户在各个直播间的用户在线时长,可以实时统计用户观看直播的时间长度,避免通过业务代码埋点的方式统计用户在线时长准确度不高的情况。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1为本公开实施例提供的一种直播系统架构图;
图2为本公开实施例提供的一种用户在线时长统计方法的流程图;
图3为本公开实施例提供的另一种用户在线时长统计方法的流程图;
图4为本公开实施例提供的一种用户在线时长统计方法中计算增量观播数据的方法的流程图;
图5为本公开实施例提供的一种用户在线时长统计装置的结构框图;
图6为本公开实施例提供的一种电子设备的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
图1为本公开实施例提供的一种直播系统架构图。如图1所示,直播系统框架包括业务接入层110、消息服务接入层120、在线处理层130、数据存储层140和离线业务层150等。其中,业务接入层110属于外网,提供数据写入和数据拉取两个独立的通道。消息服务接入层120和在线处理层130属于内网。消息服务接入层120包括消息写入入口和消息拉取入口等。在线处理层130包括分布式消息系统和数据通道等。离线业务层150包括实时流式计算、Trace系统和SaaS平台等。数据存储层140包括Redis(Remote Dictionary Server,远程字典服务)、ES(ElasticSearch,搜索服务器)、HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)、hive(数据仓库分析系统)和MySQL(数据库)等。
对于客户端的一个写入消息,经过系统架构中的业务接入层到达内网业务的消息服务接入层中的消息写入入口(goim),然后,透传至底层的分布式消息系统SDIM,进而,写入数据存储层。对于写入消息,通常会设置写入频控,即直播间每秒写入的消息条数不应超过写入频控指示的条数。
对于客户端的一个拉取消息的请求,经过系统架构中的业务接入层到达内网业务的消息服务接入层中的消息拉取入口(proxyserver),然后,透传至底层的分布式消息系统SDIM,由分布式消息系统SDIM获取消息数据。需要说明的是,每个拉取消息的请求到达proxyserver后,在proxyserver内存储一条对应的拉取消息记录,其中,该拉取消息记录包括用户标识、终端标识、直播间标识和拉取时间等。终端是客户端所依赖的电子设备,即安装有直播相关的客户端的智能手机、平板电脑以及笔记本电脑等终端。
图2为本公开实施例提供的一种用户在线时长统计方法的流程图。该方法可以由用户在线时长统计装置来执行,该装置可由硬件和/或软件组成,并一般可集成在服务器等电子设备中。如图2所示,该方法包括:
步骤210、按照预设的计算周期获取用户的拉取消息记录。
其中,计算周期可以是获取用户的拉取消息记录的时间周期。例如,若以10s为一个计算周期,则每10秒获取当前10秒内的拉取消息记录。用户可以认为是访问直播间的人,例如,用户通过点击手机上安装的客户端进入直播间。
需要说明的是,用户可以包括在线用户和离线用户。可以将在直播间内连续浏览的用户称为在线用户,而将离开直播间(即未在任意直播间浏览)的用户称为离线用户。相应地,用户在至少一个直播间内连续观看直播的时间长度是用户在线时长。需要说明的是,用户在线时长可能是在一个直播间内连续观看直播的时间长度,也可能是分别在多个直播间内连续观看直播的时间长度。通过不同类型的数据库存储用户实时连续观播时长和用户历史观播时长。示例性的,对于在多个直播间内连续观看直播的情况,可以将用户在当前直播间的连续观播时长作为用户实时连续观播时长,而在其它直播间内的连续观播时长作为用户历史观播时长。
其中,拉取消息记录是在客户端由服务端拉取消息时,在服务端生成的拉取消息记录。例如,直播消息系统以拉取(pull)方式实现,客户端每秒拉取一次消息,在服务端产生相应地多条拉取消息记录(记为ack数据),该拉取消息记录会带上拉取消息用户的关键信息,比如用户标识、所在直播间以及拉取时间等。若以user_id表示用户标识、device_id表示终端标识(即智能手机等用户终端)、room_id表示直播间标识和fetch_time表示拉取时间,得到如表1所示的ack数据的格式表,其中,fetch_time以时间戳的形式呈现拉取时间。例如,拉取时间fetch_time=1573199595表示2019/11/8 15:53:15。
user_id | device_id | room_id | fetch_time |
1 | 1 | 100001 | 1 |
1 | 1 | 100001 | 2 |
2 | 2 | 100001 | 11 |
3 | 3 | 100002 | 13 |
示例性的,在用户在线时长统计功能开启后,服务端按照预设的计算周期获取用户的拉取消息记录,并以user_id为索引关联存储拉取消息记录。例如,假设拉取消息记录包括用户标识、直播间标识、终端标识和拉取时间,则每条拉取消息记录均是通过以user_id为索引,关联存储用户标识、终端标识、直播间标识和拉取时间得到的记录数据。
步骤220、根据所述拉取消息记录确定所述用户在各个直播间的用户在线时长。
示例性的,根据拉取消息记录确定每个计算周期内该用户在至少一个直播间内的最小拉取时间和最大拉取时间。根据各个计算周期的最小拉取时间和最大拉取时间,确定用户在各个直播间的用户在线时长。
需要说明的是,只要用户未离线,则用户对应的客户端就会按照第一周期进行周期性地拉取消息操作,而每拉取一次消息均可以在服务端生成一条对应的拉取消息记录。服务端按照第二周期(即计算周期)进行周期性的获取拉取消息记录的操作。其中,第二周期大于或等于第一周期的数值。由上述分析可知,在每个计算周期内对于每个该计算周期内的在线用户可能有至少一条拉取消息记录。此外,每个用户可能在一个计算周期内访问过2个或2个以上的直播间,因此,可能有多个直播间存在该用户的拉取消息记录,可以分别确定各个直播间内该用户的最小拉取时间和最大拉取时间。通过对拉取消息记录中的拉取时间进行排序,确定每个计算周期内在线用户在至少一个直播间内的最小拉取时间和最大拉取时间。
在一个示例性的实施方式中,根据每个用户在每个计算周期内的拉取时间和直播间标识,确定在各计算周期内每个用户在各直播间的最小拉取时间和最大拉取时间。需要说明的是,通过直播间标识和用户标识可以确定在当前计算周期内每个用户访问过的直播间。根据每个用户在所访问过的直播间的拉取时间确定每个用户在当前计算周期内的最小拉取时间和最大拉取时间,进而,可以分别确定每个用户在各个计算周期内针对各个直播间的最小拉取时间和最大拉取时间。可以将每个用户在每个直播间内的第一次拉取消息记录的拉取时间记为开始时间,将在该直播间内最后一次拉取消息记录的时间记为结束时间,可以采用如表2所示的格式存储各用户在各个直播间的统计开始时间和统计结束时间。
user_id | device_id | room_id | start_time | end_time |
1 | 100 | 100001 | 1 | 10 |
1 | 100 | 100001 | 11 | 12 |
2 | 200 | 100001 | 11 | 15 |
3 | 300 | 100002 | 13 | 15 |
在一个示例性的实施方式中,计算当前计算周期的最小拉取时间与前一个计算周期的最大拉取时间的拉取时间间隔;若根据拉取时间间隔与预设离线阈值确定所述用户连续在线,则根据所述用户在当前计算周期内的所述最大拉取时间,更新当前计算周期内所述用户在当前直播间的统计结束时间;根据所述统计结束时间和当前直播间的第一次拉取消息记录的拉取时间(即统计开始时间),计算所述用户在当前直播间内的用户在线时长。需要说明的是,若某一用户连续在线,则说明该用户一直在同一直播间内观播。对于连续在线的用户,分别记录其在各个直播间的第一次拉取消息记录的拉取时间,并采用随后地每个计算周期内的最大拉取时间更新统计结束时间,进而,根据同一直播间的统计结束时间与第一次拉取消息记录的拉取时间,实时计算用户在该直播间内的用户在线时长。
若根据所述拉取时间间隔与预设离线阈值确定所述用户离线,则根据所述用户在当前计算周期内的所述最大拉取时间和当前直播间的第一次拉取消息记录的拉取时间,计算所述用户在当前直播间内的历史在线时长。需要说明的是,若当前计算周期最后一次拉取消息记录的拉取消息之后,一定时间内未检测到该用户在任意一个直播间的拉取消息记录,且该时间长度超过离线阈值,则确定该用户已经离线,对于已离线的用户,根据其在当前计算周期内的最大拉取时间与同一直播间的第一次拉取消息记录的拉取时间,计算该用户在当前直播间内的历史在线时长。例如,将上述最大拉取时间与第一次拉取消息记录的拉取时间的差值作为该用户在该直播间的历史在线时长。其中,用户离线包括很多种情况,本公开实施例并不作具体限定。例如,用户切换直播间,则对于已退出的直播间来说,该用户已经离线,而对于新进入的直播间来说,该用户是在线用户。或者,用户退出客户端,则对于用户最后访问的直播间来说,该用户离线。
本公开实施例的技术方案,通过按照预设的计算周期获取用户的拉取消息记录,根据所述拉取消息记录确定所述用户在各个直播间的用户在线时长,可以实时统计用户观看直播的时间长度,避免通过业务代码埋点的方式统计用户在线时长准确度不高的情况。
图3为本公开实施例提供的另一种用户在线时长统计方法的流程图。如图3所示,该方法包括:
步骤310、按照预设的计算周期获取用户的拉取消息记录。
需要说明的是,获取拉取消息记录的方式与本公开其它实施例中记载的方案相同,此处不再赘述。
步骤320、根据所述拉取消息记录确定用户行为类型。
其中,用户行为类型包括首次进入直播间、非连续观看直播、连续观看直播、切换直播间和离线等。
示例性的,根据所述拉取消息记录中的用户标识、拉取时间和直播间标识确定用户行为类型。若用户标识在某一直播间内首次出现,则存在一条用户标识、拉取时间与直播间标识关联存储的拉取消息记录,基于该首次出现的拉取消息记录确定用户行为类型是首次进入直播间。若通过分析用户标识、拉取时间和直播间标识确定用户在一个设定的时间段内先在A直播间观看了几分钟,在切换至B直播间观看一段时间后,再次进入A直播间继续观看,则确定用户行为类型是非连续观看直播A。若通过分析用户标识、拉取时间和直播间标识确定用户一直在同一直播间观播,则确定用户行为类型是连续观看直播。若通过分析用户标识、拉取时间和直播间标识确定用户在设定时间段内先进入A直播间观播,又进入B直播间观播,并持续在B直播间观播,则确定用户行为类型是切换直播间。若通过分析用户标识、拉取时间和直播间标识,确定在获取最近的一次拉取消息记录之后很长时间未获取到该用户在该直播间的新的拉取消息,则确定用户离线。
步骤330、基于预先设置的用户行为类型与用户标识类型的关联关系,根据所述用户行为类型匹配对应的用户标识类型。
步骤340、根据所述拉取消息记录确定所述用户在各个直播间的用户在线时长。
步骤350、关联存储所述用户标识类型和所述用户在线时长,并发送附带所述用户标识类型的用户在线时长给订阅了在线时长统计结果的服务器。
示例性的,预先设置用户行为类型与用户标识类型的关联关系。例如,可以采用如下方式设置用户行为类型与用户标识类型之间的关联关系:
a.首次进入直播间观播,由Flink(大数据计算引擎)进行区分;增量观播时间数据表(或称为推送消息)中的用户标识类型type=1;
b.超过离线阈值,视为再次观播,非连续观播;增量观播时间数据表(或称为推送消息)中的用户标识类型type=2;
c.与之前的房间不一致,切换直播间;增量观播时间数据表(或称为推送消息)中的用户标识类型type=3;
d.同房间,增加时间;如果该房间已经观播超过1min,增量观播时间数据表(或称为推送消息)中的用户标识类型type=4;
e.如果超过30s未接收到该user_id的新的拉取消息数据,则视该用户离线,增量观播时间数据表(或称为推送消息)中的用户标识类型type=5。
图4为本公开实施例提供的一种用户在线时长统计方法中计算增量观播数据的方法的流程图。如图4所示,计算增量观播数据的方法如下:
数据收集——通过proxyserver,即客户端拉取数据的服务器,将ack数据写入kafka,这个数据是需要保留全量。
通过Flink进行基于窗口的增量数据计算。
1.以10s为一个计算周期,以每个user_id为key存储ack数据;
2.定义30s为离线阈值,如果超过30s未接收到该user_id的新的拉取消息数据,则视该用户离线;
3.找到在该计算周期内fetch_time最小和最大的ack数据,分别用start_ack和end_ack表示在该计算周期第一次和最后一次拉取消息记录,两者可能相同;
4.在Flink中记录了每个用户的在线时长信息。
5.如果该用户在Flink没有记录,则设置onlineTime为end_ack.fetch_time-start_ack.fatch_time;
6.如果该用户在Flink有记录,则设置onlineTime为零;
7.更新lastUpdate为end_ack的fetch_time,设置onlineTime为fetch_time-start_ack.fatch_time。
通过Flink进行基于非窗口的增量数据计算:
1.以user_id为key,每接收一条ack数据则更新该user_id的状态(即更新用户标识类型),可能有下面4种情况:
b.首次进入直播间观播,由Flink(大数据计算引擎)进行区分;增量观播时间数据表(或称为推送消息)中的用户标识类型type=1;
b.超过离线阈值,视为再次观播,非连续观播;增量观播时间数据表(或称为推送消息)中的用户标识类型type=2;
c.与之前的房间不一致,切换直播间;增量观播时间数据表(或称为推送消息)中的用户标识类型type=3;
d.同房间,增加时间;如果该房间已经观播超过1min,增量观播时间数据表(或称为推送消息)中的用户标识类型type=4;
2.如果超过30s未接收到该user_id的新的拉取消息数据,则视该用户离线,增量观播时间数据表(或称为推送消息)中的用户标识类型type=5。
需要说明的是,采用如表3所示的格式存储增量观播时间,其中,表示用户在房间增量的观看时长。
type | user_id | device_id | room_id | update_time | time_increment |
4 | 1 | 1 | 100001 | 1 | 10 |
需要说明的是,每次向订阅了在线时长统计结果的服务器推送消息之后,都会重置onlineTime为0,重新根据user_id计算用户在线时长。
Proxyserver获取消息拉取记录,通过Flink计算增量观播数据,增量观播数据通过consumer消费处理,将最新连续观播数据存入redis,将历史连续观播数据存储到hive,并且,将redis中的次新连续观播数据迁移至hive进行保存。其中,次新连续观播数据可以是用户切换直播间前访问的直播间的增量观播数据。例如,假如用户在A房间连续停留了一段时间,然后切换到了B房间观看直播,则在A房间的观播数据就是次新连续观播数据,B房间的观播数据就是当前的连续观播数据。
另外,web服务提供的API可以由redis实时读取用户当前在某个直播间内的连续观播数据,并发送连续观播数据给订阅了在线时长统计结果的服务器。其中,订阅了在线时长统计结果的服务器根据该连续观播数据向该用户提供其它服务。例如,观播时长超过设定阈值的用户,可以获得奖励或参加某些活动等。
全量观看时长处理:
1、消费Flink产生的数据,读取并更新redis中的数据,保证redis中保存最新全部在线用户的连续观播时间;
2、出现切换房间或者离开直播间这两种情况,则需要将之前的历史观播数据读取到kafka,进而基于连续观播时间和历史观播时间确定全量观看时长,最终落盘。
图5为本公开实施例提供的一种用户在线时长统计装置的结构框图,所述装置可以通过执行用户在线时长统计方法提高用户在线时长的统计准确度。该装置可由软件和/或硬件实现,并通常集成于服务器等电子设备中。如图5所示,该装置包括:
记录获取模块510,用于按照预设的计算周期获取用户的拉取消息记录,其中,所述拉取消息记录包括用户标识、直播间标识和拉取时间;
时长确定模块520,用于根据所述拉取消息记录确定所述用户在各个直播间的用户在线时长。
本公开实施例提供的用户在线时长统计装置为实现用户在线时长统计方法,该用户在线时长统计装置的实现原理与技术效果与用户在线时长统计方法类似,此处不再赘述。
图6为本公开实施例提供的一种电子设备的结构框图。下面参考图6,其示出了适于用来实现本公开实施例的电子设备600的结构示意图。图6示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,电子设备600可以包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储装置606加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有电子设备600操作所需的各种程序和数据。处理装置601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
通常,以下装置可以连接至I/O接口605:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置606;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置607;包括例如磁带、硬盘等的存储装置606;以及通信装置609。通信装置609可以允许电子设备600与其他设备进行无线或有线通信以交换数据。虽然图6示出了具有各种装置的电子设备600,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置606被安装,或者从ROM 602被安装。在该计算机程序被处理装置601执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:按照预设的计算周期获取用户的拉取消息记录,其中,所述拉取消息记录包括用户标识、直播间标识和拉取时间;根据所述拉取消息记录确定所述用户在各个直播间的用户在线时长。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
根据本公开的一个或多个实施例,提供了一种用户在线时长统计方法,其中,根据所述拉取消息记录确定所述用户在各个直播间的用户在线时长,包括:
根据所述拉取消息记录确定每个计算周期内所述用户在至少一个直播间内的最小拉取时间和最大拉取时间;
根据各个所述计算周期的所述最小拉取时间和最大拉取时间,确定所述用户在各个直播间的用户在线时长。
根据本公开的一个或多个实施例,提供了一种用户在线时长统计方法,其中,根据所述拉取消息记录确定每个计算周期内所述用户在至少一个直播间内的最小拉取时间和最大拉取时间,包括:
根据每个用户在每个计算周期内的拉取时间和直播间标识,确定在各计算周期内每个用户在各直播间的最小拉取时间和最大拉取时间。
根据本公开的一个或多个实施例,提供了一种用户在线时长统计方法,其中,根据各个所述计算周期的所述最小拉取时间和最大拉取时间,确定所述用户在各个直播间的用户在线时长,包括:
计算当前计算周期的最小拉取时间与前一个计算周期的最大拉取时间的拉取时间间隔;
若根据所述拉取时间间隔与预设离线阈值确定所述用户连续在线,则根据所述用户在当前计算周期内的所述最大拉取时间,更新当前计算周期内所述用户在当前直播间的统计结束时间;
根据所述统计结束时间和当前直播间的第一次拉取消息记录的拉取时间,计算所述用户在当前直播间内的用户在线时长。
根据本公开的一个或多个实施例,提供了一种用户在线时长统计方法,其中,在计算当前计算周期的最小拉取时间与前一个计算周期的最大拉取时间的拉取时间间隔之后,还包括:
若根据所述拉取时间间隔与预设离线阈值确定所述用户离线,则根据所述用户在当前计算周期内的所述最大拉取时间和当前直播间的第一次拉取消息记录的拉取时间,计算所述用户在当前直播间内的历史在线时长。
根据本公开的一个或多个实施例,提供了一种用户在线时长统计方法,其中,在按照预设的计算周期获取用户的拉取消息记录之后,还包括:
根据所述拉取消息记录确定用户行为类型,其中,用户行为类型包括首次进入直播间、非连续观看直播、连续观看直播、切换直播间和离线;
基于预先设置的用户行为类型与用户标识类型的关联关系,根据所述用户行为类型匹配对应的用户标识类型;
关联存储所述用户标识类型和所述用户在线时长,并发送附带所述用户标识类型的用户在线时长给订阅了在线时长统计结果的服务器。
根据本公开的一个或多个实施例,提供了一种用户在线时长统计方法,其中,根据所述拉取消息记录确定用户行为类型,包括:
根据所述拉取消息记录中的用户标识、拉取时间和直播间标识确定用户行为类型。
根据本公开的一个或多个实施例,提供了一种用户在线时长统计装置,其中,时长确定模块包括:
时间确定子模块,用于根据所述拉取消息记录确定每个计算周期内所述用户在至少一个直播间内的最小拉取时间和最大拉取时间;
在线时长确定子模块,用于根据各个所述计算周期的所述最小拉取时间和最大拉取时间,确定所述用户在各个直播间的用户在线时长。
根据本公开的一个或多个实施例,提供了一种用户在线时长统计装置,其中,时间确定子模块具体用于:
根据每个用户在每个计算周期内的拉取时间和直播间标识,确定在各计算周期内每个用户在各直播间的最小拉取时间和最大拉取时间。
根据本公开的一个或多个实施例,提供了一种用户在线时长统计装置,其中,在线时长确定子模块具体用于:
计算当前计算周期的最小拉取时间与前一个计算周期的最大拉取时间的拉取时间间隔;
若根据所述拉取时间间隔与预设离线阈值确定所述用户连续在线,则根据所述用户在当前计算周期内的所述最大拉取时间,更新当前计算周期内所述用户在当前直播间的统计结束时间;
根据所述统计结束时间和当前直播间的第一次拉取消息记录的拉取时间,计算所述用户在当前直播间内的用户在线时长。
根据本公开的一个或多个实施例,提供了一种用户在线时长统计装置,该装置还包括:
历史在线时长确定模块,用于在计算当前计算周期的最小拉取时间与前一个计算周期的最大拉取时间的拉取时间间隔之后,若根据所述拉取时间间隔与预设离线阈值确定所述用户离线,则根据所述用户在当前计算周期内的所述最大拉取时间和当前直播间的第一次拉取消息记录的拉取时间,计算所述用户在当前直播间内的历史在线时长。
根据本公开的一个或多个实施例,提供了一种用户在线时长统计装置,该装置还包括:
行为类型确定模块,用于在按照预设的计算周期获取用户的拉取消息记录之后,根据所述拉取消息记录确定用户行为类型,其中,用户行为类型包括首次进入直播间、非连续观看直播、连续观看直播、切换直播间和离线;
类型匹配模块,用于基于预先设置的用户行为类型与用户标识类型的关联关系,根据所述用户行为类型匹配对应的用户标识类型;
时长关联模块,用于关联存储所述用户标识类型和所述用户在线时长,并发送附带所述用户标识类型的用户在线时长给订阅了在线时长统计结果的服务器。
根据本公开的一个或多个实施例,提供了一种用户在线时长统计装置,其中,行为类型确定模块具体用于:
根据所述拉取消息记录中的用户标识、拉取时间和直播间标识确定用户行为类型。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (9)
1.一种用户在线时长统计方法,其特征在于,包括:
按照预设的计算周期获取用户的拉取消息记录,其中,所述拉取消息记录包括用户标识、直播间标识和拉取时间,所述计算周期大于拉取消息的周期;
根据所述拉取消息记录确定每个计算周期内所述用户在至少一个直播间内的最小拉取时间和最大拉取时间;根据各个所述计算周期的所述最小拉取时间和最大拉取时间,确定所述用户在各个直播间的用户在线时长。
2.根据权利要求1所述的方法,其特征在于,根据所述拉取消息记录确定每个计算周期内所述用户在至少一个直播间内的最小拉取时间和最大拉取时间,包括:
根据每个用户在每个计算周期内的拉取时间和直播间标识,确定在各计算周期内每个用户在各直播间的最小拉取时间和最大拉取时间。
3.根据权利要求1所述的方法,其特征在于,根据各个所述计算周期的所述最小拉取时间和最大拉取时间,确定所述用户在各个直播间的用户在线时长,包括:
计算当前计算周期的最小拉取时间与前一个计算周期的最大拉取时间的拉取时间间隔;
若根据所述拉取时间间隔与预设离线阈值确定所述用户连续在线,则根据所述用户在当前计算周期内的所述最大拉取时间,更新当前计算周期内所述用户在当前直播间的统计结束时间;
根据所述统计结束时间和当前直播间的第一次拉取消息记录的拉取时间,计算所述用户在当前直播间内的用户在线时长。
4.根据权利要求1所述的方法,其特征在于,根据各个所述计算周期的所述最小拉取时间和最大拉取时间,确定所述用户在各个直播间的用户在线时长,包括:
计算当前计算周期的最小拉取时间与前一个计算周期的最大拉取时间的拉取时间间隔;
若根据所述拉取时间间隔与预设离线阈值确定所述用户连续在线,则根据所述用户在当前计算周期内的所述最大拉取时间,更新当前计算周期内所述用户在当前直播间的统计结束时间;
根据所述统计结束时间和当前直播间的第一次拉取消息记录的拉取时间,计算所述用户在当前直播间内的用户在线时长。
5.根据权利要求1所述的方法,其特征在于,在按照预设的计算周期获取用户的拉取消息记录之后,还包括:
根据所述拉取消息记录确定用户行为类型,其中,用户行为类型包括首次进入直播间、非连续观看直播、连续观看直播、切换直播间和离线;
基于预先设置的用户行为类型与用户标识类型的关联关系,根据所述用户行为类型匹配对应的用户标识类型;
关联存储所述用户标识类型和所述用户在线时长,并发送附带所述用户标识类型的用户在线时长给订阅了在线时长统计结果的服务器。
6.根据权利要求5所述的方法,其特征在于,根据所述拉取消息记录确定用户行为类型,包括:
根据所述拉取消息记录中的用户标识、拉取时间和直播间标识确定用户行为类型。
7.一种用户在线时长统计装置,其特征在于,包括:
记录获取模块,用于按照预设的计算周期获取用户的拉取消息记录,其中,所述拉取消息记录包括用户标识、直播间标识和拉取时间,所述计算周期大于拉取消息的周期;
时长确定模块,用于根据所述拉取消息记录确定每个计算周期内所述用户在至少一个直播间内的最小拉取时间和最大拉取时间;根据各个所述计算周期的所述最小拉取时间和最大拉取时间,确定所述用户在各个直播间的用户在线时长。
8.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一项所述的用户在线时长统计方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一项所述的用户在线时长统计方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010136198.1A CN111372130B (zh) | 2020-03-02 | 2020-03-02 | 一种用户在线时长统计方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010136198.1A CN111372130B (zh) | 2020-03-02 | 2020-03-02 | 一种用户在线时长统计方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111372130A CN111372130A (zh) | 2020-07-03 |
CN111372130B true CN111372130B (zh) | 2021-02-02 |
Family
ID=71211653
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010136198.1A Active CN111372130B (zh) | 2020-03-02 | 2020-03-02 | 一种用户在线时长统计方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111372130B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111901617B (zh) * | 2020-07-17 | 2022-07-08 | 北京达佳互联信息技术有限公司 | 一种直播观看时长的计算方法及装置 |
CN112463864B (zh) * | 2020-11-24 | 2023-10-27 | 上海哔哩哔哩科技有限公司 | 数据处理方法及装置、数据处理系统 |
CN113068061B (zh) * | 2021-04-01 | 2022-12-30 | 天九共享网络科技集团有限公司 | 直播时长的确定方法、装置、存储介质和电子设备 |
CN114422817B (zh) * | 2022-01-17 | 2023-09-26 | 北京达佳互联信息技术有限公司 | 直播间数据处理方法、装置、电子设备、存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103139272A (zh) * | 2011-12-02 | 2013-06-05 | 北大方正集团有限公司 | 一种获取选定时间段内在线时长的方法和装置 |
CN103378978A (zh) * | 2012-04-16 | 2013-10-30 | 腾讯科技(深圳)有限公司 | 推送消息的方法和服务器 |
CN105721227A (zh) * | 2016-04-14 | 2016-06-29 | 武汉斗鱼网络科技有限公司 | 一种统计用户在线时长的方法与状态服务器及系统 |
CN106598823A (zh) * | 2016-10-19 | 2017-04-26 | 同盾科技有限公司 | 一种网络行为特征的差量计算方法和系统 |
CN106899457A (zh) * | 2017-03-17 | 2017-06-27 | 腾讯科技(深圳)有限公司 | 一种监测应用在线时长的方法及服务器 |
CN108304888A (zh) * | 2018-02-28 | 2018-07-20 | 广州虎牙信息科技有限公司 | 直播平台用户分类方法及计算机存储介质、终端 |
CN109714403A (zh) * | 2018-12-12 | 2019-05-03 | 新华三技术有限公司 | 一种确定用户上线时长的方法及装置 |
US10368241B1 (en) * | 2007-06-27 | 2019-07-30 | ENORCOM Corporation | Security for mobile and stationary electronic systems |
CN110572443A (zh) * | 2019-08-22 | 2019-12-13 | 厦门网宿有限公司 | 长连接状态更新方法、服务端、服务器及存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8769119B2 (en) * | 2012-11-06 | 2014-07-01 | SaleMove, Inc. | Method and apparatus for pushing applications to a website visitor during co-browsing |
US10242019B1 (en) * | 2014-12-19 | 2019-03-26 | Experian Information Solutions, Inc. | User behavior segmentation using latent topic detection |
US10237154B2 (en) * | 2015-12-18 | 2019-03-19 | Cellos Software Ltd. | Method for estimating time elapsed between user selection and first bit receipt from a server |
CN107104855B (zh) * | 2017-04-24 | 2019-11-01 | 国网福建省电力有限公司 | 一种用电信息采集终端在线时长、在线率的统计方法 |
US11157846B2 (en) * | 2018-08-06 | 2021-10-26 | Sociometric Solutions, Inc. | System and method for transforming communication metadata and sensor data into an objective measure of the communication distribution of an organization |
CN110362266B (zh) * | 2019-07-19 | 2020-12-18 | 北京字节跳动网络技术有限公司 | 提示信息显示方法、系统、电子设备和计算机可读介质 |
CN110493075B (zh) * | 2019-08-01 | 2021-06-25 | 京信通信系统(中国)有限公司 | 设备在线时长监测的方法、装置及系统 |
-
2020
- 2020-03-02 CN CN202010136198.1A patent/CN111372130B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10368241B1 (en) * | 2007-06-27 | 2019-07-30 | ENORCOM Corporation | Security for mobile and stationary electronic systems |
CN103139272A (zh) * | 2011-12-02 | 2013-06-05 | 北大方正集团有限公司 | 一种获取选定时间段内在线时长的方法和装置 |
CN103378978A (zh) * | 2012-04-16 | 2013-10-30 | 腾讯科技(深圳)有限公司 | 推送消息的方法和服务器 |
CN105721227A (zh) * | 2016-04-14 | 2016-06-29 | 武汉斗鱼网络科技有限公司 | 一种统计用户在线时长的方法与状态服务器及系统 |
CN106598823A (zh) * | 2016-10-19 | 2017-04-26 | 同盾科技有限公司 | 一种网络行为特征的差量计算方法和系统 |
CN106899457A (zh) * | 2017-03-17 | 2017-06-27 | 腾讯科技(深圳)有限公司 | 一种监测应用在线时长的方法及服务器 |
CN108304888A (zh) * | 2018-02-28 | 2018-07-20 | 广州虎牙信息科技有限公司 | 直播平台用户分类方法及计算机存储介质、终端 |
CN109714403A (zh) * | 2018-12-12 | 2019-05-03 | 新华三技术有限公司 | 一种确定用户上线时长的方法及装置 |
CN110572443A (zh) * | 2019-08-22 | 2019-12-13 | 厦门网宿有限公司 | 长连接状态更新方法、服务端、服务器及存储介质 |
Non-Patent Citations (1)
Title |
---|
《基于激励机制的P2P流媒体节点调度研究》;李海威;《中国优秀硕士学位论文全文数据库》;20130115;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111372130A (zh) | 2020-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111372130B (zh) | 一种用户在线时长统计方法、装置、电子设备及存储介质 | |
CN109815416B (zh) | 关联信息的推送方法、装置,电子设备及存储介质 | |
CN115081960B (zh) | 区域空心率信息生成方法、装置、电子设备和计算机介质 | |
CN111339495B (zh) | 直播间在线人数的统计方法、装置、电子设备及存储介质 | |
CN111311014B (zh) | 业务数据处理方法、装置、计算机设备和存储介质 | |
CN111163336B (zh) | 视频资源推送方法、装置、电子设备及计算机可读介质 | |
CN111209432A (zh) | 信息获取的方法、装置、电子设备及计算机可读介质 | |
CN110856004A (zh) | 消息处理方法、装置、可读存储介质及电子设备 | |
CN111464820B (zh) | 拉取消息记录的采样方法、装置、电子设备及存储介质 | |
CN113139082A (zh) | 多媒体内容处理方法、装置、设备及介质 | |
CN113159453A (zh) | 资源数据预测方法、装置、设备及存储介质 | |
CN111225255B (zh) | 目标视频推送播放方法、装置、电子设备及存储介质 | |
CN110347973B (zh) | 用于生成信息的方法和装置 | |
CN113590017A (zh) | 用于处理数据的方法、电子设备和计算机程序产品 | |
CN117035842A (zh) | 模型训练方法、业务量预测方法、装置、设备和介质 | |
CN110737691B (zh) | 用于处理访问行为数据的方法和装置 | |
CN114827750B (zh) | 视角的预测方法、装置、设备及存储介质 | |
CN110727558A (zh) | 信息提示方法、装置、存储介质及电子设备 | |
CN113220705A (zh) | 慢查询识别的方法和装置 | |
CN114257521B (zh) | 流量预测方法、装置、电子设备和存储介质 | |
CN111405323B (zh) | 拉取消息记录的采样方法、装置、电子设备及介质 | |
CN114817409A (zh) | 一种标签生成方法、装置、设备及介质 | |
CN113762581A (zh) | 活动人数预测模型生成方法、装置、电子设备和介质 | |
CN109669779B (zh) | 用于确定数据的清理路径、清理数据的方法和设备 | |
CN112131832A (zh) | 在线文档任务状态的提醒方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |