EP3028105B1 - Inferring a current location based on a user location history - Google Patents

Inferring a current location based on a user location history Download PDF

Info

Publication number
EP3028105B1
EP3028105B1 EP14748356.4A EP14748356A EP3028105B1 EP 3028105 B1 EP3028105 B1 EP 3028105B1 EP 14748356 A EP14748356 A EP 14748356A EP 3028105 B1 EP3028105 B1 EP 3028105B1
Authority
EP
European Patent Office
Prior art keywords
location
entry
client device
user
computing devices
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
Application number
EP14748356.4A
Other languages
German (de)
French (fr)
Other versions
EP3028105A2 (en
EP3028105A4 (en
Inventor
Krzysztof DULEBA
Lukasz Andrzej Heldt
Ankit Gupta
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of EP3028105A2 publication Critical patent/EP3028105A2/en
Publication of EP3028105A4 publication Critical patent/EP3028105A4/en
Application granted granted Critical
Publication of EP3028105B1 publication Critical patent/EP3028105B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/029Location-based management or tracking services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal

Definitions

  • the present disclosure relates generally to providing location-enhanced services.
  • the present disclosure relates to systems and methods for inferring a current location of a user or device based on an analysis of a user location history.
  • Location-enhanced services are increasingly common online tools used by many people on a daily basis.
  • location-enhanced services use knowledge of a user's location to provide an online service in a more accurate or useful manner.
  • a search engine can use knowledge of a user's location to tailor search results to reflect the most accurate or useful information for such location.
  • a mapping application or geographic information system can provide a superior map in response to a point of interest search or a request for directions. Therefore, knowledge of a user's location is increasingly a key factor used to provide a superior online experience across a broad range of services or tools.
  • IP internet protocol
  • mobile computing such as, for example, a smartphone
  • existing systems and methods for determining a user location are much less suitable.
  • users of mobile computing devices have high expectations regarding the ability of the computing device and its corresponding communication system to geolocate.
  • smartphones consistently employ their devices to act as navigational devices or to provide real-time, location-enhanced search results when hunting for a local point of interest, such as a restaurant, hotel, or other meeting place.
  • Some methods of geolocation for mobile computing devices are relatively precise. For example, successful use of the global positioning system or a Wi-Fi positioning system can result in a precise location for the mobile computing device. Unfortunately, such positioning systems are simply not available or operational for a large amount of time or locations. Further, geolocation by analysis of IP address is generally not as informative for mobile device carrier IPs. In addition, requiring the user to manually correct the query by appending the desired location is slow, cumbersome, and undesirable for the user.
  • US2012/0009904 discloses systems, methods and computer program products for determining a location of a tracked device, particularly following a device or network failure
  • US 2011/161485 discloses a method for monitoring multiple dynamic media streams playing concurrently on a client computer system.
  • US 2010/287178 discloses a method for determining a user's device location based on the history of said user's previous locations.
  • US 2012/184287 discloses a method of determining a device's location based on the history of said device's previous locations and the history of multiple other devices' previous locations.
  • the present disclosure is directed to systems and methods for inferring a current location of a user or device based on an analysis of a user location history.
  • a plurality of historical locations provided by the user location history can be scored according to a variety of parameters. The historical location receiving the highest score can be inferred to be the current location of the user.
  • a user location history can be generated and maintained for the user.
  • the user location history can be defined by a user account associated with the user and can store one or more entries for each instance in which a device that is signed into or otherwise associated with such user account performs an online interaction or reports its location. Each entry can describe a location and time and can provide a device identifier corresponding to the particular device used at such location and time.
  • the user in order to obtain the benefits of the techniques described herein, the user may be required to allow the collection and analysis of personal information, such as location information or device identity information. Therefore, in some embodiments, users may be provided with an opportunity to control whether programs or features collect such information. If the user does not allow collection and use of such information, then the user may not receive the benefits of the techniques described herein. In some embodiments, the user can also be provided with tools to revoke or modify consent. In addition, certain information or data can be treated in one or more ways before it is stored or used, so that personally identifiable information is removed.
  • a current location of such device can be determined with sufficient precision. For example, a number of various geolocation techniques can be performed. Alternatively, if a location has been freshly determined for such device ( e.g . within the last 5 minutes), then such freshly determined location can be used. However, if the precise location of the device cannot be determined and a fresh location is not available, then the user location history can be analyzed to assist in inferring the current location of such device.
  • a plurality of entries can be obtained from the user location history. For example, the most recent entry for each unique device identifier can be obtained. As another example, a particular number of the most recent entries regardless of device identifier can be obtained. As yet another example, a mix of entries can be obtained that includes the most recent entries in addition to at least one entry per unique device identifier.
  • Each of the obtained entries can be scored according to a scoring formula.
  • the scoring formula can provide a score to the entry based at least in part on its age, a location consistency, and a device co-location factor. Other parameters or components can be included as well.
  • the location consistency can compare the location provided by the entry being scored to a coarse location obtained by, for example, geolocating an IP address from which the request for the location-enhanced service was received.
  • the device co-location factor can provide an indication of how often the two devices have historically been at the same place at the same time. For example, the device co-location factor can compare some or all historical locations and times associated with the device identifier provided by the entry being scored with some or all historical locations and times associated with the device identifier of the device from which the request was received.
  • the location provided by the entry that received the highest score can be selected as the current location of the device from which the request was received. Such selected location can then be used to provide the requested location-enhanced service.
  • location-enhanced services can be effectively provided even in instances in which a current location of the device is generally unobtainable with sufficient precision according to known techniques.
  • FIG. 1 depicts a graphical diagram 100 of a client device 102 requesting and receiving a location-enhanced service from a service provider 104 according to an example embodiment of the present disclosure.
  • a location-enhanced service can include any service provided to a client device by host server in which knowledge of the client device's location is used to enhance or adjust one or more aspects of the provided service.
  • Example location-enhanced services include, but are not limited to, identifying, filtering, or promoting web search results based on device location; providing location-specific maps or directions; identifying, filtering, or promoting point of interest search results in a mapping application or geographic information system based on device location; identifying, filtering, or promoting content or advertisements based on device location; providing personal assistant functionality by organizing and selecting for presentation information available from a range of data sources based on device location; modifying operations of an arbitrary web-service based on device location; or any other suitable location-enhanced service, including aspects of web-based email, social networking, news or other content aggregation, or other suitable services or products.
  • example client device 102 has been used to sign into a user account ("User123").
  • a user account can be any account or means of identification that is associated with a user of one or more services.
  • Example user accounts include an operating system account; an account used for purchasing and ownership of content from a content distribution platform; a web-based email account; a social media account; a financial services account; a game account; an application-specific account (e.g. a news aggregator account or an internet-radio application account); or any other suitable user account.
  • service provider 104 offers several of the services discussed above (e.g . web-based email, social media, gaming, and content distribution) and a single user account can be used to participate in, receive, or otherwise control aspects of each of such services from service provider 104.
  • example client device 102 can implement an application module to operate a mapping application.
  • the user has entered a point of interest search query of "bike repair.”
  • a "Go” icon, or the magnifying glass icon the user can send the search query to service provider 104.
  • client device 102 can request a service from service provider 104 (e.g. a point of interest search in a mapping application). Further, the requested service could be enhanced using knowledge of current location of client device 102. In particular, by identifying and presenting point of interest search results in a general vicinity of a current location of the client device 102, the point of interest search service can be improved.
  • service provider 104 e.g. a point of interest search in a mapping application
  • the entered search query has not provided any information to determine a desired location of the point of interest.
  • the current viewpoint provided by the mapping application is significantly broad such that a desired location of the point of interest cannot be inferred from such viewpoint.
  • a current location of client device 102 cannot be determined with sufficient precision.
  • the request for the location-enhanced service can fail to identify the current location of client device 102 and other geolocation techniques such as GPS or WiFi positioning can be unavailable.
  • service provider 104 can analyze a user location history 108 associated with User123 to infer the current location of the client device 102. Service provider 104 can then use such inferred current location in conjunction with service functionality 106 to provide the location-enhanced service to client device 102.
  • the location-enhanced service e.g . location-specific point of interest search results
  • service provider 104 the location-enhanced service
  • FIG. 2 depicts an example system 200 according to an example embodiment of the present disclosure.
  • System 200 can include a client-server architecture, where a host server 202 communicates with one or more client devices 204, 206, and 208 over a network 210. Although three client devices 204, 206, and 208 are illustrated in FIG. 2 , any number of client devices can be connected to host server 202 over network 210.
  • Client devices 204, 206, and 208 can be, for example, a computing device having a processor 230 and a memory 232, such as a wireless mobile device, a personal digital assistant (PDA), smartphone, tablet, navigation system located in a vehicle, handheld GPS system, laptop computer, desktop computer, computing-enabled watch, computing-enabled eyeglasses, gaming console, embedded computing system, home appliances, or other such devices/systems.
  • client device 204 can be any computer, device, or system that can interact with the host server system 202 (sending and receiving data).
  • Processor 230 of client device 204 can be any suitable processing device and can be one processor or a plurality of processors that are operably connected.
  • Memory 232 can include any number of computer-readable instructions or other stored data.
  • memory 232 can include, store, or provide one or more application modules 234.
  • application modules 234 can respectively cause or instruct processor 230 to perform operations consistent with the present disclosure, such as, for example, running an application that transmits location data to host server 202 in addition to performing any number of arbitrary operations.
  • Application modules 234 can include, for example, a mapping application or a browser application.
  • module refers to computer logic utilized to provide desired functionality.
  • a module can be implemented in hardware, firmware and/or software controlling a general purpose processor.
  • the modules are program code files stored on the storage device, loaded into memory and executed by a processor or can be provided from computer program products, for example, computer executable instructions that are stored in a tangible computer-readable storage medium such as RAM hard disk or optical or magnetic media.
  • Client device 204 can further include a positioning system 238.
  • Positioning system 238 can determine a current geographic location of client device 204 and communicate such geographic location to host server 202 over network 210.
  • the positioning system 238 can be any device or circuitry for analyzing the position of the client device 204.
  • the positioning system 238 can determine actual or relative position by using a satellite navigation positioning system (e.g. a GPS system, a Galileo positioning system, the GLObal Navigation satellite system (GLONASS), the BeiDou Satellite Navigation and Positioning system), an inertial navigation system, a dead reckoning system, based on IP address, by using triangulation and/or proximity to cellular towers or WiFi hotspots, and/or other suitable techniques for determining position.
  • a satellite navigation positioning system e.g. a GPS system, a Galileo positioning system, the GLObal Navigation satellite system (GLONASS), the BeiDou Satellite Navigation and Positioning system
  • GLONASS GLObal Navigation satellite system
  • the positioning system 238 can analyze the position of the client device 204 as the user moves around in the world and provides the user location information to the host server 202 over network 210. As will be discussed further later, each of such location updates can be used to build a user location history for a user account associated with client device 204.
  • Client device 204 can further include a network interface 240.
  • Network interface 240 can include any suitable components for interfacing with one more networks, including for example, transmitters, receivers, ports, controllers, antennas, or other suitable components.
  • Host server 202 can be implemented using one or more suitable computing devices and can include a processor 212 and a memory 214. In the instance in which host server 202 is implemented using a plurality of computing devices, such devices can be configured according to a parallel computing architecture, a sequential computing architecture, or a combination of such architectures.
  • Processor 212 can be any suitable processing device and can be one processor or a plurality of processors which are operably connected.
  • Memory 214 can store instructions 216 that cause processor 212 to perform operations to implement the present disclosure.
  • Host server can communicate with client device 204 over network 210 by sending and receiving data.
  • Network 210 can be any type of communications network, such as a local area network (e.g., intranet), wide area network (e.g., Internet), or some combination thereof and can include any number of wired or wireless links.
  • communication between the host server 202 and a client device 204 can be carried via any type of wired and/or wireless connection, using a wide variety of communication protocols (e.g., TCP/IP, HTTP, SMTP, FTP), encodings or formats (e.g., HTML, XML), and/or protection schemes (e.g., VPN, secure HTTP, SSL).
  • client device 204 can freely move throughout the world and communicate with host server 202 is a wireless fashion.
  • Host server 202 can be coupled to or in communication with one or more databases, including a database providing an index of user location histories 218, a geographic information system 220, and external content 222.
  • databases 218, 220, and 222 are depicted in FIG. 2 as external to host server 202, one or more of such databases can be included in memory 214 of host server 202. Further, databases 218, 220, and 222 can each correspond to a plurality of databases rather than a single data source.
  • user location histories database 218 can store or provide a plurality of user location histories respectively associated with a plurality of user accounts.
  • each location update can identify the presently active user account and a unique device identifier that corresponds to the device providing the update.
  • Each location update can further include a location (e.g . latitude and longitude) and a timestamp identifying the date and time of day.
  • location updates can further include an accuracy indicator and/or other identifying information such as an originating IP address.
  • the user in order to obtain the benefits of the techniques described herein, the user may be required to allow the collection and analysis of personal information, such as location information or device identity information. Therefore, in some embodiments, users may be provided with an opportunity to control whether programs or features collect such information. If the user does not allow collection and use of such information, then the user may not receive the benefits of the techniques described herein. In some embodiments, the user can also be provided with tools to revoke or modify consent. In addition, certain information or data can be treated in one or more ways before it is stored or used, so that personally identifiable information is removed.
  • the device identifiers used in the user location histories can be any suitable means of identifying particular client devices.
  • example device identifiers include, but are not limited to, manufacturer serial number; MAC address; a device platform string (e.g . Operating System/Device Manufacturer/Device Model/Operational Parameters); IP address; an ID code provided from device memory; or any other suitable device identifier.
  • Additional information can be used to build or supplement a user location history as well.
  • a user is logged into a user account and performs a web search or uses one or more applications, such as a mapping application, it is possible that such interaction can result in obtaining the user's location. Therefore, an entry identifying such location can be formed in the associated user location history based on such interaction.
  • the user location history for each user account can consist of an encrypted set of location history entries.
  • the set of location history entries for each user location history can be sorted by device identifier and other parameters.
  • a sub-history can be maintained for each user location history in some implementations.
  • the sub-history can provide the single most recent location per each device or device identifier.
  • Geographic information system 220 can store or provide geospatial data to be used by host server 202.
  • Example geospatial data includes geographic imagery (e.g., digital maps, satellite images, aerial photographs, street-level photographs, synthetic models, etc.), tables, vector data (e.g. vector representations of roads, parcels, buildings, etc.), point of interest data, or other suitable geospatial data.
  • Geographic information system 220 can be used by host server 202 to provide navigational directions, perform location-specific point of interest searches, or any other suitable use or task required or beneficial for providing location-enhanced services.
  • Computer based system 200 can further include external content 222.
  • External content 222 can be any form of external content including news articles, webpages, video files, audio files, written descriptions, ratings, game content, social media content, photographs, commercial offers, or other suitable external content.
  • Host server system 202 and client device 204 can access external content 222 over network 210.
  • External content 222 can be searched by host server 202 according to known searching methods and can be ranked according to relevance, popularity, or other suitable attributes, including location-specific filtering or promotion.
  • FIGS. 3A and 3B depict a flowchart of an example method (300) for inferring a current location of a client device based on an analysis of a user location history according to an example embodiment of the present disclosure.
  • method (300) can be implemented using any suitable computing system.
  • FIGS. 3A and 3B depict steps performed in a particular order for purposes of illustration and discussion, methods of the present disclosure are not limited to such particular order or arrangement. Various steps of the method (300) can be omitted, rearranged, combined, and/or adapted in various ways without deviating from the scope of the present disclosure.
  • a request for a service can be received from a client device.
  • host server can receive a request from client device 204 to provide point of interest search results in a mapping application.
  • a desired location to search for points of interest may be ambiguous.
  • positioning system 238 of client device 204 can operate to provide geolocation of client device 204 according to any known techniques, such as GPS. However, in some instances such geolocation techniques may not be available or otherwise fail to identify a particular location with sufficient precision.
  • the request received at (302) can include or otherwise be associated with an originating IP address. Geolocation based on such IP address can often be used to provide a general location for the client device. In addition, a confidence percentage can be obtained or computed.
  • method (300) can proceed to (306) and perform the requested location-enhanced service based on such determined current location of the client device.
  • host server 202 can utilize geographic information system 220 to provide location-specific point of interest search results.
  • the method (300) can proceed to (308).
  • session cookies or other indicators can be analyzed to determine and identify a presently active user account.
  • the service can be provided without location-enhancements.
  • host server 202 might provide location-agnostic search results or might request a further narrowing of the target search location.
  • method (300) can proceed at (312).
  • host server 202 can analyze a user location history associated with the user account identified at (308) to obtain and analyze the most recent location entry associated with such client device (e.g. the most recent entry providing the device identifier associated with the client device from which the request was received at (302)).
  • the most recent entry for the client device will be considered fresh if it is within a threshold time from the current time.
  • other indicators of suitability can be analyzed in addition or alternatively to age, such as a confidence score or other metrics, including a comparison to a coarse location provided by IP geolocation.
  • the location-enhanced service can be provided based on the location denoted by such fresh location entry.
  • a smartphone is signed into a user account.
  • a web search is performed on the smartphone at 2:04 PM, but a GPS update cannot be received. If the last location update for the smartphone stored in the user location history is in Palo Alto, CA at 2:00 PM, then such entry can be considered as fresh and the Palo Alto, CA location can be used to provide location-enhanced web search results.
  • method (300) can proceed to (316) of FIG. 3B .
  • a plurality of entries included in the user location history can be obtained. For example, the most recent entry for each unique device identifier can be obtained. As another example, a particular number of the most recent entries regardless of device identifier can be obtained. As yet another example, a mix of entries can be obtained that includes the most recent entries in addition to at least one entry per unique device identifier.
  • Host server 202 can obtain or otherwise access the appropriate location entries from the user location history stored in database 218.
  • each of the entries obtained at (316) can be scored according to a scoring formula.
  • the scoring formula can score each entry on a number of criteria or parameters to provide a general indication of whether it is reasonable to use the location provided by the scored entry as the current location of the client device. In other words, for example, an entry that receives a higher score is more likely to provide a location that accurately corresponds to the current location of the client device.
  • the scoring formula used at (318) can provide a score to an entry based at least in part on such entry's age.
  • a more recent location entry is more likely to accurately reflect the current location of the client device while an older location entry is less likely to accurately reflect the current location of the client device.
  • an age component of the scoring formula can decay over time. For example, a location entry that is over five days old should be scored very low as it is likely stale.
  • the age component of the scoring formula does not operate in units of time but rather analyzes a position of the entry being scored within the user location history. For example, if a device identifier has four associated historical location entries, the entry in the fourth position (e.g . oldest) would receive a lower score than the entry in the first position.
  • the scoring formula used at (318) can provide a score to the entry based at least in part on a location consistency with a coarse location obtained for the client device. For example, referring to FIG. 3A , at (304) a coarse location may have been able to be obtained for the client device, but such coarse location may not have had sufficient precision to be used at (306). As an example, IP geolocation could have been performed at (304) to obtain a coarse location ( e.g. a state), but such coarse location was not sufficiently precise.
  • the scoring formula used at (318) can compare the location provided by the entry being scored with any coarse location previously determined for the client device. Matching locations will result in a higher score while contradicting locations will result in a lower score. A confidence value associated with either the coarse location or the location entry can influence the scoring formula as well. Thus, an entry that is older in time may still receive a higher score than an entry that is more recent if the older entry more accurately matches the coarse location.
  • the scoring formula used at (318) can provide a score to the entry based at least in part on a device co-location factor.
  • the device co-location factor can provide an indication of how often the client device and the device identified by the entry being scored have historically been at the same place at the same time.
  • a system implementing the present disclosure can compute a device co-location factor for each pair of device identifiers included in a user location history by comparing the historical locations and times provided by some or all entries associated with a first device identifier with the historical locations and times provided by some or all entries associated with a second device identifier.
  • the device co-location factor can be generally proportional to a number of times that the two devices have been within a threshold distance of each other within a threshold amount of time.
  • the device co-location factor for any pair of device identifiers can be computed ahead of time and stored in memory or can be computed by accessing some or all user location entries in real-time at (318).
  • the device co-location factor can provide an indication of how reasonable it is that a location entry for one device would be applied to a second device. For example, if a user carries their smartphone and tablet together a large percentage of the time, but has turned off the GPS in the smartphone to save battery life, it is likely reasonably accurate to infer the location of the tablet as the current location of the smartphone. However, if the two devices are routinely in different locations, then such inference is less likely to be accurate.
  • the scoring formula used at (318) can provide a score to the entry based at least in part on the method of geolocation by which the location provided by such entry was identifier. For example, an entry providing a location that was determined according to a more precise method of geolocation, such as, for example, GPS, can receive a higher score while an entry providing a location that was determined according to a less precise method of geolocation, such as, for example, IP geolocation or geolocation based on search string, can receive a lower score.
  • a more precise method of geolocation such as, for example, GPS
  • a less precise method of geolocation such as, for example, IP geolocation or geolocation based on search string
  • scoring parameters or attributes of a historical location entry can be analyzed by a suitable scoring formula as well.
  • scoring parameters discussed above can be considered in isolation or in other combinations and are not necessarily used at a single time to provide a single score.
  • weightings, coefficients, or other components of the scoring formula can be trained against data having a known accuracy or categorization.
  • one or more regression analyses can be performed with respect to a provided set of location data having known classifications as accurate or inaccurate.
  • the location provided by the entry that received the highest score can be selected as the current location of the client device.
  • the location-enhanced service can be provided based on the location selected at (320).
  • server processes discussed herein may be implemented using a single server or multiple servers working in combination.
  • Databases and applications may be implemented on a single system or distributed across multiple systems. Distributed components may operate sequentially or in parallel.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Telephonic Communication Services (AREA)
  • Information Transfer Between Computers (AREA)

Description

    FIELD
  • The present disclosure relates generally to providing location-enhanced services. In particular, the present disclosure relates to systems and methods for inferring a current location of a user or device based on an analysis of a user location history.
  • BACKGROUND
  • Location-enhanced services are increasingly common online tools used by many people on a daily basis. In particular, location-enhanced services use knowledge of a user's location to provide an online service in a more accurate or useful manner. For example, a search engine can use knowledge of a user's location to tailor search results to reflect the most accurate or useful information for such location. As another example, when the user's location is known, a mapping application or geographic information system can provide a superior map in response to a point of interest search or a request for directions. Therefore, knowledge of a user's location is increasingly a key factor used to provide a superior online experience across a broad range of services or tools.
  • In the context of a traditional desktop computer, methods for determining user location are fairly established and successful. For example, geolocation by analysis of internet protocol (IP) address is a common technique which yields generally useful results.
  • However, in the context of mobile computing, such as, for example, a smartphone, existing systems and methods for determining a user location are much less suitable. In particular, users of mobile computing devices have high expectations regarding the ability of the computing device and its corresponding communication system to geolocate. For example, many users of smartphones consistently employ their devices to act as navigational devices or to provide real-time, location-enhanced search results when hunting for a local point of interest, such as a restaurant, hotel, or other meeting place.
  • Some methods of geolocation for mobile computing devices are relatively precise. For example, successful use of the global positioning system or a Wi-Fi positioning system can result in a precise location for the mobile computing device. Unfortunately, such positioning systems are simply not available or operational for a large amount of time or locations. Further, geolocation by analysis of IP address is generally not as informative for mobile device carrier IPs. In addition, requiring the user to manually correct the query by appending the desired location is slow, cumbersome, and undesirable for the user.
  • The above problems result in a significant amount of time in which a precise location for a mobile computing device is not available or otherwise known. Thus, without knowledge of the device's location, service providers struggle to provide location-enhanced services, resulting in user frustration and loss of optimal functionality.
  • US2012/0009904 discloses systems, methods and computer program products for determining a location of a tracked device, particularly following a device or network failure US 2011/161485 discloses a method for monitoring multiple dynamic media streams playing concurrently on a client computer system. US 2010/287178 discloses a method for determining a user's device location based on the history of said user's previous locations.. US 2012/184287 discloses a method of determining a device's location based on the history of said device's previous locations and the history of multiple other devices' previous locations.
  • SUMMARY
  • Aspects of the present disclosure are in accordance with the subject matter of the appended claims.
  • These and other features, aspects and advantages of the present disclosure will become better understood with reference to the following description and appended claims. The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments of the present disclosure and, together with the description, serve to explain the principles of the present disclosure.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • A full and enabling description of the present disclosure, including the best mode thereof, directed to one of ordinary skill in the art, is set forth in the specification, which makes reference to the appended figures, in which:
    • FIG. 1 depicts a graphical diagram of a client device requesting and receiving a location-enhanced service from a service provider according to an example embodiment of the present disclosure;
    • FIG. 2 depicts an example system according to an example embodiment of the present disclosure; and
    • FIGS. 3A and 3B depict a flowchart of an example method for inferring a current location of a client device based on an analysis of a user location history according to an example embodiment of the present disclosure.
    DETAILED DESCRIPTION Overview
  • The present disclosure is directed to systems and methods for inferring a current location of a user or device based on an analysis of a user location history. As an example, when the current location of a device requesting a location-enhanced service cannot be determined with sufficient precision, a plurality of historical locations provided by the user location history can be scored according to a variety of parameters. The historical location receiving the highest score can be inferred to be the current location of the user.
  • More particularly, a user location history can be generated and maintained for the user. The user location history can be defined by a user account associated with the user and can store one or more entries for each instance in which a device that is signed into or otherwise associated with such user account performs an online interaction or reports its location. Each entry can describe a location and time and can provide a device identifier corresponding to the particular device used at such location and time.
  • Thus, in some embodiments, in order to obtain the benefits of the techniques described herein, the user may be required to allow the collection and analysis of personal information, such as location information or device identity information. Therefore, in some embodiments, users may be provided with an opportunity to control whether programs or features collect such information. If the user does not allow collection and use of such information, then the user may not receive the benefits of the techniques described herein. In some embodiments, the user can also be provided with tools to revoke or modify consent. In addition, certain information or data can be treated in one or more ways before it is stored or used, so that personally identifiable information is removed.
  • When a request for a location-enhanced service is received from a device signed into the user account, it can first be determined whether a current location of such device can be determined with sufficient precision. For example, a number of various geolocation techniques can be performed. Alternatively, if a location has been freshly determined for such device (e.g. within the last 5 minutes), then such freshly determined location can be used. However, if the precise location of the device cannot be determined and a fresh location is not available, then the user location history can be analyzed to assist in inferring the current location of such device.
  • In particular, a plurality of entries can be obtained from the user location history. For example, the most recent entry for each unique device identifier can be obtained. As another example, a particular number of the most recent entries regardless of device identifier can be obtained. As yet another example, a mix of entries can be obtained that includes the most recent entries in addition to at least one entry per unique device identifier.
  • Each of the obtained entries can be scored according to a scoring formula. As an example, the scoring formula can provide a score to the entry based at least in part on its age, a location consistency, and a device co-location factor. Other parameters or components can be included as well.
  • The location consistency can compare the location provided by the entry being scored to a coarse location obtained by, for example, geolocating an IP address from which the request for the location-enhanced service was received.
  • The device co-location factor can provide an indication of how often the two devices have historically been at the same place at the same time. For example, the device co-location factor can compare some or all historical locations and times associated with the device identifier provided by the entry being scored with some or all historical locations and times associated with the device identifier of the device from which the request was received.
  • Once each of the obtained entries has been scored, the location provided by the entry that received the highest score can be selected as the current location of the device from which the request was received. Such selected location can then be used to provide the requested location-enhanced service. Thus, location-enhanced services can be effectively provided even in instances in which a current location of the device is generally unobtainable with sufficient precision according to known techniques.
  • With reference now to the FIGS., example embodiments of the present disclosure will now be discussed in detail.
  • Example Location-Enhanced Service
  • FIG. 1 depicts a graphical diagram 100 of a client device 102 requesting and receiving a location-enhanced service from a service provider 104 according to an example embodiment of the present disclosure.
  • A location-enhanced service can include any service provided to a client device by host server in which knowledge of the client device's location is used to enhance or adjust one or more aspects of the provided service. Example location-enhanced services include, but are not limited to, identifying, filtering, or promoting web search results based on device location; providing location-specific maps or directions; identifying, filtering, or promoting point of interest search results in a mapping application or geographic information system based on device location; identifying, filtering, or promoting content or advertisements based on device location; providing personal assistant functionality by organizing and selecting for presentation information available from a range of data sources based on device location; modifying operations of an arbitrary web-service based on device location; or any other suitable location-enhanced service, including aspects of web-based email, social networking, news or other content aggregation, or other suitable services or products.
  • As shown in FIG. 1, example client device 102 has been used to sign into a user account ("User123"). As used herein, a user account can be any account or means of identification that is associated with a user of one or more services. Example user accounts include an operating system account; an account used for purchasing and ownership of content from a content distribution platform; a web-based email account; a social media account; a financial services account; a game account; an application-specific account (e.g. a news aggregator account or an internet-radio application account); or any other suitable user account.
  • In one implementation, service provider 104 offers several of the services discussed above (e.g. web-based email, social media, gaming, and content distribution) and a single user account can be used to participate in, receive, or otherwise control aspects of each of such services from service provider 104.
  • As an example, as shown in FIG. 1, example client device 102 can implement an application module to operate a mapping application. In particular, the user has entered a point of interest search query of "bike repair." By pressing or selecting an "Enter" key, a "Go" icon, or the magnifying glass icon the user can send the search query to service provider 104.
  • Thus, client device 102 can request a service from service provider 104 (e.g. a point of interest search in a mapping application). Further, the requested service could be enhanced using knowledge of current location of client device 102. In particular, by identifying and presenting point of interest search results in a general vicinity of a current location of the client device 102, the point of interest search service can be improved.
  • However, as an example, assume that the entered search query has not provided any information to determine a desired location of the point of interest. Furthermore, the current viewpoint provided by the mapping application is significantly broad such that a desired location of the point of interest cannot be inferred from such viewpoint.
  • Further assume for the purposes of the present example that a current location of client device 102 cannot be determined with sufficient precision. For example, the request for the location-enhanced service can fail to identify the current location of client device 102 and other geolocation techniques such as GPS or WiFi positioning can be unavailable.
  • According to aspects of the present disclosure, service provider 104 can analyze a user location history 108 associated with User123 to infer the current location of the client device 102. Service provider 104 can then use such inferred current location in conjunction with service functionality 106 to provide the location-enhanced service to client device 102.
  • In particular, as shown in FIG. 1, although the current location of client device 102 was unable to be determined with sufficient precision using traditional geolocation techniques such as GPS, the location-enhanced service (e.g. location-specific point of interest search results) was still able to be provided to client device 102 by service provider 104.
  • Example Systems
  • FIG. 2 depicts an example system 200 according to an example embodiment of the present disclosure. System 200 can include a client-server architecture, where a host server 202 communicates with one or more client devices 204, 206, and 208 over a network 210. Although three client devices 204, 206, and 208 are illustrated in FIG. 2, any number of client devices can be connected to host server 202 over network 210.
  • Client devices 204, 206, and 208 can be, for example, a computing device having a processor 230 and a memory 232, such as a wireless mobile device, a personal digital assistant (PDA), smartphone, tablet, navigation system located in a vehicle, handheld GPS system, laptop computer, desktop computer, computing-enabled watch, computing-enabled eyeglasses, gaming console, embedded computing system, home appliances, or other such devices/systems. In short, client device 204 can be any computer, device, or system that can interact with the host server system 202 (sending and receiving data).
  • Processor 230 of client device 204 can be any suitable processing device and can be one processor or a plurality of processors that are operably connected. Memory 232 can include any number of computer-readable instructions or other stored data. In particular, memory 232 can include, store, or provide one or more application modules 234. When implemented by processor 230, application modules 234 can respectively cause or instruct processor 230 to perform operations consistent with the present disclosure, such as, for example, running an application that transmits location data to host server 202 in addition to performing any number of arbitrary operations. Application modules 234 can include, for example, a mapping application or a browser application.
  • The term "module" refers to computer logic utilized to provide desired functionality. Thus, a module can be implemented in hardware, firmware and/or software controlling a general purpose processor. In one embodiment, the modules are program code files stored on the storage device, loaded into memory and executed by a processor or can be provided from computer program products, for example, computer executable instructions that are stored in a tangible computer-readable storage medium such as RAM hard disk or optical or magnetic media.
  • Client device 204 can further include a positioning system 238. Positioning system 238 can determine a current geographic location of client device 204 and communicate such geographic location to host server 202 over network 210. The positioning system 238 can be any device or circuitry for analyzing the position of the client device 204. For example, the positioning system 238 can determine actual or relative position by using a satellite navigation positioning system (e.g. a GPS system, a Galileo positioning system, the GLObal Navigation satellite system (GLONASS), the BeiDou Satellite Navigation and Positioning system), an inertial navigation system, a dead reckoning system, based on IP address, by using triangulation and/or proximity to cellular towers or WiFi hotspots, and/or other suitable techniques for determining position.
  • In the instance in which the user consents to the use of positional or location data, the positioning system 238 can analyze the position of the client device 204 as the user moves around in the world and provides the user location information to the host server 202 over network 210. As will be discussed further later, each of such location updates can be used to build a user location history for a user account associated with client device 204.
  • Client device 204 can further include a network interface 240. Network interface 240 can include any suitable components for interfacing with one more networks, including for example, transmitters, receivers, ports, controllers, antennas, or other suitable components.
  • Host server 202 can be implemented using one or more suitable computing devices and can include a processor 212 and a memory 214. In the instance in which host server 202 is implemented using a plurality of computing devices, such devices can be configured according to a parallel computing architecture, a sequential computing architecture, or a combination of such architectures.
  • Processor 212 can be any suitable processing device and can be one processor or a plurality of processors which are operably connected. Memory 214 can store instructions 216 that cause processor 212 to perform operations to implement the present disclosure. Host server can communicate with client device 204 over network 210 by sending and receiving data.
  • Network 210 can be any type of communications network, such as a local area network (e.g., intranet), wide area network (e.g., Internet), or some combination thereof and can include any number of wired or wireless links. In general, communication between the host server 202 and a client device 204 can be carried via any type of wired and/or wireless connection, using a wide variety of communication protocols (e.g., TCP/IP, HTTP, SMTP, FTP), encodings or formats (e.g., HTML, XML), and/or protection schemes (e.g., VPN, secure HTTP, SSL). Preferably, however, client device 204 can freely move throughout the world and communicate with host server 202 is a wireless fashion.
  • Host server 202 can be coupled to or in communication with one or more databases, including a database providing an index of user location histories 218, a geographic information system 220, and external content 222. Although databases 218, 220, and 222 are depicted in FIG. 2 as external to host server 202, one or more of such databases can be included in memory 214 of host server 202. Further, databases 218, 220, and 222 can each correspond to a plurality of databases rather than a single data source.
  • According to an aspect of the present disclosure, user location histories database 218 can store or provide a plurality of user location histories respectively associated with a plurality of user accounts.
  • In particular, when a user elects to participate and has signed into her user account with respect to one or more of client devices 204, 206, and 208, then such client device can periodically send a location update to host server 202 over network 210. For example, each location update can identify the presently active user account and a unique device identifier that corresponds to the device providing the update. Each location update can further include a location (e.g. latitude and longitude) and a timestamp identifying the date and time of day. In some implementations, location updates can further include an accuracy indicator and/or other identifying information such as an originating IP address.
  • Thus, in some embodiments, in order to obtain the benefits of the techniques described herein, the user may be required to allow the collection and analysis of personal information, such as location information or device identity information. Therefore, in some embodiments, users may be provided with an opportunity to control whether programs or features collect such information. If the user does not allow collection and use of such information, then the user may not receive the benefits of the techniques described herein. In some embodiments, the user can also be provided with tools to revoke or modify consent. In addition, certain information or data can be treated in one or more ways before it is stored or used, so that personally identifiable information is removed.
  • The device identifiers used in the user location histories can be any suitable means of identifying particular client devices. For example, example device identifiers include, but are not limited to, manufacturer serial number; MAC address; a device platform string (e.g. Operating System/Device Manufacturer/Device Model/Operational Parameters); IP address; an ID code provided from device memory; or any other suitable device identifier.
  • Additional information can be used to build or supplement a user location history as well. As an example, whenever a user is logged into a user account and performs a web search or uses one or more applications, such as a mapping application, it is possible that such interaction can result in obtaining the user's location. Therefore, an entry identifying such location can be formed in the associated user location history based on such interaction.
  • All received location updates are stored and keyed by user account so that a user location history is built over time. Thus, in some embodiments, the user location history for each user account can consist of an encrypted set of location history entries. The set of location history entries for each user location history can be sorted by device identifier and other parameters.
  • As user location histories can include a large amount of data over time, in some embodiments, a sub-history can be maintained for each user location history in some implementations. The sub-history can provide the single most recent location per each device or device identifier.
  • Geographic information system 220 can store or provide geospatial data to be used by host server 202. Example geospatial data includes geographic imagery (e.g., digital maps, satellite images, aerial photographs, street-level photographs, synthetic models, etc.), tables, vector data (e.g. vector representations of roads, parcels, buildings, etc.), point of interest data, or other suitable geospatial data. Geographic information system 220 can be used by host server 202 to provide navigational directions, perform location-specific point of interest searches, or any other suitable use or task required or beneficial for providing location-enhanced services.
  • Computer based system 200 can further include external content 222. External content 222 can be any form of external content including news articles, webpages, video files, audio files, written descriptions, ratings, game content, social media content, photographs, commercial offers, or other suitable external content. Host server system 202 and client device 204 can access external content 222 over network 210. External content 222 can be searched by host server 202 according to known searching methods and can be ranked according to relevance, popularity, or other suitable attributes, including location-specific filtering or promotion.
  • Example Methods
  • FIGS. 3A and 3B depict a flowchart of an example method (300) for inferring a current location of a client device based on an analysis of a user location history according to an example embodiment of the present disclosure.
  • While example method (300) will be discussed with reference to the system 200 of FIG. 2, method (300) can be implemented using any suitable computing system. In addition, although FIGS. 3A and 3B depict steps performed in a particular order for purposes of illustration and discussion, methods of the present disclosure are not limited to such particular order or arrangement. Various steps of the method (300) can be omitted, rearranged, combined, and/or adapted in various ways without deviating from the scope of the present disclosure.
  • Referring to FIG. 3A, at (302) a request for a service can be received from a client device. For example, host server can receive a request from client device 204 to provide point of interest search results in a mapping application. However, a desired location to search for points of interest may be ambiguous.
  • At (304) it is determined whether the current location of the client device is able to be determined with sufficient precision. As an example, positioning system 238 of client device 204 can operate to provide geolocation of client device 204 according to any known techniques, such as GPS. However, in some instances such geolocation techniques may not be available or otherwise fail to identify a particular location with sufficient precision.
  • As another example, the request received at (302) can include or otherwise be associated with an originating IP address. Geolocation based on such IP address can often be used to provide a general location for the client device. In addition, a confidence percentage can be obtained or computed.
  • If the current location of the client device is able to be determined with sufficient precision at (314), then method (300) can proceed to (306) and perform the requested location-enhanced service based on such determined current location of the client device. For example, host server 202 can utilize geographic information system 220 to provide location-specific point of interest search results.
  • However, if it is determined at (304) that the current location of the client device cannot be determined with sufficient precision, the method (300) can proceed to (308).
  • At (308) it can be determined whether the client device is currently signed into or otherwise presently associated with a user account. For example, session cookies or other indicators can be analyzed to determine and identify a presently active user account.
  • If it is determined at (308) that the client device is not currently signed into a user account, then at (310) the service can be provided without location-enhancements. For example, host server 202 might provide location-agnostic search results or might request a further narrowing of the target search location.
  • However, if it is determined at (308) that the client device is currently logged into an identifiable user account, then method (300) can proceed at (312).
  • At (312) it is determined whether a fresh location entry exists for the client device from which the request was received at (302). For example, host server 202 can analyze a user location history associated with the user account identified at (308) to obtain and analyze the most recent location entry associated with such client device (e.g. the most recent entry providing the device identifier associated with the client device from which the request was received at (302)).
  • Generally, the most recent entry for the client device will be considered fresh if it is within a threshold time from the current time. Thus, at (312) it can be determined that the most recent entry associated with the client device is fresh if it is less than, for example, five minutes old. However, other indicators of suitability can be analyzed in addition or alternatively to age, such as a confidence score or other metrics, including a comparison to a coarse location provided by IP geolocation.
  • If it is determined at (312) that a fresh entry exists for the client device, then at (314) the location-enhanced service can be provided based on the location denoted by such fresh location entry.
  • As an example, assume a smartphone is signed into a user account. A web search is performed on the smartphone at 2:04 PM, but a GPS update cannot be received. If the last location update for the smartphone stored in the user location history is in Palo Alto, CA at 2:00 PM, then such entry can be considered as fresh and the Palo Alto, CA location can be used to provide location-enhanced web search results.
  • However, if it is determined at (314) that a fresh location entry is not available for the client device, then method (300) can proceed to (316) of FIG. 3B.
  • Referring now to FIG. 3B, at (316) a plurality of entries included in the user location history can be obtained. For example, the most recent entry for each unique device identifier can be obtained. As another example, a particular number of the most recent entries regardless of device identifier can be obtained. As yet another example, a mix of entries can be obtained that includes the most recent entries in addition to at least one entry per unique device identifier. Host server 202 can obtain or otherwise access the appropriate location entries from the user location history stored in database 218.
  • At (318) each of the entries obtained at (316) can be scored according to a scoring formula. The scoring formula can score each entry on a number of criteria or parameters to provide a general indication of whether it is reasonable to use the location provided by the scored entry as the current location of the client device. In other words, for example, an entry that receives a higher score is more likely to provide a location that accurately corresponds to the current location of the client device.
  • As an example, the scoring formula used at (318) can provide a score to an entry based at least in part on such entry's age. A more recent location entry is more likely to accurately reflect the current location of the client device while an older location entry is less likely to accurately reflect the current location of the client device. Thus, for example, an age component of the scoring formula can decay over time. For example, a location entry that is over five days old should be scored very low as it is likely stale.
  • In other implementations, the age component of the scoring formula does not operate in units of time but rather analyzes a position of the entry being scored within the user location history. For example, if a device identifier has four associated historical location entries, the entry in the fourth position (e.g. oldest) would receive a lower score than the entry in the first position.
  • As another example, the scoring formula used at (318) can provide a score to the entry based at least in part on a location consistency with a coarse location obtained for the client device. For example, referring to FIG. 3A, at (304) a coarse location may have been able to be obtained for the client device, but such coarse location may not have had sufficient precision to be used at (306). As an example, IP geolocation could have been performed at (304) to obtain a coarse location (e.g. a state), but such coarse location was not sufficiently precise.
  • Thus, the scoring formula used at (318) can compare the location provided by the entry being scored with any coarse location previously determined for the client device. Matching locations will result in a higher score while contradicting locations will result in a lower score. A confidence value associated with either the coarse location or the location entry can influence the scoring formula as well. Thus, an entry that is older in time may still receive a higher score than an entry that is more recent if the older entry more accurately matches the coarse location.
  • As yet another example, the scoring formula used at (318) can provide a score to the entry based at least in part on a device co-location factor. In particular, the device co-location factor can provide an indication of how often the client device and the device identified by the entry being scored have historically been at the same place at the same time.
  • For example, a system implementing the present disclosure can compute a device co-location factor for each pair of device identifiers included in a user location history by comparing the historical locations and times provided by some or all entries associated with a first device identifier with the historical locations and times provided by some or all entries associated with a second device identifier. In one implementation, the device co-location factor can be generally proportional to a number of times that the two devices have been within a threshold distance of each other within a threshold amount of time. The device co-location factor for any pair of device identifiers can be computed ahead of time and stored in memory or can be computed by accessing some or all user location entries in real-time at (318).
  • If a user typically carries the first device and the second device together it is more reasonable to infer the location of the second device based on a historical location of the first device. Thus, the device co-location factor can provide an indication of how reasonable it is that a location entry for one device would be applied to a second device. For example, if a user carries their smartphone and tablet together a large percentage of the time, but has turned off the GPS in the smartphone to save battery life, it is likely reasonably accurate to infer the location of the tablet as the current location of the smartphone. However, if the two devices are routinely in different locations, then such inference is less likely to be accurate.
  • As another example, the scoring formula used at (318) can provide a score to the entry based at least in part on the method of geolocation by which the location provided by such entry was identifier. For example, an entry providing a location that was determined according to a more precise method of geolocation, such as, for example, GPS, can receive a higher score while an entry providing a location that was determined according to a less precise method of geolocation, such as, for example, IP geolocation or geolocation based on search string, can receive a lower score.
  • Other parameters or attributes of a historical location entry can be analyzed by a suitable scoring formula as well. In addition, the scoring parameters discussed above can be considered in isolation or in other combinations and are not necessarily used at a single time to provide a single score.
  • Furthermore, weightings, coefficients, or other components of the scoring formula can be trained against data having a known accuracy or categorization. As an example, one or more regression analyses can be performed with respect to a provided set of location data having known classifications as accurate or inaccurate.
  • After each of the obtained entries has been scored according to the scoring formula at (318), at (320) the location provided by the entry that received the highest score can be selected as the current location of the client device. At (322) the location-enhanced service can be provided based on the location selected at (320).
  • Thus, historical locations included in a user location history can be scored according to a scoring formula designed to identify the most appropriate replacement for an unknown or imprecise position of a client device. Therefore, a service provider will be able to routinely provide location-enhanced services despite being unable to determine a precise location of the client device using traditional geolocation techniques.
  • The technology discussed herein makes reference to servers, databases, software applications, and other computer-based systems, as well as actions taken and information sent to and from such systems. The inherent flexibility of computer-based systems allows for a great variety of possible configurations, combinations, and divisions of tasks and functionality between and among components. For instance, server processes discussed herein may be implemented using a single server or multiple servers working in combination. Databases and applications may be implemented on a single system or distributed across multiple systems. Distributed components may operate sequentially or in parallel.
  • Although the invention has been explained in relation to its preferred embodiment(s) as mentioned above, it is to be understood that many other possible modifications and variations can be made without departing from the scope of the present invention, which is defined by the claims.

Claims (14)

  1. A computer-implemented method for determining a current location of a client device, wherein a first device identifier is associated with the client device, the method comprising:
    receiving (302), by one or more computing devices, a request for a location-enhanced service from the client device;
    obtaining, by the one or more computing devices, a user location history having a plurality of entries, each entry identifying a location, a time, and one of a plurality of device identifiers for devices which are, at a current time, signed into or otherwise associated with an account of the user;
    determining, (312) by the one or more computing devices, whether the time of the most recent entry that identifies the first identifier is within a threshold time from the current time;
    when the time of the most recent entry that identifies the first identifier is within the threshold time from the current time, selecting, by the one or more computing devices as the current location of the client device, the location of the most recent entry that identifies the first identifier;
    when the time of the most recent entry that identifies the first identifier is not within the threshold time from the current time:
    identifying, by the one or more computing devices for each of the plurality of device identifiers, the entry having the most recent time;
    determining, (318) by the one or more computing devices, a score for each of the identified entries using a scoring formula; and
    selecting, (320) by the one or more computing devices, the location of the entry having the highest score as the current location of the client device; using, (322) by the one or more computing devices, the selected location to provide the location-enhanced service to the client device.
  2. The computer-implemented method of claim 1, wherein the scoring formula computes the score for each obtained entry based at least in part on an age of the entry, a location consistency, and a device co-location factor.
  3. The computer-implemented method of claim 2, wherein the location consistency compares the location provided by the entry being scored with a coarse location associated with the client device.
  4. The computer-implemented method of claim 3, wherein the coarse location associated with the client device is obtained by geolocation of an internet protocol address associated with the request received from the client device.
  5. The computer-implemented method of claim 2, wherein the device co-location factor compares a first device location history associated with the device identifier provided by the entry being scored with a second device location history associated with the client device.
  6. The computer-implemented method of claim 5, wherein the first device location history comprises the plurality of locations respectively provided by the plurality of entries that identify the device identifier provided by the entry being scored; and / or.
    wherein the second device location history comprises the plurality of locations respectively provided by the plurality of entries that identify a first device identifier associated with the client device.
  7. One or more server computing devices comprising:
    one or more processors;
    one or more non-transitory computer-readable media storing instructions that, when executed by the one or more processors, cause the one or more server computing devices to perform a method according to any one of the preceding claims.
  8. The one or more server computing devices of claim 7, wherein the scoring formula computes the score for each of the entries based at least in part on an age of the entry;
    and / or wherein the scoring formula computes the score for each of the entries based at least in part on a device co-location factor describing a relative amount of time for which the device associated with the entry being scored is within a threshold distance from the first device;
    and / or wherein the operations further comprise providing one or more location-enhanced services based at least in part on the selected current location.
  9. The one or more server computing devices of claim 7, wherein the scoring formula computes the score for each of the entries based at least in part on a location consistency associated with the entry, the location consistency describing a consistency between the location provided by the entry being scored and a coarse location associated with the first device.
  10. The one or more server computing devices of claim 9, wherein the coarse location is derived from an IP address associated with the communication from the first device.
  11. One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause the one or more server processors to perform a method according to any one of claims 1 to 6.
  12. The one or more non-transitory computer-readable media of claim 11, wherein the operations further comprise:
    prior to determining the score for each of the plurality of candidate locations, receiving a request for a location-enhanced service from the client device; and
    after selecting the candidate location having the highest score as the current location of the client device, providing the location-enhanced service to the client device based at least in part on the current location of the client device.
  13. The one or more non-transitory computer-readable media of claim 11, wherein the plurality of candidate locations respectively associated with the plurality of device identifiers associated with the user account are respectively specified by a plurality of entries in a user location history associated with the user account;
    and optionally wherein the plurality of entries in the user location history comprise a most recent entry associated with each of the plurality of device identifiers.
  14. The one or more non-transitory computer-readable media of claim 11, wherein the co-location factor exhibited between the pair of device location histories respectively associated with the client device and the device identifier associated with the candidate location being scored describes an amount of time for which the client device and the device identified by the device identifier associated with the candidate location being scored are located within a threshold distance from each other.
EP14748356.4A 2013-07-30 2014-07-15 Inferring a current location based on a user location history Active EP3028105B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201361860143P 2013-07-30 2013-07-30
PCT/US2014/046589 WO2015017115A2 (en) 2013-07-30 2014-07-15 Inferring a current location based on a user location history

Publications (3)

Publication Number Publication Date
EP3028105A2 EP3028105A2 (en) 2016-06-08
EP3028105A4 EP3028105A4 (en) 2017-04-19
EP3028105B1 true EP3028105B1 (en) 2018-10-10

Family

ID=51298961

Family Applications (1)

Application Number Title Priority Date Filing Date
EP14748356.4A Active EP3028105B1 (en) 2013-07-30 2014-07-15 Inferring a current location based on a user location history

Country Status (4)

Country Link
US (1) US9420426B2 (en)
EP (1) EP3028105B1 (en)
DE (1) DE202014010941U1 (en)
WO (1) WO2015017115A2 (en)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9800686B2 (en) * 2014-01-31 2017-10-24 Aruba Networks, Inc. Determining packet priority based on a location associated with a client device
US10922712B1 (en) * 2014-09-29 2021-02-16 Groupon, Inc. System and method for generating geographic zone information for consumers
US20160149775A1 (en) * 2014-11-23 2016-05-26 Dennis Cheung Determining physical location of a networked computing device
EP3030020B1 (en) * 2014-12-01 2020-01-08 Viavi Solutions UK Limited Providing streaming geolocation infomation
US10909464B2 (en) 2015-04-29 2021-02-02 Microsoft Technology Licensing, Llc Semantic locations prediction
US20160328197A1 (en) * 2015-05-04 2016-11-10 GM Global Technology Operations LLC Vehicle data enforcement and contextual interference module for in-vehicle app development
RU2609082C2 (en) * 2015-06-30 2017-01-30 Общество С Ограниченной Ответственностью "Яндекс" Method and system for determining address corresponding to most probable physical position of electronic device associated with user
US9641489B1 (en) * 2015-09-30 2017-05-02 EMC IP Holding Company Fraud detection
US10769665B2 (en) * 2016-12-05 2020-09-08 Comscore, Inc. Systems and methods for transmitting content based on co-location
US10257656B2 (en) 2017-03-20 2019-04-09 Google Llc Systems and methods of improving stability of a displayed user location using recent location history
US10579322B1 (en) * 2017-05-22 2020-03-03 Parallels International Gmbh Connecting to remote access session based on proximity of mobile device
EP3586552B1 (en) * 2017-11-06 2022-03-30 Google LLC Evaluating ip location accuracy on a mobile device
US20190197863A1 (en) * 2017-12-21 2019-06-27 Frank Kao WareAbouts: Proactive Care System through Enhanced Awareness
US11178156B2 (en) 2018-07-27 2021-11-16 Verizon Patent And Licensing Inc. Methods and systems for authenticating a reported geolocation of a mobile device
EP3868135A1 (en) * 2018-11-19 2021-08-25 Microsoft Technology Licensing, LLC Saving battery life using an inferred location
CN115643430A (en) * 2022-10-10 2023-01-24 深圳锋芒信息技术有限公司 Playing method, device and equipment of self-adaptive playing source and storage medium

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8559968B2 (en) * 2006-05-12 2013-10-15 At&T Intellectual Property I, L.P. Location-based targeting
US20100287178A1 (en) 2009-05-08 2010-11-11 Google Inc. Refining location estimates and reverse geocoding based on a user profile
US8521680B2 (en) * 2009-07-31 2013-08-27 Microsoft Corporation Inferring user-specific location semantics from user data
US8825375B2 (en) 2009-09-29 2014-09-02 Apple Inc. Snap-to-road using wireless access point data
US8301364B2 (en) 2010-01-27 2012-10-30 Navteq B.V. Method of operating a navigation system to provide geographic location information
US8301639B1 (en) 2010-01-29 2012-10-30 Google Inc. Location based query suggestion
US8700052B2 (en) * 2010-07-07 2014-04-15 At&T Intellectual Property I, L.P. Systems, methods, and computer program products for determining a location of a tracked device after a device or network failure
US8634849B2 (en) * 2011-01-19 2014-01-21 Qualcomm Incorporated Methods and apparatus for mobile device based location determination in a communications system
US20140045523A1 (en) * 2011-02-03 2014-02-13 Endrelia Technologies Inc. Methods and apparatus for tracking location of portable electronic device
US20130185355A1 (en) 2011-08-04 2013-07-18 Erick Tseng Recommendations Based On Geolocation
US20130267251A1 (en) * 2012-04-10 2013-10-10 Qualcomm Incorporated Personalized position using information correlation and self-sourcing
US9635116B2 (en) * 2013-04-26 2017-04-25 Linkedin Corporation Techniques for inferring a location

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
None *

Also Published As

Publication number Publication date
WO2015017115A3 (en) 2015-11-19
EP3028105A2 (en) 2016-06-08
US20150038162A1 (en) 2015-02-05
DE202014010941U1 (en) 2017-01-24
WO2015017115A2 (en) 2015-02-05
EP3028105A4 (en) 2017-04-19
US9420426B2 (en) 2016-08-16

Similar Documents

Publication Publication Date Title
EP3028105B1 (en) Inferring a current location based on a user location history
US9747304B2 (en) Approximating a user location
US10094678B2 (en) Systems and methods for initiating mapping exit routines and rating highway exits
US20150330800A1 (en) Systems and Methods for Personalized Multi-Destination Trip Planning
EP2993921B1 (en) Service processing method based on location information
AU2012339408B2 (en) Method and server for searching for nearby user in social network
US20130346396A1 (en) Automatically updating a query
WO2019061656A1 (en) Electronic apparatus, service place recommendation method based on lbs data, and storage medium
US10346495B2 (en) System and method for large scale crowdsourcing of map data cleanup and correction
WO2012159093A2 (en) Discovering nearby places based on automatic query
US9234763B1 (en) Systems and methods for identifying and selecting personalized waypoints for presentation on a map
CN104396322A (en) Method and apparatus for determining locations of access points
US9640074B2 (en) Permissions-based tracking of vehicle positions and arrival times
US10602315B2 (en) System and method for providing a platform for creating, browsing and searching a journal of activities of a user
US9817907B1 (en) Using place of accommodation as a signal for ranking reviews and point of interest search results
US9787557B2 (en) Determining semantic place names from location reports
US20150242868A1 (en) Method and apparatus for causing a recommendation of a point of interest
US11785534B2 (en) Provisioning services based on geolocation data and activity recognition
US20190170851A1 (en) Systems and Methods for Beacon Device Fleet Management
RU2767958C2 (en) Method and system for determining fact of user visiting a point of interest
JP6389583B1 (en) Behavior index evaluation system, behavior index evaluation method, and program
AU2017366668B2 (en) On-demand location visit conversion metrics
EP3483824A1 (en) On-demand location visit conversion metrics
Akşehir et al. A New Hybrid Method for Indoor Positioning
Niu et al. Implementation and evaluation of cloud-based integration framework for indoor location

Legal Events

Date Code Title Description
REG Reference to a national code

Ref country code: DE

Ref legal event code: R138

Ref document number: 202014010941

Country of ref document: DE

Free format text: GERMAN DOCUMENT NUMBER IS 602014033823

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20160209

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

AX Request for extension of the european patent

Extension state: BA ME

DAX Request for extension of the european patent (deleted)
A4 Supplementary search report drawn up and despatched

Effective date: 20170321

RIC1 Information provided on ipc code assigned before grant

Ipc: G05D 1/02 20060101AFI20170315BHEP

Ipc: H04W 4/02 20090101ALI20170315BHEP

Ipc: G06F 17/10 20060101ALI20170315BHEP

Ipc: H04L 29/08 20060101ALI20170315BHEP

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: GOOGLE LLC

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: GRANT OF PATENT IS INTENDED

RIC1 Information provided on ipc code assigned before grant

Ipc: H04W 4/02 20090101ALI20180313BHEP

Ipc: G05D 1/02 20060101AFI20180313BHEP

Ipc: H04W 4/029 20180101ALI20180313BHEP

Ipc: H04L 29/08 20060101ALI20180313BHEP

Ipc: G06F 17/10 20060101ALI20180313BHEP

INTG Intention to grant announced

Effective date: 20180409

GRAJ Information related to disapproval of communication of intention to grant by the applicant or resumption of examination proceedings by the epo deleted

Free format text: ORIGINAL CODE: EPIDOSDIGR1

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

GRAR Information related to intention to grant a patent recorded

Free format text: ORIGINAL CODE: EPIDOSNIGR71

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: GRANT OF PATENT IS INTENDED

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE PATENT HAS BEEN GRANTED

INTC Intention to grant announced (deleted)
AK Designated contracting states

Kind code of ref document: B1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

INTG Intention to grant announced

Effective date: 20180903

REG Reference to a national code

Ref country code: GB

Ref legal event code: FG4D

REG Reference to a national code

Ref country code: CH

Ref legal event code: EP

Ref country code: AT

Ref legal event code: REF

Ref document number: 1051978

Country of ref document: AT

Kind code of ref document: T

Effective date: 20181015

REG Reference to a national code

Ref country code: IE

Ref legal event code: FG4D

REG Reference to a national code

Ref country code: DE

Ref legal event code: R096

Ref document number: 602014033823

Country of ref document: DE

REG Reference to a national code

Ref country code: NL

Ref legal event code: MP

Effective date: 20181010

REG Reference to a national code

Ref country code: LT

Ref legal event code: MG4D

REG Reference to a national code

Ref country code: AT

Ref legal event code: MK05

Ref document number: 1051978

Country of ref document: AT

Kind code of ref document: T

Effective date: 20181010

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: NL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181010

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: ES

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181010

Ref country code: AT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181010

Ref country code: PL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181010

Ref country code: HR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181010

Ref country code: LV

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181010

Ref country code: IS

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20190210

Ref country code: FI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181010

Ref country code: BG

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20190110

Ref country code: LT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181010

Ref country code: NO

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20190110

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: RS

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181010

Ref country code: GR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20190111

Ref country code: PT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20190210

Ref country code: AL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181010

Ref country code: SE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181010

REG Reference to a national code

Ref country code: DE

Ref legal event code: R097

Ref document number: 602014033823

Country of ref document: DE

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: DK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181010

Ref country code: CZ

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181010

Ref country code: IT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181010

PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: SK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181010

Ref country code: EE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181010

Ref country code: SM

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181010

Ref country code: RO

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181010

26N No opposition filed

Effective date: 20190711

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: SI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181010

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: MC

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181010

REG Reference to a national code

Ref country code: CH

Ref legal event code: PL

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: TR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181010

REG Reference to a national code

Ref country code: BE

Ref legal event code: MM

Effective date: 20190731

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: CH

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20190731

Ref country code: LI

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20190731

Ref country code: LU

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20190715

Ref country code: BE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20190731

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: IE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20190715

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: CY

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181010

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: HU

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT; INVALID AB INITIO

Effective date: 20140715

Ref country code: MT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181010

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: MK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181010

P01 Opt-out of the competence of the unified patent court (upc) registered

Effective date: 20230506

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: GB

Payment date: 20230727

Year of fee payment: 10

REG Reference to a national code

Ref country code: DE

Ref legal event code: R079

Ref document number: 602014033823

Country of ref document: DE

Free format text: PREVIOUS MAIN CLASS: G05D0001020000

Ipc: G05D0001430000

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: FR

Payment date: 20230725

Year of fee payment: 10

Ref country code: DE

Payment date: 20230727

Year of fee payment: 10