发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的推送消息的方法、服务器、客户端装置和系统。
依据本发明的一个方面,提供了一种推送消息的方法,包括:
接收客户端发送的消息在客户端侧被用户查看的时间和/或地点信息,并保存到数据库中;
根据所述数据库中的信息,确定消息在客户端侧被用户查看的期望时间和/或地点;
将指定消息发送到客户端,以及将确定的消息在客户端侧被用户查看的期望时间和/或地点通知给客户端,使得客户端在满足所述期望时间和/或地点条件时弹出所述指定消息。
可选地,该方法进一步包括:
接收客户端在满足所述期望时间和/或地点时发送的推送询问消息;
根据数据库中的最新信息,重新确定所述指定消息在该客户端侧被用户查看的期望时间和/或地点,并返回给该客户端,使得该客户端在满足所述重新确定的期望时间和/或地点时弹出所述指定消息。
可选地,所述根据所述数据库中的信息,确定消息在客户端侧被用户查看的期望时间包括:
将消息在不同客户端侧被用户查看的期望时间,在时间轴上散列开来,以避免不同客户端同一时间发送推送询问消息导致的集中访问压力。
可选地,该方法进一步包括:根据消息的类型属性,为不同类型的消息设置不同的标签;
在根据所述数据库中的信息,确定消息在客户端侧被用户查看的期望时间和/或地点之前,该方法进一步包括:提取待推送的消息的标签;确定推送消息的目标用户池;
所述根据所述数据库中的信息,确定消息在客户端侧被用户查看的期望时间和/或地点包括:对于所述目标用户池中的每个用户,根据所述数据库中的信息,确定具有不同标签的各待推送的消息在该用户的客户端侧被该用户查看的期望时间和/或地点。
可选地,当待推送的消息是包含多条消息的消息列表时,所述提取待推送的消息的标签包括:
提取所述消息列表中的每条消息的标签进行加权组合,组成初选标签集合,然后对初选标签集合中的标签按照权值进行排序,取权值最高预设个数的标签作为所述消息列表的标签。
可选地,该方法进一步包括:客户端侧安装有消息推送应用;
所述接收客户端发送的消息在客户端侧被用户查看的时间和/或地点,是接收客户端侧安装的消息推送应用发送的消息在客户端侧被用户查看的时间和/或地点信息;
使得客户端在满足所述期望时间和/或地点条件时弹出所述指定消息,是使得客户端侧安装的消息推送应用在满足所述期望时间和/或地点条件时弹出所述指定消息。
可选地,该方法进一步包括:接收客户端侧安装的消息推送应用发送的该消息推送应用被用户访问的时间和/或地点信息,并保存到数据库中;
所述对于所述目标用户池中的每个用户,根据所述数据库中的信息,确定具有不同标签的各待推送消息在该用户的客户端侧被该用户查看的期望时间和/或地点包括:
对于所述目标用户池中的每个用户,和待推送的每种标签的消息,依次按照如下顺序进行确定,
首先、如果数据库中存在该种标签的消息在客户端侧被该用户查看的时间和/或地点信息,则根据该信息确定该种标签的消息在客户端侧被该用户查看的期望时间和/或地点;
然后、如果数据库中不存在该种标签的消息在客户端侧被该用户查看的时间和/或地点信息,则根据数据库中的消息推送应用被该用户访问的时间和/或地点信息,确定该种标签的消息在客户端侧被该用户查看的期望时间和/或地点;
最后、如果数据库中也不存在消息推送应用被该用户访问的时间和/或地点信息,则综合数据库中的已有数据确定该种标签的消息在客户端侧被用户查看的热门时间和/或地点,将该热门时间和/或地点作为该种标签的消息在客户端侧被该用户查看的期望时间和/或地点。
依据本发明的另一个方面,提供了一种推送消息的方法,包括:
向服务器发送消息被用户查看的时间和/或地点信息,使得服务器将这些信息保存到数据库中,并根据数据库中的信息,确定消息被用户查看的期望时间和/或地点;
接收服务器发送的指定消息,以及服务器确定的所述消息在客户端侧被用户查看的期望时间和/或地点;
在满足所述期望时间和/或地点条件时弹出所述指定消息。
可选地,该方法进一步包括:
在满足所述期望时间和/或地点时先向服务器发送的推送询问消息;
接收服务器返回的根据数据库中的最新信息重新确定的所述指定消息在该客户端侧被用户查看的期望时间和/或地点;
在满足所述重新确定的期望时间和/或地点时再弹出所述指定消息。
可选地,该方法进一步包括:
由消息推送应用向服务器发送消息被用户查看的时间和/或地点信息;
以及,由消息推送应用在满足所述期望时间和/或地点条件时弹出所述指定消息。
可选地,该方法进一步包括:
由消息推送应用向服务器发送的该消息推送应用被用户访问的时间和/或地点信息,使得服务器将这些信息保存到数据库中,并在确定消息被用户查看的期望时间和/或地点时,也参考这些数据。
依据本发明的一个方面,提供了一种推送消息的服务器,该服务器包括:接收单元、数据库单元、确定单元和发送单元;
所述接收单元,适于接收客户端发送的消息在客户端侧被用户查看的时间和/或地点信息,并保存到数据库单元中;
所述数据库单元,适于保存消息在客户端侧被用户查看的时间和/或地点信息;
所述确定单元,适于根据所述数据库单元中的信息,确定消息在客户端侧被用户查看的期望时间和/或地点;
所述发送单元,适于将指定消息发送到客户端,以及将确定的消息在客户端侧被用户查看的期望时间和/或地点通知给客户端,使得客户端在满足所述期望时间和/或地点条件时弹出所述指定消息。
可选地,所述接收单元,进一步适于接收客户端在满足所述期望时间和/或地点时发送的推送询问消息;
所述确定单元,进一步适于在所述接收单元收到所述推送询问消息时,根据数据库单元中的最新信息,重新确定所述指定消息在该客户端侧被用户查看的期望时间和/或地点;
所述发送单元,进一步适于将重新确定所述指定消息在该客户端侧被用户查看的期望时间和/或地点发送给该客户端,使得该客户端在满足所述重新确定的期望时间和/或地点时弹出所述指定消息。
可选地,所述确定单元,适于在根据所述数据库单元中的信息,确定消息在客户端侧被用户查看的期望时间时,将消息在不同客户端侧被用户查看的期望时间,在时间轴上散列开来,以避免不同客户端同一时间发送推送询问消息导致的集中访问压力。
可选地,该服务器进一步包括:标签提取单元和预处理单元;
所述标签提取单元,适于根据消息的类型属性,为不同类型的消息设置不同的标签;
所述预处理单元,适于提取待推送的消息的标签,确定推送消息的目标用户池;
所述确定单元,适于对于所述目标用户池中的每个用户,根据所述数据库单元中的信息,确定具有不同标签的各待推送的消息在该用户的客户端侧被该用户查看的期望时间和/或地点。
可选地,所述预处理单元,适于在待推送的消息是包含多条消息的消息列表时,提取所述消息列表中的每条消息的标签进行加权组合,组成初选标签集合,然后对初选标签集合中的标签按照权值进行排序,取权值最高预设个数的标签作为所述消息列表的标签。
可选地,所述接收单元,适于接收客户端侧安装的消息推送应用发送的消息在客户端侧被用户查看的时间和/或地点信息;
所述发送单元,适于将指定消息发送到客户端,以及将确定的消息在客户端侧被用户查看的期望时间和/或地点通知给客户端,使得客户端侧安装的消息推送应用在满足所述期望时间和/或地点条件时弹出所述指定消息。
可选地,所述接收单元,进一步适于接收客户端侧安装的消息推送应用发送的该消息推送应用被用户访问的时间和/或地点信息,并保存到数据库单元中;
所述确定单元,进一步适于对于所述目标用户池中的每个用户,和待推送的每种标签的消息,依次按照如下顺序进行确定该种标签的消息在客户端侧被该用户查看的期望时间和/或地点:
首先、如果数据库单元中存在该种标签的消息在客户端侧被该用户查看的时间和/或地点信息,则根据该信息确定该种标签的消息在客户端侧被该用户查看的期望时间和/或地点;
然后、如果数据库单元中不存在该种标签的消息在客户端侧被该用户查看的时间和/或地点信息,则根据数据库单元中的消息推送应用被该用户访问的时间和/或地点信息,确定该种标签的消息在客户端侧被该用户查看的期望时间和/或地点;
最后、如果数据库单元中也不存在消息推送应用被该用户访问的时间和/或地点信息,则综合数据库单元中的已有数据确定该种标签的消息在客户端侧被用户查看的热门时间和/或地点,将该热门时间和/或地点作为该种标签的消息在客户端侧被该用户查看的期望时间和/或地点。
依据本发明的另一个方面,提供了一种推送消息的客户端装置,该客户端装置包括:发送单元、接收单元和弹出单元;
所述发送单元,适于向服务器发送消息被用户查看的时间和/或地点信息,使得服务器将这些信息保存到数据库单元中,并根据数据库单元中的信息,确定消息被用户查看的期望时间和/或地点;
所述接收单元,适于接收服务器发送的指定消息,以及服务器确定的所述消息在客户端装置侧被用户查看的期望时间和/或地点;
所述弹出单元,适于在满足所述重新确定的期望时间和/或地点时弹出所述指定消息。
可选地,所述发送单元,进一步适于在满足所述期望时间和/或地点时先向服务器发送的推送询问消息;
所述接收单元,进一步适于接收服务器返回的根据数据库单元中的最新信息重新确定的所述指定消息在该客户端装置侧被用户查看的期望时间和/或地点;
所述弹出单元,适于在满足所述重新确定的期望时间和/或地点时再弹出所述指定消息。
可选地,该客户端装置包括消息推送应用单元,该消息推送应用单元包括所述发送单元、所述接收单元和所述弹出单元。
可选地,所述发送单元,进一步适于向服务器发送的所述消息推送应用单元被用户访问的时间和/或地点信息,使得服务器将这些信息保存到数据库单元中,并在确定消息被用户查看的期望时间和/或地点时,也参考这些数据。
依据本发明的又一个方面,提供了一种推送消息的系统,该系统,包括:上述任一项所述的服务器,以及上述任一项所述的客户端装置。
综上所述,本发明这种接收客户端发送的消息在客户端侧被用户查看的时间和/或地点信息,并保存到数据库中;根据所述数据库中的信息,确定消息在客户端侧被用户查看的期望时间和/或地点;将指定消息发送到客户端,以及将确定的消息在客户端侧被用户查看的期望时间和/或地点通知给客户端,使得客户端在满足所述期望时间和/或地点条件时弹出所述指定消息的技术方案,由于通过收集用户的查看消息的时间和/或地点信息,并通过分析确定用户最可能查看推送消息的时间和/或地点,据此进行消息推送,因此最大程度地避免推送消息对用户造成的打扰。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的一种推送消息的方法的流程图。如图1所示,该方法包括:
步骤S110,接收客户端发送的消息在客户端侧被用户查看的时间和/或地点信息,并保存到数据库中;所述数据库中的信息定时更新。
在本发明的实施例中,“时间和/或地点信息”表示的是:时间信息,或者地点信息,或者时间和地点信息。“消息在客户端侧被用户查看的时间”即为用户点击并查看所推送的消息的时间。“消息在客户端侧被用户查看的地点”即为用户点击并查看所推送的消息时所处的地理位置,可以利用经纬度表示,客户端侧可以通过GPS服务获得地理位置信息。
在本发明的实施例中,客户端发送的消息在客户端侧被用户查看的时间和/或地点信息中,还包括用户的标识,用于识别一个用户。
步骤S120,根据所述数据库中的信息,确定消息在客户端侧被用户查看的期望时间和/或地点。
在本发明的实施例中,服务器端分析数据库中的信息,统计用户最有可能点击查看推送消息的时间和/或地点。例如,统计每一天的数据,计算在一天的哪个时间段用户最有可能点击查看推送的消息,以及在哪些地域用户最有可能点击查看推送的消息。还可以计算前一周中,用户在何时何地点击推送消息的次数最多,则该时该地即为消息在客户端侧被用户查看的期望时间和地点。
步骤S130,将指定消息发送到客户端,以及将确定的消息在客户端侧被用户查看的期望时间和/或地点通知给客户端,使得客户端在满足所述期望时间和/或地点条件时弹出所述指定消息。
图1所示的方法中,由于通过收集用户的查看消息的时间和/或地点信息,并通过分析确定用户最可能查看推送消息的时间和/或地点,据此进行消息推送,因此最大程度地避免推送消息对用户造成的打扰。
图1所示的方法中,服务器端根据数据库中的已有信息确定了消息推送的时间和/或地点后,只需要将消息和确定的相应时间和/或地点发送给各个客户端,客户端根据相应的时间和/或地点弹出消息即可。这样,消息和确定的时间和/或地点发送到客户端后就不能再改变。
在本发明的另一个实施例中对图1所示的方法进行了进一步的改进,客户端在根据确定的时间和/或地点弹出消息之前再次询问服务器端推送的时机。这种方式相对灵活,可以取消已发送的消息,也能修正推送的时机。该改进的方法如图2所示。
图2示出了根据本发明一个实施例的另一种推送消息的方法的流程图。参见图2,该方法包括:
步骤S210,接收客户端发送的消息在客户端侧被用户查看的时间和/或地点信息,并保存到数据库中;所述数据库中的信息定时更新。
步骤S220,根据所述数据库中的信息,确定消息在客户端侧被用户查看的期望时间和/或地点。
步骤S230,将指定消息发送到客户端,以及将确定的消息在客户端侧被用户查看的期望时间和/或地点通知给客户端。
步骤S240,接收客户端在满足所述期望时间和/或地点时发送的推送询问消息;
步骤S250,根据数据库中的最新信息,重新确定所述指定消息在该客户端侧被用户查看的期望时间和/或地点,并返回给该客户端,使得该客户端在满足所述重新确定的期望时间和/或地点时弹出所述指定消息。
在该改进的方法中,对于某个消息,确定的众多用户的推送时间相同的话,服务器端会在该时间点收到众多的推送询问消息,导致客户端集中访问服务器,造成服务器端的压力。对此,在步骤S220中,根据所述数据库中的信息,确定消息在客户端侧被用户查看的期望时间,具体为:将消息在不同客户端侧被用户查看的期望时间,在时间轴上散列开来,以避免不同客户端同一时间发送推送询问消息导致的集中访问压力。
在本发明的又一个实施例中,对图1所示方法或对图2所示方法进一步改进,具体进一步包括:
(1)根据消息的类型属性,为不同类型的消息设置不同的标签。
例如,可以根据推送消息的内容设置消息的标签,如“游戏”、“女性APP”等总结性的关键字或者关键字集合。
(2)在根据所述数据库中的信息,确定消息在客户端侧被用户查看的期望时间和/或地点之前,该方法进一步包括:提取待推送的消息的标签;确定推送消息的目标用户池;
(3)所述根据所述数据库中的信息,确定消息在客户端侧被用户查看的期望时间和/或地点包括:对于所述目标用户池中的每个用户,根据所述数据库中的信息,确定具有不同标签的各待推送的消息在该用户的客户端侧被该用户查看的期望时间和/或地点。
在本发明的一个实施例中,上述的方法进一步包括:客户端侧安装有消息推送应用;所述接收客户端发送的消息在客户端侧被用户查看的时间和/或地点,是接收客户端侧安装的消息推送应用发送的消息在客户端侧被用户查看的时间和/或地点信息;使得客户端在满足所述期望时间和/或地点条件时弹出所述指定消息,是使得客户端侧安装的消息推送应用在满足所述期望时间和/或地点条件时弹出所述指定消息。
并且进一步包括:接收客户端侧安装的消息推送应用发送的该消息推送应用被用户访问的时间和/或地点信息,并保存到数据库中。所述对于所述目标用户池中的每个用户,根据所述数据库中的信息,确定具有不同标签的各待推送消息在该用户的客户端侧被该用户查看的期望时间和/或地点包括:
对于所述目标用户池中的每个用户,和待推送的每种标签的消息,依次按照如下A、B、C顺序进行确定,
A、如果数据库中存在该种标签的消息在客户端侧被该用户查看的时间和/或地点信息,则根据该信息确定该种标签的消息在客户端侧被该用户查看的期望时间和/或地点;
B、如果数据库中不存在该种标签的消息在客户端侧被该用户查看的时间和/或地点信息,则根据数据库中的消息推送应用被该用户访问的时间和/或地点信息,确定该种标签的消息在客户端侧被该用户查看的期望时间和/或地点;
C、如果数据库中也不存在消息推送应用被该用户访问的时间和/或地点信息,则综合数据库中的已有数据确定该种标签的消息在客户端侧被用户查看的热门时间和/或地点,将该热门时间和/或地点作为该种标签的消息在客户端侧被该用户查看的期望时间和/或地点。
下面以消息推送应用具体为手机助手为例,对上述方案进行说明,包括如下部分:
第一、待推送消息的标签提取
提取待推送消息的标签作为消息类型的标志。有两种提取方式,一种由人工指定,一种由自动算法计算出来。特征较为统一的情况由人工指定,比如推送女生喜欢的app,指定“女生”为消息标签。当待推送的消息是包含多条消息的消息列表时,提取所述消息列表中的每条消息的标签进行加权组合,组成初选标签集合,然后对初选标签集合中的标签按照权值进行排序,取权值最高预设个数的标签作为所述消息列表的标签。即推送消息不是统一的一种类型的app的时需要自动提取,如推送一个个性化列表,代表用户可能喜欢的各种类型app,则取每个被推送app中所有标签进行加权组合,组成初选标签集合,然后再按照计算的最终权值排序,取最高的5个标签作为此次推送的标签。解释一下每个app中的标签数据,这个数据是已经存在的,并且有相应的权值。在本发明的一个实施例中标签的权值是由手机助手详情页标签选项的点击数据计算出来。在本发明的其他实施例中也可以考虑其他因素计算权值。
第二、推送用户的选取
可以根据需求选择被推送的用户池。一般为了减少计算成本或者采取人工策略,设置一些用户的限制范围,如限制为活跃用户,多长时间间隔打开过手机助手的用户,在某个省份下的用户等等,通过用户的历史行为数据我们可以得到类似上面的一些统计结果。此部分计算结果是一个等待被推送的用户池。
第三、查询数据库
利用以上两个部分的数据(用户,消息标签)可以在这个数据库中查询出每个用户适合推送的时间和地域范围。具体可以根据如上所述的A、B、C顺序进行确定。
例如,在本发明的一个实施例中,数据库会每天更新一次、用户数据会通过网页和客户端打点的方式搜集到服务器集群中,服务端会计算三种数据:一种是在知道某个用户和某个标签的条件下,查询什么时间和地点会点击消息,第二种是在知道某个用户的条件下,查询什么时间和地点会操作手机助手,第三种是哪些地点范围和时间段用户最可能点击消息和操作手机助手。得到如上数据之后,在得到用户池,以及待推送的消息标签之后,可以在数据库中查询并综合得到每个用户的推送时间和地点范围。大概的综合选择算法为,首先利用第一种数据获取常用时间和地点,如果获取不到,则利用第二种,如果再获取不到数据则用第三种数据。如此依据重要性依次取得用户最可能点击消息的时机,则最小化了打扰用户的影响程度。
当推送的消息主要是推荐新的APP(应用)时,在本发明的实施例中还给出了如下选取推荐的APP的方案。具体参见图3。
图3示出了根据本发明一个实施例的选取推荐的APP的系统的实现架构图。如3所示,该APP推荐系统主要分为五层结构:
产品展现层:即用户在手机助手里看到的所有推荐页面;
服务端前端接口:用于将推荐接口返回的数据重新封装成前端能展示的形式;
推荐数据接口:用于取得不同推荐引擎的数据,拼装成统一的推荐数据;
推荐引擎:根据不同的算法,不同的算法推荐出数据;
数据层:应用的原始数据,包括应用名称、应用标签、应用分类等;用户的打点数据,包括用户浏览的行为、用户下载的行为。
打点算法:打点是指将用户的一些特定的行为上报服务器,以进行用户行为分析,目前主要类型的打点为:
1.用户浏览行为打点,将用户当前正在浏览的app的id发送到服务器保存;
2.用户下载行为打点,将用户正在下载的app的id发送到服务器保存,同时需要存储此app是根据什么app推荐出来的。
打点日志抽取:
本算法中涉及的打点日志抽取是指通过hadoop平均的mapreduce技术,对前10天的打点日志进行分析和处理,处理方法如下:
1.逐条分析打点日志,若此日志为推荐算法的打点日志,则抽取日志中的浏览app id或下载app id。同时需要抽取哪个app推荐了此app导致被浏览或下载。
2.统计每个被展示过或被下载过的app的展示次数和下载次数,每次行为都是一个app id与app id的对,同时还有展示次数和下载次数的属性。
3.根据展示次数和下载次数,可以得到转化率。根据转化率可以对这些app id与app id对排序,最后就成为本算法的输入。
算法细节:
A)从每天的打点日志(hadoop)里取出基于所有推荐算法的下载和展示行为。基于此行为,可以获得某个app推荐另外的app的下载转化率。
B)选择近10天的下载转化率数据,加权求和得到10天的下载转化率。通过此转化率,得到近10天内,某个特定的app推荐哪些其他的app的转化率较高。
C)推荐与某个app相关联的app的时候,就选择统计数据中转化率高的排在前面,转化率低的排在后面。
D)此算法在进行app唯一推荐的时候,可以在转化率大于0的app中根据转化率作为权重选择待推荐的app。
以上是服务器端的消息推送流程,下面介绍客户端侧的消息推送流程。
图4示出了根据本发明一个实施例的又一种推送消息的方法的流程图。参见图4,该方法包括:
步骤S410,向服务器发送消息被用户查看的时间和/或地点信息,使得服务器将这些信息保存到数据库中,并根据数据库中的信息,确定消息被用户查看的期望时间和/或地点;
步骤S420,接收服务器发送的指定消息,以及服务器确定的所述消息在客户端侧被用户查看的期望时间和/或地点;
步骤S430,在满足所述期望时间和/或地点条件时弹出所述指定消息。
在本发明的一个实施例中,图4所示的方法进一步包括:在满足所述期望时间和/或地点时先向服务器发送的推送询问消息;接收服务器返回的根据数据库中的最新信息重新确定的所述指定消息在该客户端侧被用户查看的期望时间和/或地点;在满足所述重新确定的期望时间和/或地点时再弹出所述指定消息。
在本发明的一个实施例中,图4所示的方法进一步包括:由消息推送应用向服务器发送消息被用户查看的时间和/或地点信息;以及,由消息推送应用在满足所述期望时间和/或地点条件时弹出所述指定消息。
在本发明的一个实施例中,图4所示的方法进一步包括:由消息推送应用向服务器发送的该消息推送应用被用户访问的时间和/或地点信息,使得服务器将这些信息保存到数据库中,并在确定消息被用户查看的期望时间和/或地点时,也参考这些数据,具体参见图2所示实施例以及相关描述。
图5示出了根据本发明一个实施例的一种推送消息的服务器的结构框图。如图5所示,该服务器500包括:接收单元501、数据库单元502、确定单元503和发送单元504。
接收单元501,适于接收客户端发送的消息在客户端侧被用户查看的时间和/或地点信息,并保存到数据库单元502中。
数据库单元502,适于保存消息在客户端侧被用户查看的时间和/或地点信息,这些信息被定时更新。
确定单元503,适于根据所述数据库单元502中的信息,确定消息在客户端侧被用户查看的期望时间和/或地点。
发送单元504,适于将指定消息发送到客户端,以及将确定的消息在客户端侧被用户查看的期望时间和/或地点通知给客户端,使得客户端在满足所述期望时间和/或地点条件时弹出所述指定消息。
在本发明的一个实施例中,
所述接收单元501,进一步适于接收客户端在满足所述期望时间和/或地点时发送的推送询问消息;
所述确定单元503,进一步适于在所述接收单元收到所述推送询问消息时,根据数据库单元502中的最新信息,重新确定所述指定消息在该客户端侧被用户查看的期望时间和/或地点;
所述发送单元504,进一步适于将重新确定所述指定消息在该客户端侧被用户查看的期望时间和/或地点发送给该客户端,使得该客户端在满足所述重新确定的期望时间和/或地点时弹出所述指定消息。
在本发明的一个实施例中,所述确定单元503,适于在根据所述数据库单元502中的信息,确定消息在客户端侧被用户查看的期望时间时,将消息在不同客户端侧被用户查看的期望时间,在时间轴上散列开来,以避免不同客户端同一时间发送推送询问消息导致的集中访问压力。
图6示出了根据本发明又一个实施例的一种推送消息的服务器的结构框图。如图6所示,该服务器600包括:接收单元601、数据库单元602、确定单元603和发送单元604,这些单元的与图5中的接收单元501、数据库单元502、确定单元503和发送单元504一一对应相同。此外,该服务器600还包括:标签提取单元605和预处理单元606;
所述标签提取单元605,适于根据消息的类型属性,为不同类型的消息设置不同的标签;
所述预处理单元606,适于提取待推送的消息的标签,确定推送消息的目标用户池;
所述确定单元603,适于对于所述目标用户池中的每个用户,根据所述数据库单元602中的信息,确定具有不同标签的各待推送的消息在该用户的客户端侧被该用户查看的期望时间和/或地点。
在本发明的一个实施例中,所述接收单元601,适于接收客户端侧安装的消息推送应用发送的消息在客户端侧被用户查看的时间和/或地点信息。所述发送单元604,适于将指定消息发送到客户端,以及将确定的消息在客户端侧被用户查看的期望时间和/或地点通知给客户端,使得客户端侧安装的消息推送应用在满足所述期望时间和/或地点条件时弹出所述指定消息。
在本发明的一个实施例中,所述接收单元601,进一步适于接收客户端侧安装的消息推送应用发送的该消息推送应用被用户访问的时间和/或地点信息,并保存到数据库单元中。所述确定单元604,进一步适于对于所述目标用户池中的每个用户,和待推送的每种标签的消息,依次按照如下顺序进行确定该种标签的消息在客户端侧被该用户查看的期望时间和/或地点:
首先、如果数据库单元602中存在该种标签的消息在客户端侧被该用户查看的时间和/或地点信息,则根据该信息确定该种标签的消息在客户端侧被该用户查看的期望时间和/或地点;
然后、如果数据库单元602中不存在该种标签的消息在客户端侧被该用户查看的时间和/或地点信息,则根据数据库中的消息推送应用被该用户访问的时间和/或地点信息,确定该种标签的消息在客户端侧被该用户查看的期望时间和/或地点;
最后、如果数据库单元602中也不存在消息推送应用被该用户访问的时间和/或地点信息,则综合数据库中的已有数据确定该种标签的消息在客户端侧被用户查看的热门时间和/或地点,将该热门时间和/或地点作为该种标签的消息在客户端侧被该用户查看的期望时间和/或地点。
图7示出了根据本发明一个实施例一种推送消息的客户端装置的结构框图。如图7所示,该推送消息的客户端装置700包括:发送单元701、接收单元702和弹出单元703。
所述发送单元701,适于向服务器发送消息被用户查看的时间和/或地点信息,使得服务器将这些信息保存到数据库单元中,并根据数据库单元中的信息,确定消息被用户查看的期望时间和/或地点;
所述接收单元702,适于接收服务器发送的指定消息,以及服务器确定的所述消息在客户端装置侧被用户查看的期望时间和/或地点;
所述弹出单元703,适于在满足所述重新确定的期望时间和/或地点时弹出所述指定消息。
在本发明的一个实施例中,所述发送单元701,进一步适于在满足所述期望时间和/或地点时先向服务器发送的推送询问消息。所述接收单元702,进一步适于接收服务器返回的根据数据库中的最新信息重新确定的所述指定消息在该客户端装置侧被用户查看的期望时间和/或地点。所述弹出单元703,适于在满足所述重新确定的期望时间和/或地点时再弹出所述指定消息。
在本发明的一个实施例中,该推送消息的客户端装置700包括消息推送应用单元710,该消息推送应用单元710包括所述发送单元701、所述接收单元702和所述弹出单元703。
所述发送单元701,进一步适于向服务器发送的所述消息推送应用单元被用户访问的时间和/或地点信息,使得服务器将这些信息保存到数据库单元中,并在确定消息被用户查看的期望时间和/或地点时,也参考这些数据。
图8示出了根据本发明一个实施例一种推送消息的系统的示意图。如图8所示,该系统,包括:服务器810,多个客户端装置820。
服务器820可以是图5中的推送消息的服务器500,也可以是图6中的推送消息的服务器600。客户端装置820可以是图7中的推送消息的客户端装置700。
综上所述,本发明这种接收客户端发送的消息在客户端侧被用户查看的时间和/或地点信息,并保存到数据库中;根据所述数据库中的信息,确定消息在客户端侧被用户查看的期望时间和/或地点;将指定消息发送到客户端,以及将确定的消息在客户端侧被用户查看的期望时间和/或地点通知给客户端,使得客户端在满足所述期望时间和/或地点条件时弹出所述指定消息的技术方案,由于通过收集用户的查看消息的时间和/或地点信息,并通过分析确定用户最可能查看推送消息的时间和/或地点,据此进行消息推送,因此最大程度地避免推送消息对用户造成的打扰。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的推送消息的服务器、客户端装置和系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了A1、一种推送消息的方法,其中,包括:接收客户端发送的消息在客户端侧被用户查看的时间和/或地点信息,并保存到数据库中;根据所述数据库中的信息,确定消息在客户端侧被用户查看的期望时间和/或地点;将指定消息发送到客户端,以及将确定的消息在客户端侧被用户查看的期望时间和/或地点通知给客户端,使得客户端在满足所述期望时间和/或地点条件时弹出所述指定消息。
A2、如A1所述的方法,其中,该方法进一步包括:接收客户端在满足所述期望时间和/或地点时发送的推送询问消息;根据数据库中的最新信息,重新确定所述指定消息在该客户端侧被用户查看的期望时间和/或地点,并返回给该客户端,使得该客户端在满足所述重新确定的期望时间和/或地点时弹出所述指定消息。
A3、如A2所述的方法,其中,所述根据所述数据库中的信息,确定消息在客户端侧被用户查看的期望时间包括:将消息在不同客户端侧被用户查看的期望时间,在时间轴上散列开来,以避免不同客户端同一时间发送推送询问消息导致的集中访问压力。
A4、如A1-A3中任一项所述的方法,其中,该方法进一步包括:根据消息的类型属性,为不同类型的消息设置不同的标签;
在根据所述数据库中的信息,确定消息在客户端侧被用户查看的期望时间和/或地点之前,该方法进一步包括:提取待推送的消息的标签;确定推送消息的目标用户池;
所述根据所述数据库中的信息,确定消息在客户端侧被用户查看的期望时间和/或地点包括:对于所述目标用户池中的每个用户,根据所述数据库中的信息,确定具有不同标签的各待推送的消息在该用户的客户端侧被该用户查看的期望时间和/或地点。
A5、如A4所述的方法,其中,当待推送的消息是包含多条消息的消息列表时,所述提取待推送的消息的标签包括:提取所述消息列表中的每条消息的标签进行加权组合,组成初选标签集合,然后对初选标签集合中的标签按照权值进行排序,取权值最高预设个数的标签作为所述消息列表的标签。
A6、如A4所述的方法,其中,该方法进一步包括:客户端侧安装有消息推送应用;
所述接收客户端发送的消息在客户端侧被用户查看的时间和/或地点,是接收客户端侧安装的消息推送应用发送的消息在客户端侧被用户查看的时间和/或地点信息;
使得客户端在满足所述期望时间和/或地点条件时弹出所述指定消息,是使得客户端侧安装的消息推送应用在满足所述期望时间和/或地点条件时弹出所述指定消息。
A7、如A6所述的方法,其中,该方法进一步包括:接收客户端侧安装的消息推送应用发送的该消息推送应用被用户访问的时间和/或地点信息,并保存到数据库中;
所述对于所述目标用户池中的每个用户,根据所述数据库中的信息,确定具有不同标签的各待推送消息在该用户的客户端侧被该用户查看的期望时间和/或地点包括:
对于所述目标用户池中的每个用户,和待推送的每种标签的消息,依次按照如下顺序进行确定,
首先、如果数据库中存在该种标签的消息在客户端侧被该用户查看的时间和/或地点信息,则根据该信息确定该种标签的消息在客户端侧被该用户查看的期望时间和/或地点;
然后、如果数据库中不存在该种标签的消息在客户端侧被该用户查看的时间和/或地点信息,则根据数据库中的消息推送应用被该用户访问的时间和/或地点信息,确定该种标签的消息在客户端侧被该用户查看的期望时间和/或地点;
最后、如果数据库中也不存在消息推送应用被该用户访问的时间和/或地点信息,则综合数据库中的已有数据确定该种标签的消息在客户端侧被用户查看的热门时间和/或地点,将该热门时间和/或地点作为该种标签的消息在客户端侧被该用户查看的期望时间和/或地点。
本发明还公开了B8、一种推送消息的方法,其中,包括:
向服务器发送消息被用户查看的时间和/或地点信息,使得服务器将这些信息保存到数据库中,并根据数据库中的信息,确定消息被用户查看的期望时间和/或地点;接收服务器发送的指定消息,以及服务器确定的所述消息在客户端侧被用户查看的期望时间和/或地点;在满足所述期望时间和/或地点条件时弹出所述指定消息。
B9、如B8所述的方法,其中,该方法进一步包括:在满足所述期望时间和/或地点时先向服务器发送的推送询问消息;接收服务器返回的根据数据库中的最新信息重新确定的所述指定消息在该客户端侧被用户查看的期望时间和/或地点;在满足所述重新确定的期望时间和/或地点时再弹出所述指定消息。
B10、如B8或B9所述的方法,其中,该方法进一步包括:由消息推送应用向服务器发送消息被用户查看的时间和/或地点信息;以及,由消息推送应用在满足所述期望时间和/或地点条件时弹出所述指定消息。
B11、如B10所述的方法,其中,该方法进一步包括:
由消息推送应用向服务器发送的该消息推送应用被用户访问的时间和/或地点信息,使得服务器将这些信息保存到数据库中,并在确定消息被用户查看的期望时间和/或地点时,也参考这些数据。
本发明还公开了C12、一种推送消息的服务器,其中,该服务器包括:接收单元、数据库单元、确定单元和发送单元;
所述接收单元,适于接收客户端发送的消息在客户端侧被用户查看的时间和/或地点信息,并保存到数据库单元中;
所述数据库单元,适于保存消息在客户端侧被用户查看的时间和/或地点信息;
所述确定单元,适于根据所述数据库单元中的信息,确定消息在客户端侧被用户查看的期望时间和/或地点;
所述发送单元,适于将指定消息发送到客户端,以及将确定的消息在客户端侧被用户查看的期望时间和/或地点通知给客户端,使得客户端在满足所述期望时间和/或地点条件时弹出所述指定消息。
C13、如C12所述的服务器,其中,
所述接收单元,进一步适于接收客户端在满足所述期望时间和/或地点时发送的推送询问消息;
所述确定单元,进一步适于在所述接收单元收到所述推送询问消息时,根据数据库单元中的最新信息,重新确定所述指定消息在该客户端侧被用户查看的期望时间和/或地点;
所述发送单元,进一步适于将重新确定所述指定消息在该客户端侧被用户查看的期望时间和/或地点发送给该客户端,使得该客户端在满足所述重新确定的期望时间和/或地点时弹出所述指定消息。
C14、如C13所述的服务器,其中,
所述确定单元,适于在根据所述数据库单元中的信息,确定消息在客户端侧被用户查看的期望时间时,将消息在不同客户端侧被用户查看的期望时间,在时间轴上散列开来,以避免不同客户端同一时间发送推送询问消息导致的集中访问压力。
C15、如C12-C14中任一项所述的服务器,其中,该服务器进一步包括:标签提取单元和预处理单元;
所述标签提取单元,适于根据消息的类型属性,为不同类型的消息设置不同的标签;
所述预处理单元,适于提取待推送的消息的标签,确定推送消息的目标用户池;
所述确定单元,适于对于所述目标用户池中的每个用户,根据所述数据库单元中的信息,确定具有不同标签的各待推送的消息在该用户的客户端侧被该用户查看的期望时间和/或地点。
C16、如C15所述的服务器,其中,
所述预处理单元,适于在待推送的消息是包含多条消息的消息列表时,提取所述消息列表中的每条消息的标签进行加权组合,组成初选标签集合,然后对初选标签集合中的标签按照权值进行排序,取权值最高预设个数的标签作为所述消息列表的标签。
C17、如C15所述的服务器,其中,
所述接收单元,适于接收客户端侧安装的消息推送应用发送的消息在客户端侧被用户查看的时间和/或地点信息;
所述发送单元,适于将指定消息发送到客户端,以及将确定的消息在客户端侧被用户查看的期望时间和/或地点通知给客户端,使得客户端侧安装的消息推送应用在满足所述期望时间和/或地点条件时弹出所述指定消息。
C18、如C17所述的服务器,其中,
所述接收单元,进一步适于接收客户端侧安装的消息推送应用发送的该消息推送应用被用户访问的时间和/或地点信息,并保存到数据库单元中;
所述确定单元,进一步适于对于所述目标用户池中的每个用户,和待推送的每种标签的消息,依次按照如下顺序进行确定该种标签的消息在客户端侧被该用户查看的期望时间和/或地点:
首先、如果数据库单元中存在该种标签的消息在客户端侧被该用户查看的时间和/或地点信息,则根据该信息确定该种标签的消息在客户端侧被该用户查看的期望时间和/或地点;
然后、如果数据库单元中不存在该种标签的消息在客户端侧被该用户查看的时间和/或地点信息,则根据数据库单元中的消息推送应用被该用户访问的时间和/或地点信息,确定该种标签的消息在客户端侧被该用户查看的期望时间和/或地点;
最后、如果数据库单元中也不存在消息推送应用被该用户访问的时间和/或地点信息,则综合数据库单元中的已有数据确定该种标签的消息在客户端侧被用户查看的热门时间和/或地点,将该热门时间和/或地点作为该种标签的消息在客户端侧被该用户查看的期望时间和/或地点。
本发明还公开了D19、一种推送消息的客户端装置,其中,该客户端装置包括:发送单元、接收单元和弹出单元;
所述发送单元,适于向服务器发送消息被用户查看的时间和/或地点信息,使得服务器将这些信息保存到数据库单元中,并根据数据库单元中的信息,确定消息被用户查看的期望时间和/或地点;
所述接收单元,适于接收服务器发送的指定消息,以及服务器确定的所述消息在客户端装置侧被用户查看的期望时间和/或地点;
所述弹出单元,适于在满足所述重新确定的期望时间和/或地点时弹出所述指定消息。
D20、如D19所述客户端装置,其中,
所述发送单元,进一步适于在满足所述期望时间和/或地点时先向服务器发送的推送询问消息;
所述接收单元,进一步适于接收服务器返回的根据数据库单元中的最新信息重新确定的所述指定消息在该客户端装置侧被用户查看的期望时间和/或地点;
所述弹出单元,适于在满足所述重新确定的期望时间和/或地点时再弹出所述指定消息。
D21、如D19或D20所述的客户端装置,其中,该客户端装置包括消息推送应用单元,该消息推送应用单元包括所述发送单元、所述接收单元和所述弹出单元。
D22、如D21所述的客户端装置,其中,
所述发送单元,进一步适于向服务器发送的所述消息推送应用单元被用户访问的时间和/或地点信息,使得服务器将这些信息保存到数据库单元中,并在确定消息被用户查看的期望时间和/或地点时,也参考这些数据。
本发明还公开了E23、一种推送消息的系统,其中,该系统,包括:如C12-C18中任一项所述的服务器,以及多个如D19-D22中任一项所述的客户端装置。