TECHNICAL FIELD

This document describes techniques for determining geolocations of the origins of data messages

BACKGROUND

In computing, geolocation includes techniques for determining geographic position of clients connected to a network and transmitting data. When clients send data, they often do not explicitly provide their geographic location in their messages and other clients on the network can use one or more processes or services to attempt to determine the geographic location of the client.

SUMMARY

Geolocation techniques are often error prone, not repeatable, and do not always identify the party of interest (e.g., they may identify locations of devices without identifying that a single user or application is using both devices at different times and in different places.) This document describes technology that is capable of ingesting this unreliable geolocation data and of producing more reliable geolocation data that is connected with resolved identities or entities and real-world, also known as logistic, addresses such as street addresses, building identifiers, geographic shapes or features, or trade zones.

Broadly speaking, this technology collects data about messages from the same party, or resolved identity or entity, referred to throughout this application as a digital household, and performs operations to harvest reliable geolocation data from the unreliable geolocation data. This is done by mapping message geolocation to geographic area, finding statistical patterns that indicate locations of regular communication, and finding corresponding real-world locations with those regular communication while excluding outlier locations.

A system of one or more computers can be configured to perform particular operations or actions by virtue of having software, firmware, hardware, or a combination of them installed on the system that in operation causes or cause the system to perform the actions. One or more computer programs can be configured to perform particular operations or actions by virtue of including instructions that, when executed by data processing apparatus, cause the apparatus to perform the actions. One general aspect includes a method of determining reliable location data using messages with unreliable location data. The method includes determining, for each of a plurality of logistic addresses using a representative point of the logistic address, a logistic-geohash that may include a first plurality of digits, the digits being arranged in sequence identifying progressively more granular geographic areas. The method also includes accessing records of data messages, each data message including a geographic locator and a sender-identifier. The method also includes for each sender-identifier determining one or more geogroups, each geogroup identifying data messages originating near each other geographically. The method also includes for each geogroup:determining a representative point of the geogroup to represent the geogroup. The method also includes determining, using the representative point of the geogroup, a geogroup-geohash that may include a second plurality of digits, the digits being arranged in sequence identifying progressively more granular geographic areas identifying pairs of geogroup:logistic address based on a matching of at least some of the first plurality of digits and some of the second plurality of digits. The method also includes for each pair of geogroup:logistic address, determining a distance between the representative point of the geogroup and the representative point of the logistic address. The method also includes selecting one or more of the geogroup:logistic address pairs. The method also includes and storing in computer memory, for later access, the selected geogroup:logistic address pairs as representing a logistic location of the sender-identifier of the messages of the geogroup. Other embodiments of this aspect include corresponding computer systems, apparatus, and computer programs recorded on one or more computer storage devices, each configured to perform the actions of the methods.

Implementations may include one or more of the following features. The sender-identifier is one of the group may include internet protocol (ip) address, digital household identifier, and user identifier. Determining the geogroups may include identifying connected components in a graph created using geographic locators as vertices and distances between geographic locators as edges. The graph is assembled using only geographic locators within a threshold distance of a landmark. Determining the geogroups may include identifying clusters using a clustering analysis. The representative points of geogroups are centroids of a shape containing the geographic locators of the corresponding identified data messages. The centroids are found using a marginal median analysis. The logistic address is one of the group may include a mailing address, a building identifier, and a land parcel identifier. Identifying pairs of geogroup:logistic address based on a matching of at least some of the first plurality of digits and some of the second plurality of digits may include: generating a result table by joining a first table and a second table on n most significant digits in geohashes, the geohashes may include more than n digits; the first data table may include entries that each record at least a logistic address and an associated logistic-geohash; and the second data table may include entries that each record at least a geogroup identifier and an associated geogroup-geohash. The method may include initiating a computational process for a user associated with a particular sender-identifier using at least one of the selected geogroup:logistic address pairs as representing a logistic location of the sender-identifier of the messages of the geogroup. Implementations of the described techniques may include hardware, a method or process, or computer software on a computer-accessible medium.

In this document, technology is described that improves the operations of a computer as a machine. This technology can allow for higher precision data to be harvested even when input data is, due to technical limitations, inconsistent, error prone, and unreliable. This technology can advantageously apply geolocation to a resolved identity or entity (e.g., a digital household or user) that is more meaningful than just a single client or simple internet protocol (IP) address. As such, this technology can be used to perform computing operations that rely on geolocation with greater accuracy and confidence. In one example, advertising utility may be increased because the technology can be used to prune out ads for a user that are not geographically relevant. In one example, a user may send a request from a restaurant but, due to technical limitations, that message may be geolocated to a different location in a book store. This technology can advantageously allow the service of an ad relevant to the restaurant, where ad service without this technology may instead offer an ad related to book stores which would have lower salience for the user. In another example, computer security can be improved. Accurate geolocation of a digital household can allow a location-restricted service to be provided even in light of erroneous geolocation data of a particular message due to technological limitations. In one example, a user may sign up for a media streaming service that is limited to their country. The user's computing device, their so-called digital household, may be recorded as being geolocated in that country where the media may be streamed to. Later, the user may begin streaming the service, and a technological limitation may misidentify the location of the user based on a single message, the request for the media stream. However, with use of this technology, the streaming service may properly provide the stream based on the more accurate records of geolocation provided for by this technology.

Other features, aspects and potential advantages will be apparent from the accompanying description and figures.

