地理位置的确定方法及装置、信息推送方法及装置与流程

文档序号:14942896发布日期:2018-07-13 21:30阅读:280来源:国知局

本发明涉及网络技术领域,尤其涉及一种地理位置的确定方法及装置、信息推送方法及装置。



背景技术:

在当前移动互联网的高速发展下,为了更加精准的投放广告或者推送营销信息,需要实时的感知用户目前所在的位置。因此,要实现广告或营销信息的精准推送,就需要实时采集用户的地理位置信息,目前相关技术中用户地理位置信息的采集手段主要是通过在用户的移动终端上安装应用(app),通过该应用定时上报用户的地理位置信息。

目前,相关技术中,基于用户的地理位置信息向用户推送信息的解决方案实现过程如下:

首先,通过用户的移动终端上的app定期汇报用户的地理位置信息至应用服务器(appserver);

然后,应用服务器会将用户的地理位置信息通过分布式消息队列缓存;

第三步,信息推送系统中基于位置的服务(lbs,locationbasedservice)引擎实时从分布式消息队列里拉取用户的地理位置信息,在内存中构建地理位置索引;

第四步,当用户在电脑或者移动终端上浏览网页或者打开app时触发信息推送请求的发送,浏览器或app发出所述信息推送请求;

第五步,信息推送系统中的定位引擎接收所述信息推送请求之后,通过lbs引擎查询所述用户地理位置信息相符合的预定规则集;

第六步,信息推送系统中的定位引擎按照所述预定规则集对应的推送策略将信息(如广告、促销信息等)推送至第一用户电脑的浏览器或移动终端上的app,浏览器上的网页或移动终端上的app向第一用户展示所述信息。

相关技术的上述方案存在如下缺陷:

1)lbs引擎严格依赖于移动终端侧的地理位置信息采集,如果移动终端侧屏蔽掉地理位置信息上报的功能,将直接导致lbs引擎无法获取到用户的地理位置信息,从而影响信息的推送;

2)用户使用pc浏览网页的场景下,由于没有对应的地理位置信息汇报机制,因此无法获取到用户的地理位置信息,从而导致此类场景下无法根据用户的地理位置信息推送信息;

3)用户地理位置信息存在一定的时效性,如果移动终端侧上报的地理位置信息已经过期,那么该地理位置可靠性很差,会验证影响信息推送的精准度和用户体验;

综上可知,相关技术中完全依赖于移动终端侧实时上报的地理位置信息来确定用户当前的地理位置,此方式应用场景受限,并且得到的结果可靠性差、精确度不高、覆盖率低,基于移动终端实时上报的地理位置信息向用户推送信息,不仅信息推送的应用场景受限,精准度不高,而且用户体验也不高。



技术实现要素:

本申请提供一种地理位置的确定方法及装置、信息推送方法及装置,能够提高用户的地理位置信息覆盖率、精确度及可靠性,并提高信息推送的精准度。

本申请采用如下技术方案:

一种地理位置的确定方法,包括:

基于用户标识相关联的至少一种用户历史数据生成地理位置索引,所述地理位置索引包含用于确定地理位置的第一信息、所述第一信息与所述用户标识的映射关系;

接收携带用户标识的定位请求;

查询对应所述定位请求中用户标识的所述地理位置索引;

根据所述查询到的地理位置索引,向所述定位请求的请求方提供所述第一信息。

其中,所述基于用户标识相关联的至少一种用户历史数据生成地理位置索引,包括:

基于用户标识相关联的至少一种用户历史数据,获取所述第一信息;

利用所述第一信息及其对应的用户标识生成所述地理位置索引。

其中,所述利用所述第一信息及其对应的用户标识生成所述地理位置索引,包括:过滤所述获取到的第一信息,利用过滤后的所述第一信息及其对应的用户标识生成所述地理位置索引。

其中,所述基于用户标识相关联的至少一种用户历史数据生成地理位置索引,还包括:配置所述第一信息的优先级;

所述根据所述查询到的地理位置索引,向所述定位请求的请求方提供地理位置信息,包括:

根据所述查询到的地理位置索引中第一信息的优先级,从所述查询到的地理位置索引中提取所述第一信息并提供给所述定位请求的请求方。

其中,所述配置所述第一信息的优先级,包括如下之一或两项之组合:

所述地理位置索引中包含多条所述第一信息时,按照预定规则将所述地理位置索引中的多条所述第一信息排序,根据所述排序的结果配置所述第一信息的优先级;

所述地理位置索引中包含一条所述第一信息时,配置所述第一信息的优先级为预定值。

其中,所述第一信息为如下之一:收货地址信息、全球卫星定位gps信息、对应ip地址的位置信息;

所述至少一种用户历史数据为如下之一或其任意组合:交易数据、应用数据、浏览数据。

其中,所述生成地理位置索引,包括:

从对应同一用户标识的交易数据中提取收货地址信息,并以所述用户标识对应的第一标识为键、所述过滤后的收货地址信息为值形成所述地理位置索引。

其中,所述生成地理位置索引,还包括:

在所述收货地址信息为多条时,根据所述收货地址信息的更新时间、地理区域属性、使用次数中之一或多项,配置所述收货地址信息的优先级;

在所述收货地址信息为一条时,以第一预定值配置所述收货地址信息的优先级。

其中,所述生成地理位置索引之前,还包括:建立ip地址信息库,所述ip地址信息库中包含ip地址、位置信息及其映射关系;

所述生成地理位置索引,包括:基于对应同一用户标识的浏览数据中的ip地址、以及各所述ip地址的访问时间信息,从所述ip地址信息库中查询对应所述ip地址的位置信息,并以所述用户标识对应的第一标识、访问时间信息、ip地址为键、所述至少一条ip地址对应的位置信息为值形成所述地理位置索引。

其中,所述生成所述地理位置索引,还包括:

在所述地理位置索引中包含两条或多条所述对应所述ip地址的位置信息时,按照各所述ip地址的访问时长将所述位置信息排序,按照所述排序的结果配置所述位置信息的优先级;

在所述地理位置索引中包含一条对应所述ip地址的位置信息时,以第二预定值配置对应所述ip地址的位置信息的优先级。

其中,所述生成地理位置索引,包括:

基于对应同一用户标识的应用数据中的gps信息以及访问时间信息,以所述用户标识对应的第一标识、访问时间信息为键、所述gps信息为值形成所述地理位置索引。

其中,所述生成所述地理位置索引,还包括:

在所述地理位置索引中包含两条或多条所述gps信息时,按照所述gps信息对应的访问时长对所述gps信息排序,按照所述排序的结果配置所述gps信息的优先级;

在所述地理位置索引中包含一条所述gps信息时,以第三预定值配置所述gps信息的优先级。

其中,所述生成所述地理位置索引,还包括:

识别浏览数据、交易数据或应用数据中所述用户标识之间的关联性;

基于相关联的所述用户标识生成所述第一标识,所述第一标识包含第一部分和第二部分,所述第一部分用于指示所述用户标识类型,所述第二部分基于相关联的所述用户标识的内容以预定义映射算法得到。

其中,还包括:基于相关联的同类型所述用户标识生成的第一标识进行去重处理。

一种信息推送方法,包括:

基于来自用户终端的触发请求,向定位服务器发送定位请求,所述触发请求携带用户标识,所述定位请求携带所述用户标识;

接收来自所述定位服务器的第一信息,所述第一信息用于确定地理位置;

查询所述第一信息相匹配的推送信息,并向所述用户终端提供所述推送信息。

其中,所述查询所述第一信息相匹配的推送信息,包括:

向推送服务器发送信息推送请求,所述信息推送请求携带所述第一信息;

接收所述推送服务器返回的与所述第一信息相匹配的推送信息。

其中,所述向定位服务器发送定位请求之前,还包括:验证是否有接收到来自所述用户终端的定位数据以及所述定位数据的时效性是否满足预定条件;

所述向定位服务器发送定位请求,包括:在未接收到来自所述用户终端的定位数据或所述定位数据的时效性不满足所述预定条件时,向定位服务器发送定位请求。

其中,所述验证是否有接收到来自所述用户终端的定位数据以及所述定位数据的时效性是否满足预定条件之后,还包括:

在接收到所述定位数据且所述定位数据满足所述预定条件时,查询所述定位数据中全球卫星定位gps信息相匹配的推送信息,并向所述用户终端提供所述推送信息。

其中,所述预定条件为上报时间距离当前时间的时长不超出预定时长。

一种用户地理位置的确定装置,包括:

生成模块,用于基于用户标识相关联的至少一种用户历史数据生成地理位置索引,所述地理位置索引包含用于确定地理位置的第一信息、所述第一信息与所述用户标识的映射关系;

第一接收模块,用于接收携带用户标识的定位请求;

查询模块,用于查询对应所述定位请求中用户标识的所述地理位置索引;

第一提供模块,用于根据所述查询到的地理位置索引,向所述定位请求的请求方提供所述第一信息。

一种用户地理位置的确定装置,包括处理器和存储器,所述存储器存储有计算机可执行指令,所述计算机可执行指令被所述处理器执行时实现如下方法:

基于用户标识相关联的至少一种用户历史数据生成地理位置索引,所述地理位置索引包含用于确定地理位置的第一信息、所述第一信息与所述用户标识的映射关系;

接收携带用户标识的定位请求;

查询对应所述定位请求中用户标识的所述地理位置索引;

根据所述查询到的地理位置索引,向所述定位请求的请求方提供所述第一信息。

一种信息推送装置,包括:

发送模块,用于基于来自用户终端的触发请求,向定位服务器发送定位请求,所述触发请求携带用户标识,所述定位请求携带所述用户标识;

第二接收模块,用于接收来自所述定位服务器的第一信息,所述第一信息用于确定地理位置;

第二提供模块,用于查询所述第一信息相匹配的推送信息,并向所述用户终端提供所述推送信息。

一种信息推送装置,包括处理器和存储器,所述存储器存储有计算机可执行指令,所述计算机可执行指令被所述处理器执行时实现如下方法:

基于来自用户终端的触发请求,向定位服务器发送定位请求,所述触发请求携带用户标识,所述定位请求携带所述用户标识;

接收来自所述定位服务器的第一信息,所述第一信息用于确定地理位置;

查询所述第一信息相匹配的推送信息,并向所述用户终端提供所述推送信息。

本申请包括以下优点:

一方面,本申请的地理位置确定方法及装置,结合用户的历史数据(如交易数据、浏览数据、应用数据等)形成包含地理位置索引,可在无法获取到用户的定位数据时或用户的定位数据时效性不足时,基于用户标识查询地理位置索引,通过地理位置索引中的第一信息确定用户当前的地理位置,不仅覆盖率、精确度以及可靠性更高,而且不受使用场景的限制,方便快捷。

另一方面,本申请的信息推送方法及装置,通过向定位服务器查询用户标识相关的地理位置索引确定用户的地理位置,再基于该地理位置向用户终端提供相应的推送信息,信息推送的精准度更高,从而有效提升了信息推送的用户体验。并且,在无法获取到用户的定位数据时或用户的定位数据时效性不足时(如用户将移动终端的定位功能屏蔽掉、使用pc等电子设备时无法进行定位),也可以基于用户位置进行信息的推送,不受电子设备功能的局限,信息推送时覆盖范围更广。

当然,实施本申请的任一产品必不一定需要同时达到以上所述的所有优点。

附图说明

图1为本申请地理位置的确定方法流程示意图;

图2为本申请分布式系统的结构示意图;

图3为本申请地理位置确定方法的具体实现流程示意图;

图4为本申请信息推送方法的流程示意图;

图5为本申请地理位置的确定装置的组成结构示意图;

图6为本申请信息推送装置的组成结构示意图;

图7为本申请一应用场景的架构示意图。

具体实施方式

下面将结合附图及实施例对本申请的技术方案进行更详细的说明。

需要说明的是,如果不冲突,本申请实施例以及实施例中的各个特征可以相互结合,均在本申请的保护范围之内。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

在一个典型的配置中,客户端或服务器的计算设备可包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存(memory)。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。内存可能包括模块1,模块2,……,模块n(n为大于2的整数)。

计算机可读介质包括永久性和非永久性、可移动和非可移动存储介质。存储介质可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom),快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

本申请实施例提供的地理位置确定方法中,可预先存储有与用户标识相关联的至少一种用户历史数据,在接收到携带有某用户的用户标识的定位请求时,可基于该用户标识查询该用户标识关联的该用户的所有用户历史数据,并可基于该历史数据来确定用户的位置。本方法可在用户的地理位置无法通过全球定位系统、移动定位系统等定位方法确定的情况下,可基于用户的历史用户数据,来确定用户的位置,从而可为用户提供不同的服务。

实际应用中,可在接收到定位请求后来基于用户的历史数据来确定用户的位置,也可以先根据用户的历史数据确定用户的地理位置,从而在接收到用户的请求后,就可以直接通过查询的方式来获取用户的地理位置。下面将会以具体的实例来说明本申请技术方案。

实施例一

一种地理位置的确定方法,如图1所示,包括如下步骤:

步骤101,基于用户标识相关联的至少一种用户历史数据生成地理位置索引,所述地理位置索引包含用于确定地理位置的第一信息、所述第一信息与所述用户标识的映射关系;

步骤102,接收携带用户标识的定位请求;

步骤103,查询对应所述定位请求中用户标识的所述地理位置索引;

步骤104,根据所述查询到的地理位置索引,向所述定位请求的请求方提供所述第一信息。

本实施例中,结合用户的历史数据(如交易数据、浏览数据、应用数据等)形成包含地理位置索引,可在无法获取到用户的定位数据时或用户的定位数据时效性不足时,基于用户标识查询地理位置索引,通过地理位置索引中的第一信息确定用户当前的地理位置,不仅覆盖率、精确度以及可靠性更高,而且不受使用场景的限制,方便快捷。

本实施例中,所述第一信息可以为如下之一:收货地址信息、全球卫星定位gps信息、对应ip地址的位置信息;所述至少一种用户历史数据可以为如下之一或其任意组合:交易数据、应用数据、浏览数据。

实际应用中,交易数据可以从交易服务器或应用服务器获取,或通过解析用户浏览日志或应用程序日志来获取,交易数据可以包含用户在电商网站或提供交易服务的应用程序上注册的用户标识(如电商网站或应用程序上注册的用户id、电话号码等)、用户提供的个人信息(如收货地址信息)、商品对象相关的信息(如品类、数量等)。

实际应用中,应用数据主要是指用户使用移动终端上应用程序所产生的数据,应用数据可以从提供相应应用程序的服务器获取或通过解析用户的应用程序日志来获取,应用数据可以包含用户在应用程序上注册的用户标识(如用户在应用程序上注册的用户id、填写的电话号码等)、全球卫星定位(gps)信息、以及用户使用应用程序提供的功能(如地图、导航、即时通讯、购物等)时产生的信息。

实际应用中,浏览数据主要是指用户通过移动终端或pc等设备浏览网页所产生的数据,浏览数据可以通过解析用户浏览日志来获取,也可以向相应的应用服务器获取,浏览数据包含用户标识浏览网页时产生的用户标识(如用户注册的用户id、cookieid、ip地址、macid等)、访问时间信息(如访问时长、访问时间段等)、网页相关信息(如网址、网页分类、网页内容)等。

在一些实现方式中,可以通过如下方式生成地理位置索引:基于用户标识相关联的至少一种用户历史数据,获取所述第一信息;利用所述第一信息及其对应的用户标识生成所述地理位置索引。

本实施例中,用户标识相关联的用户历史数据是指代表同一用户的多个用户标识对应的用户历史数据。实际应用中,可以通过统计分析携带用户标识的用户历史数据(即上述的浏览数据、交易数据或应用数据中之一),识别各用户标识之间的关联性,从而确定出哪些用户标识是代表了同一用户。例如,可以通过统计分析用户的浏览数据,确定同一用户id对应有多个cookieid、多个ip地址、多个macid,那么说明该用户id、多个cookieid、多个ip地址、多个macid之间存在关联性,实际代表了同一用户。

实际应用中,用户历史数据具有一定的时效性,时效性差、使用频率较低的第一信息可靠性比较差。因此,可以基于距离当前时间最近的、使用频率更高的用户历史数据来获取所述第一信息,本实施例中,在获取所述第一信息之后,还可以过滤所述获取到的第一信息,利用过滤后的所述第一信息及其对应的用户标识生成所述地理位置索引。如此,可将部分时效性差的、使用频率较低的第一信息过滤掉,选用时效性较高、使用频率较高的第一信息来生成所述地理位置索引,以便增强所述地理位置索引的可靠性。

本实施例中,生成地理位置索引的过程中,还可以配置所述第一信息的优先级。可以根据所述查询到的地理位置索引中第一信息的优先级,从所述查询到的地理位置索引中提取所述第一信息并提供给所述定位请求的请求方。通过优先级指示所述第一信息的准确性,第一信息的优先级值越高则说明其准确度越高,如此,可基于优先级值精准锁定准确度高的第一信息,以提高用户地理位置的精确度。

在一些实现方式中,所述配置所述第一信息的优先级,包括如下之一或两项之组合:1)所述地理位置索引中包含多条所述第一信息时,按照预定规则将所述地理位置索引中的多条所述第一信息排序,根据所述排序的结果配置所述第一信息的优先级;2)所述地理位置索引中包含一条所述第一信息时,配置所述第一信息的优先级为预定值。

实际应用中,对于不同类型的第一信息可以配置不同的所述预定值,例如,第一信息为对应ip地址的位置信息时可以配置为第二预定值,第一信息为gps信息时可以配置为第三预定值,第一信息为收货地址信息时可以配置为第一预定值,如此,对于准确度更高的某类第一信息可以配置较高的优先级,对于准确度相对比较低的某类第一信息可以配置较低的优先级,以便后续选择准确度更高的第一信息来确定用户当前的地理位置。

实际应用中,按照预定规则将所述地理位置索引中的多条所述第一信息排序时,可以针对不同类型的第一信息采用不同的预定规则进行排序。例如,对于收货地址信息,可以根据收货地址信息的使用频率、时效性、区域属性等特征进行排序;对于gps信息,可以根据其时效性、使用频率、使用时长等进行排序;对于ip地址对应的位置信息,可以根据其时效性、使用频率、访问时长、访问时间段等特征进行排序。基于不同类型的第一信息本身的准确度,对于不同类型的第一信息可以配置不同的优先级范围,再基于第一信息的排序结果配置具体的优先级值。

在一些实现方式中,在所述第一信息为收货地址信息时,可以通过如下方式生成地理位置索引:从对应同一用户标识的交易数据中提取收货地址信息,并以所述用户标识对应的第一标识为键、所述过滤后的收货地址信息为值形成所述地理位置索引。

其中,在所述收货地址信息为多条时,还可以根据所述收货地址信息的更新时间、地理区域属性、使用次数中之一或多项,配置所述收货地址信息的优先级;在所述收货地址信息为一条时,还可以以第一预定值配置所述收货地址信息的优先级。

在一些实现方式中,在所述第一信息为对应ip地址的位置信息时,可以通过如下方式生成地理位置索引:在生成地理位置索引之前建立ip地址信息库,所述ip地址信息库中包含ip地址、位置信息及其映射关系;基于对应同一用户标识的浏览数据中的ip地址、以及各所述ip地址的访问时间信息,从所述ip地址信息库中查询对应所述ip地址的位置信息,并以所述用户标识对应的第一标识、访问时间信息、ip地址为键、所述至少一条ip地址对应的位置信息为值形成所述地理位置索引。

其中,在所述地理位置索引中包含两条或多条所述对应所述ip地址的位置信息时,还可以按照各所述ip地址的访问时长将所述位置信息排序,按照所述排序的结果配置所述位置信息的优先级;在所述地理位置索引中包含一条对应所述ip地址的位置信息时,还可以以第二预定值配置对应所述ip地址的位置信息的优先级。

在一些实现方式中,在所述第一信息为gps信息时,可以通过如下方式生成地理位置索引:基于对应同一用户标识的应用数据中的gps信息以及访问时间信息,以所述用户标识对应的第一标识、访问时间信息为键、所述gps信息为值形成所述地理位置索引。

其中,在所述地理位置索引中包含两条或多条所述gps信息时,还可以按照所述gps信息对应的访问时长对所述gps信息排序,按照所述排序的结果配置所述gps信息的优先级;在所述地理位置索引中包含一条所述gps信息时,还可以以第三预定值配置所述gps信息的优先级。

本实施例中,所述生成所述地理位置索引,还可以包括:识别浏览数据、交易数据或应用数据中所述用户标识之间的关联性;基于相关联的所述用户标识生成所述第一标识,所述第一标识包含第一部分和第二部分,所述第一部分用于指示所述用户标识类型,所述第二部分基于相关联的所述用户标识的内容以预定义映射算法得到。

在一些实现方式中,还可以基于相关联的同类型所述用户标识生成的第一标识进行去重处理。本实施例中,所述相关联的同类型用户标识是指来自同一类型用户历史数据的、存在关联性的用户标识。例如,通过统计分析用户的浏览数据,确定同一用户id对应有多个cookieid、多个ip地址、多个macid,那么说明该用户id、多个cookieid、多个ip地址、多个macid之间存在关联性,实际代表了同一用户,需要将分别对应该用户id、多个cookieid、多个ip地址、多个macid的多个第一标识进行去重处理。

本实施例中,在生成地理位置索引之后可以将所述地理位置索引作为离线数据保存,例如,可以保存在数据库或存储器中,便于随时查询。实际应用中,地理位置索引的存储可以按照其形式不同分别存储,也可以共同存储。例如,可以将第一地理位置索引保存在ip地址信息库中,将第二地理位置索引通过指定的第一数据库保存,将第三地理位置索引库通过指定的第二数据库保存等。对于地理位置索引的具体存储方式,本文不作限制。

下面以示例的形式对本实施例中第一标识的生成过程进行详细说明:

按照约定格式生成第一标识,并将标识同一用户的所有用户标识映射至一个所述第一标识。也就是说,所述第一标识对应一个用户的一类用户标识,该用户标识可以包括但不限于:用户注册的用户id(userid)、手机号码、国际移动设备识别码(internationalmobileequipmentidentity,imei)、macid、cookieid等。

实际应用中,可以通过如下方式生成第一标识:所述第一标识包含两部分,一部分配置为身份类别标识码,另一部分用户标识的内容以预定义的映射算法得到。如此,可将同一用户的多个同类型用户标识映射至一个第一标识。该身份类别标识码标识用户标识的类型,例如,交易数据中同一用户id对应多个手机号码时,那么该多个手机号码属于多个同类型用户标识,将该多个手机号码映射至同一个第一标识,该第一标识中第一部分为指示用户标识为手机号码的身份类别识别码如002,第二部分包含多个标识符,每个标识符对应一个手机号码,所述标识符基于手机号码的内容以预定义的映射算法得到。

例如,可以按照如下格式生成第一标识:以一个64位数据表示一个第一标识,第一标识命名为nid(normalizationid),将nid分为两部分:一部分为前8比特,配置成身份类别标识码;另一部分为后56比特,后56比特从0x00000000000001开始递增,可以通过用户标识的内容以预定义的映射算法得到。如此,即可将同一用户的同类用户标识映射为一个第一标识。

本实施例中,在第一标识生成之后,为确保第一标识精确的对应一个用户,还可以对第一标识进行去重处理。例如,对于同一用户的userid和cookieid分别生成了不同的第一标识时,在可以确定该userid和cookieid存在对应关系时,将对应userid的第一标识覆盖掉对应所述cookieid的第一标识。例如,发现用户s历史登录的账户中,cookieid是aaa,userid是bbb,则可以确定aaa和bbb都代表同一个用户s的同类型用户标识,那么,可以将cookieid为aaa的第一标识nid1通过userid为bbb的第一标识nid2覆盖,覆盖之后,该第一标识nid2的第二部分基于“cookieid为aaa”、以及“userid为bbb”映射得到。

实际应用中,如果用户的某类型用户标识对应的第一标识已经存在,而该用户的该类型用户标识更新时,则可以同步更新用户标识与第一标识之间的映射。例如,可以根据更新后的用户标识修改所述第一标识中的第二部分,使得第一标识与更新后的用户标识之间建立映射。

下面以示例的形式对本实施例中地理位置索引的生成过程进行详细说明:

实际应用中,所述地理位置索引可以以如下三种形式存在:

1)以ip地址为键、以对应ip地址的位置信息为值;

2)以对应用户标识的第一标识为键、以收货地址信息为值;

3)以所述第一标识、ip地址以及访问时间为键、以gps信息或对应ip地址的位置信息为值。

上述地理位置索引可以通过如下方式生成并保存:

1)基于用户的浏览数据生成第一地理位置索引:

所述用户标识为用户在网页上注册的用户id、cookieid或媒体访问控制标识(macid)时,所述用户id、cookieid或macid与ip地址存在绑定关系;此时,可以以将所述ip地址对应的位置信息为所述第一信息,生成以所述ip地址为键(key)、以对应所述ip地址的位置信息为值(value)的第一地理位置索引。这里,ip地址可以ipv4地址、ipv6地址等,对于ip地址的具体形式本文不作限制。

在一些实现方式中,可以从外部获取ip地址对应的位置信息。例如,可以向用于管理ip地址相关信息的数据库或服务器(如运营商的服务器)定时获取ip地址对应的位置信息。

在一些实现方式中,可以将上述第一地理位置索引保存在专用的信息库中。例如,可以建立ip地址信息库,在该ip地址信息库中存储所述第一地理位置索引。

除此之外,还可以为所述第一地理位置索引中对应ip地址的地理位置信息默认配置指定的优先级,例如,优先级最大为100时,可以为第一地理位置索引中的每个第一信息都默认设置优先级为第二预定值,该第二预定值取为10。

其中,所述ip地址可以是ipv4地址、ipv6地址等。

2)基于用户的交易数据生成第二地理位置索引:

从交易数据中提取对应于同一用户标识的收货地址信息,以对应于同一用户标识的收货地址信息作为与所述用户标识对应的第一信息;查询所述用户标识对应的第一标识;生成以所述第一标识为键、以所述收货地址信息为值的第二地理位置索引。

其中,所述收货地址信息可以包括但不限于用户向交易服务器或应用服务器上提供的收货地址、常用地址等信息。

实际应用中,按照使用次数以及使用时间接近当前时间的程度对所述收货地址信息进行排序,按照排序的结果保留部分收货地址信息,将保留的部分收货地址信息作为用户的第一信息。例如,收货地址信息超过一定数量时,保留排序在前的一定数量的收货地址信息,其他收货地址信息剔除,所保留的收货地址信息可以直接作为第一信息。

用户的收货地址信息中可能会存在长期未使用的僵尸地址,为提升处理效率,可以在提取收货地址信息之后、对收货地址信息进行排序之前,根据收货地址信息的使用频率对收货地址信息进行粗过滤,例如可以将自当前时间起3个月内没使用过的收货地址信息直接过滤。实际应用中还可以采用其他方式对收货地址信息进行过滤。对于具体的过滤条件或过滤方式,本文不作限制。

实际应用中,还可以按照所述排序为每个收货地址信息配置优先级。具体的,可以为排序第一的收货地址信息配置最高优先级,为排序第二的收货地址信息配置次高优先级,排序第三的收货地址信息配置第三高优先级,排序在最后的收货地址信息配置最低优先级。在一些实现方式中,配置优先级时可以采用按照排序递减的方式设置具体的优先级值。具体的,次高优先级与最高优先级之间相差一个预定差值,第三高优先级与次高优先级之间相差一个所述预定差值,如此,按照次序优先级递减的方式来为每个收货地址信息配置优先级。当然,实际应用中还可以采用其他方式为收货地址信息配置优先级,对此,本文不作限制。

例如,可以将最近一次使用且使用次数最多的收货地址信息排在第一位,依此方式排序之后,如果收货地址信息超过10个则仅保留排序在前10位的收货地址信息作为所述第一信息,为排序第一的收货地址信息配置优先级为10,排序第二的收货地址信息配置优先级为9,依次递减,排序第十的收货地址信息配置优先级为1。

实际应用中,还可以设置收货地址信息的类型,根据收货地址信息的类型以及当前时间的属性动态调整所述收货地址信息的优先级。例如,在当前时间为节假日时,将类型为家庭性质的收货地址信息优先级增加一个固定值,将类型为单位性质的收货地址信息优先级降低一个固定值,该固定值的具体数值可根据实际需要灵活配置,针对不同情况配置不同数值,或者可以基于经验数据确定一个经验数值。例如,如果当前时间为节假日,那么将家庭性质的收货地址信息优先级增加1,相应的单位性质的收货地址信息优先级减1。如果当前时间为工作日,那么将家庭性质的收货地址信息优先级减1,相应的单位性质的收货地址信息优先级增加1。

这里,在提取收货地址信息之后,可以根据用户的其他信息或收货地址信息的区域属性确定收货地址信息的类型,例如,收货地址信息的区域属性为小区时默认为家庭性质,收货地址信息的区域属性为写字楼时默认为单位性质。再例如,用户在提供其收货地址信息时如果标记该收货地址信息的类型(如家庭地址、单位地址),那么以用户标记的类型为准。

实际应用中,以收货地址信息作为第一信息时可以通过如下方式生成第二地理位置索引:以用户的第一标识为key、以收货地址信息为value形成第二地理位置索引,其中,每个value配置有优先级,该key与value之间的映射可以是一对一、一对多等,也就是说,一个key可以对应一个value,也可以是一组value,每个value是一个带有优先级的收货地址信息。对于一组value,可以将该组中多个value按照优先级由高到低排序。

3)基于用户的应用数据或浏览数据生成第三地理位置索引:

从浏览数据中提取用户标识(如用户在网页上注册的用户id、网页上的cookieid、macid等)、ip地址以及访问时间;查询所述用户标识对应的第一标识;查询所述ip地址对应的位置信息;以第一标识+ip地址+访问时间为key、以地理位置信息为value的第三地理位置索引。

其中,以第一标识+ip地址+访问时间为key、以对应ip地址的位置信息为value的第三地理位置索引中,key中ip地址的部分可以是全段ip地址,也可以是部分ip地址(如ip地址的前两段)。以第一标识+ip地址+访问时间为key、以对应ip地址的位置信息为value的数据中,key中访问时间可以是时间段信息(如上午8:00-10:00)、时长信息(如3小时)等。例如,key的一示例可以为:第一标识+ip地址前两段+3小时。

在用户使用移动终端的应用程序时,移动终端会采集用户的gps信息,该gps信息会包含在用户的应用数据中。从应用数据中提取用户标识(如用户在应用程序上注册的用户id等)、访问时间、gps信息;如果已经存在对应所述用户标识的第一标识,则可以查询所述用户标识对应的第一标识;生成以所述第一标识+访问时间为key、以所述gps信息为value的第三地理位置索引。

第三地理位置索引中,key与value可以是一对一、一对多的映射关系。对于一个key对应多个value的情况,也就是说value为多值时,可以按照访问时长对value进行排序,按照所述排序得到的次序保留部分value并标示所保留value的优先级。例如,按照访问时长对value进行排序,保留前10个value,并分别配置优先级,第一个value配置优先级为10,第二个value配置优先级为9,第三个value配置优先级为8,依次递减,第十个value配置优先级为1。

实际应用中,可以通过采集同一用户的浏览日志来得到所述用户的浏览数据。可以采集用户近1个月的应用程序日志来得到所述用户的应用数据。通过大量数据的统计和比较之后保留发生概率比较高的部分数据,将该部分数据进行缓存。实际应用中,还可以根据业务需要定时重新采集浏览日志和应用程序日志来更新上述地理位置索引,以确保上述地理位置索引具有较高的时效性和准确性。

实际应用中,本申请的上述方法可以通过分布式系统或计算机集群实现,该分布式系统或计算机集群中可以包含分布式消息队列节点、lbs节点、控制节点、前端交互节点等。

其中,分布式消息队列节点缓存有分布式消息队列,该分布式消息队列中包含来自用户终端的地理位置信息,分布式消息队列节点可与应用服务器通信,通过应用服务器获取各个用户终端上报的地理位置信息,该地理位置信息由用户终端通过定位功能(如gps等)获取。

其中,lbs节点负责提供lbs功能,能够基于用户标识向所述分布式消息队列节点查询其缓存的地理位置索引,该查询动作可以在控制节点的控制下进行,也可以是在接收到来自用户终端的请求之后执行。

其中,前端交互节点负责与用户终端交互,将来自用户终端的信息推送请求提供给控制节点,以及将控制节点确定推送的信息提供给用户终端。

其中,所述控制节点负责基于信息推送请求确定要推送的信息及推送策略,具体来说,控制节点可以根据信息推送请求中的用户标识通过lbs节点查询地理位置索引,获取第一信息,再基于所述第一信息查询相匹配的预定规则集,根据查询到的预定规则集确定推送信息以及推送策略,最后根据该推送策略将所述推送信息通过所述前端交互节点提供给用户终端。

本实施例中,可以由lbs节点生成并保存所述第一标识。

或者,如图2所示,可以在分布式系统或计算机集群中设置身份转换节点,该身份转换节点负责生成第一标识并存储所述第一标识及其与各用户标识之间的映射,身份转换节点可以与上述的lbs节点、控制节点通信,控制节点、lbs节点分别可以根据用户标识向身份转换节点查询所述第一标识,身份转换节点还可以将定时更新的第一标识同步至上述lbs节点、控制节点等,以便上述lbs节点、控制节点能够同时更新第一标识相关的数据。

实际应用中,可以由控制节点从来自用户终端的信息推送请求中提取用户标识,并送至身份转换节点,身份转换节点通过此方式可收集到同一用户的多种用户标识,进而建立多种用户标识与所述第一标识的映射。除此之外,身份转换节点还可以通过与外部的应用服务器或交易服务器等通信来获取用户的上述多种用户标识。当然,身份转换节点还可以通过其他方式来获取到用户的多种用户标识,对此,本文不作限制。

实际应用中,该身份转换节点可以通过一台计算设备或分布式存在的多台计算设备实现。

本实施例中,上述地理位置索引可以存储在lbs节点,也可以存储于单独设置的地理位置索引处理节点,该地理位置索引处理节点负责上述地理位置索引的生成、更新及存储等。实际应用中,如图2所示,该地理位置索引处理节点属于上述分布式系统或计算机集群,可以通过一台计算设备或分布式存在的多个计算设备实现。

实际应用中,所述地理位置索引处理节点可以与上述的身份转换节点通信。具体的,地理位置索引处理节点可以向身份转换节点查询所述第一标识以形成上述的地理位置索引,身份转换节点可以将定时更新的第一标识同步至所述地理位置索引处理节点。

所述地理位置索引处理节点能够与所述lbs节点通信,lbs节点可以主动向该地理位置索引处理节点查询上述地理位置索引,也可以由地理位置索引处理节点定时向lbs节点推送上述地理位置索引。

实际应用中,上述的分布式系统或计算机集群还可以包含其他节点,对此,本文不作限制。上述各个节点除具有上述功能之外,还可提供其他功能。例如,控制节点除可基于用户地理位置信息查询其匹配的预定规则集之外,还可基于如用户个人特性、用户喜好等其他用户信息来查询其匹配的预定规则集。lbs节点除具有lbs功能之外,也可以负责其他与用户地理位置信息相关的业务,例如基于用户地理位置信息查询相匹配的预定规则集等。对于上述各个节点的功能本文不作限制。

实际应用中,上述各节点分别可以通过一台计算设备或分布式连接的多台计算设备实现。

如图3所示,本实施例中lbs节点确定用户地理位置的流程可以包括如下步骤:

步骤301,接收定位请求,所述请求携带用户标识;

实际应用中,所述来自用户终端的请求由用户终端发出、经由前端交互节点和控制节点之后送至所述lbs节点。在所述请求的传递过程中可能会借由不同的数据通道传送,那么传送过程中请求中包含的内容以及数据形式可能会有不同,但不管内容或形式有何不同其共同点在于包含用户标识。

步骤302,向分布式消息队列节点查询与所述用户标识相对应的定位数据;

步骤303,验证是否存在与所述用户标识相对应的定位数据,如果存在,则继续步骤304,如果不存在则继续步骤306;

步骤304,判断与所述定位数据的上报时间到当前时刻的时长是否超出了预定时长(例如,12小时),如果是则继续步骤306,如果不是则继续步骤305;

步骤305,将所述定位数据中的gps信息提供给所述定位请求的请求方。

步骤306,根据所述用户标识向身份转换节点查询对应的第一标识;

步骤307,根据查询到的第一标识向地理位置索引处理节点查询地理位置索引,并从所述地理位置索引中提取第一信息,并将所述第一信息提供给所述定位请求的请求方。

实际应用中,所述定位请求的请求方可以是用户终端、应用服务器、上述控制节点、信息推送方的推送服务器等。

实施例二

一种信息推送方法,如图4所示,可以包括:

步骤401,基于来自用户终端的触发请求,向定位服务器发送定位请求,所述触发请求携带用户标识,所述定位请求携带所述用户标识;

步骤402,接收来自所述定位服务器的第一信息,所述第一信息用于确定地理位置;

步骤403,查询所述第一信息相匹配的推送信息,并向所述用户终端提供所述推送信息。

具体的,所述查询所述第一信息相匹配的推送信息,可以包括:向推送服务器发送信息推送请求,所述信息推送请求携带所述第一信息;接收所述推送服务器返回的与所述第一信息相匹配的推送信息。实际应用中,该推送服务器可以是提供所述推送信息的第三方服务器或图3所示系统中的控制节点。实际应用中,推送服务器可以查询所述第一信息匹配的预定规则集,并根据该预定规则集确定所述推送信息及其推送策略并返回,以便采用所述推送策略将所述推送信息提供给所述用户终端。

在一些实现方式中,所述向定位服务器发送定位请求之前,还可以验证是否有接收到来自所述用户终端的定位数据以及所述定位数据的时效性是否满足预定条件;在未接收到来自所述用户终端的定位数据或所述定位数据的时效性不满足所述预定条件时,向定位服务器发送定位请求。

实际应用中,所述验证是否有接收到来自所述用户终端的定位数据以及所述定位数据的时效性是否满足预定条件之后,还可以包括:在接收到所述定位数据且所述定位数据满足所述预定条件时,查询所述定位数据中全球卫星定位gps信息相匹配的推送信息,并向所述用户终端提供所述推送信息。

在一些实现方式中,所述预定条件可以为上报时间距离当前时间的时长不超出预定时长。实际应用中,所述预定条件还可以包含其他内容,其具体内容可以根据实际需要自由设定,本文不作限制。

本实施例中,上述信息推送方法可以由图2所示系统中控制节点、前段交互节点等实现,上述定位服务器可以为图2所示系统中的lbs节点、地理位置索引处理节点中之一或两者的结合。

本实施例中,通过向定位服务器查询用户标识相关的地理位置索引确定用户的地理位置,再基于该地理位置向用户终端提供相应的推送信息,信息推送的精准度更高,从而有效提升了信息推送的用户体验。并且,在无法获取到用户的定位数据时或用户的定位数据时效性不足时(如用户将移动终端的定位功能屏蔽掉、使用pc等电子设备时无法进行定位),也可以基于用户位置进行信息的推送,不受电子设备功能的局限,信息推送时覆盖范围更广。

实施例三

如图5所示,一种用户地理位置的确定装置,可包括:

生成模块51,用于基于用户标识相关联的至少一种用户历史数据生成地理位置索引,所述地理位置索引包含用于确定地理位置的第一信息、所述第一信息与所述用户标识的映射关系;

第一接收模块52,用于接收携带用户标识的定位请求;

查询模块53,用于查询对应所述定位请求中用户标识的所述地理位置索引;

第一提供模块54,用于根据所述查询到的地理位置索引,向所述定位请求的请求方提供所述第一信息。

本实施例中,上述查询模块53是上述装置中负责向外部节点(如身份转换节点)或本地查询对应所述用户标识的第一标识、并基于所述第一标识查询所述地理位置索引的部分,可以是软件、硬件或两者的结合。

本实施例中,所述生成模块51是上述装置中负责地理位置索引的生成、更新及存储等处理的部分,可以是软件、硬件或两者的结合。

本实施例中,所述第一提供模块54是上述装置中向外部节点(如控制节点、前端交互节点、推送服务器、应用服务器等)提供用于确定地理位置的第一信息的部分,可以是软件、硬件或两者的结合。

本实施例中,所述第一接收模块52是上述装置中负责接收外部节点(如控制节点、前端交互节点、推送服务器、应用服务器等)定位请求的部分,可以是软件、硬件或两者的结合。

本实施例的上述确定装置可以但不限于设置于实施例一中所述的分布式系统或计算机集群中。在一些实现方式中,上述的生成模块51可分布于图2所示系统结构的lbs节点、地理位置索引处理节点、身份转换节点中,第一接收模块52、查询模块53、第一提供模块54可设置于图2所示系统结构的lbs节点中。

本实施例的其它实现细节可参考实施例一。

实施例四

一种用户地理位置的确定装置,包括处理器和存储器,所述存储器存储有计算机可执行指令,所述计算机可执行指令被所述处理器执行时实现如下方法:

基于用户标识相关联的至少一种用户历史数据生成地理位置索引,所述地理位置索引包含用于确定地理位置的第一信息、所述第一信息与所述用户标识的映射关系;

接收携带用户标识的定位请求;

查询对应所述定位请求中用户标识的所述地理位置索引;

根据所述查询到的地理位置索引,向所述定位请求的请求方提供所述第一信息。

本实施例的上述确定装置可以但不限于设置于实施例一中所述的分布式系统或计算机集群中。在一些实现方式中,本实施例的上述确定装置可通过实施例一中所述分布式系统或计算机集群中的lbs节点来实现,或者通过lbs节点、地理位置索引处理节点、以及身份转换节点实现。

本实施例的其它实现细节可参考实施例一。

实施例五

如图6所示,一种信息推送装置,包括:

发送模块61,用于基于来自用户终端的触发请求,向定位服务器发送定位请求,所述触发请求携带用户标识,所述定位请求携带所述用户标识;

第二接收模块62,用于接收来自所述定位服务器的第一信息,所述第一信息用于确定地理位置;

第二提供模块63,用于查询所述第一信息相匹配的推送信息,并向所述用户终端提供所述推送信息。

本实施例中,上述发送模块61是上述装置中负责向外部节点(如lbs节点、地理位置索引处理节点)请求指示用户地理位置的信息(如第一信息或定位数据中的gps信息)的部分,可以是软件、硬件或两者的结合。

本实施例中,所述第二接收模块62是上述装置中负责接收来自外部节点(如lbs节点、地理位置索引处理节点)的指示用户地理位置的信息(如第一信息或定位数据中的gps信息)的部分,可以是软件、硬件或两者的结合。

本实施例中,所述第二提供模块63是上述装置中向外部节点(如前端交互节点、应用服务器、用户终端等)提供推送信息的部分,可以是软件、硬件或两者的结合。

本实施例的上述信息推送装置可以但不限于设置于实施例一中所述的分布式系统或计算机集群中。在一些实现方式中,上述的发送模块61、第二接收模块62、第二提供模块63可设置于图2所示系统结构的控制节点或前端交互节点中。

本实施例的其它实现细节可参考实施例二。

实施例六

一种信息推送装置,包括处理器和存储器,所述存储器存储有计算机可执行指令,所述计算机可执行指令被所述处理器执行时实现如下方法:

基于来自用户终端的触发请求,向定位服务器发送定位请求,所述触发请求携带用户标识,所述定位请求携带所述用户标识;

接收来自所述定位服务器的第一信息,所述第一信息用于确定地理位置;

查询所述第一信息相匹配的推送信息,并向所述用户终端提供所述推送信息。

本实施例的上述确定装置可以但不限于设置于实施例一中所述的分布式系统或计算机集群中。在一些实现方式中,本实施例的上述确定装置可通过实施例一中所述分布式系统或计算机集群中的控制节点或前端交互节点来实现。

本实施例的其它实现细节可参考实施例二。

本申请的一种应用场景是基于用户当前的地理位置向用户推送商品对象信息的过程:

第二用户作为商家,需要将自己的商品对象信息在指定时间段内推送给当前地理位置在自己店铺附近的第一用户。

如图7所示,第二用户通过第二用户终端向推送服务器提交第一请求,所述第一请求中携带第二用户自定义的商品对象信息m1、以及推送策略,所述推送策略中包含第一时间段信息(例如,下午8点至10点)、以及第一地理范围信息(例如,包含店铺地理位置l1和距离范围信息3km)。

推送服务器接收所述第一请求,对所述第二用户的身份进行验证,验证通过之后,提取所述第一请求中的商品对象信息m1及推送策略并保存,向所述第二用户终端返回提交成功响应。

第一用户在下午9点使用第一用户终端打开由应用服务器提供的应用程序a,但当前第一用户终端的定位功能已被关闭,则第一用户终端向所述应用服务器发送触发请求,所述触发请求中携带所述第一用户在所述应用程序a上注册的用户标识id1,应用服务器接收所述触发请求并送至分布式系统。

分布式系统中的控制节点接收所述触发请求,解析所述触发请求获取到所述id1,查询所述触发请求中未携带第一用户的定位数据,查询本地分布式消息队列节点中第一用户之前提交过的定位数据,发现该定位数据的上报时间到当前时刻的时长已超出了预定时长(如3小时),则分布式系统中的控制节点向lbs节点发送定位请求,所述定位请求中携带所述id1。

分布式系统中的lbs节点从所述定位请求中解析出id1,查询到id1对应的第一标识nid1,再查询key包含nid1且key中的时间段包含当前时刻(下午9点)的地理位置索引,查询到所述地理位置索引之后,从所述地理位置索引中提取优先级最高的第一信息(例如,地理位置l2的gps信息,l2距离店铺地理位置l1约1.5km),并将所述第一信息返回给所述控制节点。这里,该地理位置索引是基于第一用户id1相关联的历史应用数据生成的,地理位置索引以nid1+时间段为key、以至少一条第一信息为value,该第一信息为所述第一用户id1相关联的历史应用数据中使用时间在所述key中时间段内的gps信息,每条第一信息配置有优先级。所述优先级按照使用次数配置,使用次数最多的第一信息配置最高的优先级,以此类推。

控制节点接收所述第一信息(例如,地理位置l2的gps信息),向所述推送服务器发送信息推送请求,信息推送请求携带所述第一信息(例如,地理位置l2的gps信息)。

推送服务器接收所述信息推送请求,查询所述第一信息匹配第一地理位置范围信息(即地理位置l2距离店铺地理位置l1约1.5km),则将对应所述第一地理位置范围信息的商品对象信息m1返回给所述控制节点。

控制节点接收所述推送服务器返回的商品对象信息m1,将所述商品对象信息m1提供给所述应用服务器,所述应用服务器再将所述商品对象信息m1提供给所述第一用户终端,第一用户终端在所述应用程序a的用户界面上显示所述商品对象信息m1。

本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请不限制于任何特定形式的硬件和软件的结合。

当然,本申请还可有其他多种实施例,在不背离本申请精神及其实质的情况下,熟悉本领域的技术人员当可根据本申请作出各种相应的改变和变形,但这些相应的改变和变形都应属于本申请的权利要求的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1