IP Library Granted Patent US 9,668,104
Granted Patent B1
US 9,668,104 · App. 15/165,983 · Granted May 30, 2017

Systems and methods to track regions visited by mobile devices and detect changes in location patterns based on integration of data from different sources

Inventors: Kevin Toshio Ching (Berkeley, CA); Veronica Milenkiy (Burlingame, CA); Paolo D'Alberto (San Jose, CA); Keith Kilpatrick (San Francisco, CA); Andrew Shapiro (New York, NY); Mark Christopher Dixon (Belmont, CA); Todd A. Rose (Menlo Park, CA)
Assignee: NinthDecimal, Inc.
H04W4/028H04W4/021
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,668,104
App. No.
15/165,983
Granted
May 30, 2017
Kind
B1
Abstract

Systems and methods including computing patterns of visitation to predefined regions by converting coordinates of mobile devices to cell identifiers and searching a database to find matches between cell identifiers representing regions and the cell identifiers of the device locations. Devices having similar visitation patterns are divided into two groups, based on status data of whether or not information about a region has been transmitted to respective users. The visitation patterns after the transmission are compared by a system between the two groups to measure a difference. Identifiers of devices, users, or households are initially provided to the system without the status data to obtain attributes associated individually with the identifiers. In return, the system is provided with the status data associated with the attributes individually for the devices, users, or households but without sufficient information to map the status data individually to the identifiers of the devices, users, or households.

Claims (69)

1. A method implemented in a computing device, the method comprising:

storing, in the computing device, a set of cell identifiers for a geographical region having a predefined geographical boundary, each of the cell identifiers identifying a cell that is determined to be within the predefined geographical boundary;

receiving, from a first mobile device, first location data indicating coordinates of locations of the first mobile device as a function of time;

converting, by the computing device, the coordinates of the locations of the first mobile device into respective first cell identifiers;

determining, by the computing device, first visitations of the first mobile device to the geographical region based on searching the set of cell identifiers to determine if the set has the respective first cell identifiers;

receiving, from a second mobile device, second location data indicating coordinates of locations of the second mobile device as a function of time;

converting, by the computing device, the coordinates of the locations of the second mobile device into respective second cell identifiers;

determining, by the computing device, second visitations of the second mobile device to the geographical region based on searching the set of cell identifiers to determine if the set has the respective second cell identifiers; and

receiving, by the computing device from a separate device, a set of identifiers, including a first identifier identifying the first mobile device and a second identifier identifying the second mobile device;

communicating, by the computing device to the separate device, first attributes of the first mobile device and second attributes of the second mobile device in association with the first identifier and the second identifier respectively, wherein

the first attributes include the first visitations of the first mobile device,

the second attributes device include the second visitations of the second mobile device, and

the separate device is configured to associate first status data with the first attributes and associate second status data with the second attributes;

receiving, by the computing device from the separate device, the first status data and the second status data in association with the first attributes and the second attributes respectively, without indication of association between the first status data and the first identifier and without indication of association between the second status data and the second identifier;

pairing, by the computing device, the first status data associated with the first attributes with the second status data associated with the second attributes based on the first status data and the second status data;

determining, by the computing device, a difference in visitations to the geographical region, based on

the first visitations associated with the first status data, and

the second visitations associated with the second status data.

2. The method of claim 1 , wherein converting of each respective set of coordinates of the locations of the first mobile device into a respective cell identifier includes:

generating two integers from longitude and latitude coordinates of the location according to a precision level; and

combining the two integers into the respective cell identifier without using a floating point number computation.

3. The method of claim 2 , wherein a cell identified by the respective cell identifier is a rectangle area in a longitude latitude space of locations on the earth; a size of the cell identified by the respective cell identifier is unambiguously determinable from the respective cell identifier itself; and longitude and latitude coordinates of a corner of the cell identified by the respective cell identifier is unambiguously determinable from the first cell identifier itself.

4. The method of claim 2 , wherein if the respective cell identifier is in the set of cell identifiers stored for the geographical region, a location identified by the respective set of coordinates is determined to be within the geographical region; and if the respective cell identifier is not in the set of cell identifiers stored for the geographical region, the location identified by the respective set of coordinates is determined to be outside the geographical region.

5. The method of claim 2 , wherein a cell identified by the respective cell identifier is a square area in a longitude latitude space of locations on the earth; a set of cells identified by the set of cell identifiers stored for the geographical region has a plurality of cell sizes corresponding to a plurality of predetermined cell resolution levels; and each cell resolution level of the plurality of predetermined cell resolution levels corresponds to a precision to a predetermined digit after the decimal point in longitude and latitude coordinates of locations on the earth.

6. The method of claim 1 , wherein the first status data, if associated with the first identifier, indicates that the first mobile device is associated with an event; and the second status data, if associated with the second identifier, indicates that the second mobile device is not associated with the event.

7. The method of claim 6 , wherein the pairing is based on a determination that the first attributes associated with the first status and the second attributes associated with the second status have a same pattern of visitation to the predetermined region prior to the event.

8. The method of claim 7 , wherein the difference is identified as a measurement of influence of the event.

9. The method of claim 8 , wherein the event includes transmitting of information relevant to the predetermined region to the first mobile device, where the information is not transmitted to the second mobile device.

10. The method of claim 7 , wherein the pairing is further based on a determination that the first attributes associated with the first status having profile attributes similar to profile attributes in the second attributes associated with the second status.

11. The method of claim 10 , wherein the first visitations in the first attributes and the second visitations in the second attributes are communicated in an encrypted form, in association with the first identifier and the second identifier respectively, from the computing device to the separate device; the first visitations and the second visitations communicated in the encrypted form are decryptable by the computing device but not the separate device; and the first visitations in the first attributes and the second visitations in the second attributes are received back in the encrypted form without change, in association with the first status data and the second status data respectively, by the computing device from the separate device without modification.

12. The method of claim 11 , wherein the separate computer is configured to obfuscate at least a portion of the first attributes communicated in association with the first status data to prevent the computing device from establishing a connection between the first status and the first identifier.

13. The method of claim 12 , wherein the portion of the first attributes includes profile attributes that are obfuscated via changing positions by the separate device in a way that is unknown to the computing device.

14. The method of claim 12 , wherein the portion of the first attributes includes profile attributes that are obfuscated via one way hashing by the separate device in a way that is unknown to the computing device.

15. The method of claim 12 , wherein the portion of the first attributes includes profile attributes that are obfuscated in an encrypted form that is not decryptable by the computing device.

16. A non-transitory computer storage medium storing instructions configured to instruct a computing device to perform a method, the method comprising:

storing, in the computing device, a set of cell identifiers for a geographical region having a predefined geographical boundary, each of the cell identifiers identifying a cell that is determined to be within the predefined geographical boundary;

receiving, from a first group of mobile devices, first location data indicating coordinates of locations of the first group of mobile devices as a function of time;

converting, by the computing device, the coordinates of the locations of the first group of mobile devices into respective first cell identifiers;

determining, by the computing device, first visitations of the first group of mobile devices to the geographical region based on searching the set of cell identifiers to determine if the set has the respective first cell identifiers;

receiving, from a second group of mobile devices, second location data indicating coordinates of locations of the second group of mobile devices as a function of time;

converting, by the computing device, the coordinates of the locations of the second group of mobile devices into respective second cell identifiers;

determining, by the computing device, second visitations of the second group of mobile devices to the geographical region based on searching the set of cell identifiers to determine if the set has the respective second cell identifiers; and

receiving, by the computing device from a separate device, a set of identifiers, including first identifiers identifying the first group of mobile devices respectively and second identifier identifying the second group of mobile devices respectively;

communicating, by the computing device to the separate device, first attributes of the group of first mobile devices and second attributes of the second group of mobile devices in association with the first identifiers and the second identifiers respectively, wherein

the first attributes include the first visitations of the first group of mobile devices,

the second attributes device include the second visitations of the second group of mobile devices, and

the separate device is configured to associate first status data with the first attributes and associate second status data with the second attributes;

receiving, by the computing device from the separate device, the first status data and the second status data in association with the first attributes and the second attributes respectively, without indication of association between the first status data and the first identifiers and without indication of association between the second status data and the second identifiers;

pairing, by the computing device, the first status data associated with the first attributes with the second status data associated with the second attributes based on the first status data and the second status data;

determining, by the computing device, a difference in visitations to the geographical region, based on

the first visitations associated with the first status data, and

the second visitations associated with the second status data.

17. The medium of claim 16 , wherein the first status data, if associated with the first identifiers, indicates that the first group of mobile devices are associated with an event; and the second status data, if associated with the second identifiers, indicates that the second group of mobile devices are not associated with the event.

18. A computing device, comprising:

at least one microprocessor; and

memory storing instructions configured to instruct the at least one microprocessor to:

store, in the computing device, a set of cell identifiers for a plurality of geographical regions each having predefined geographical boundaries, each of the cell identifiers identifying a cell that is determined to be within a region defined by one of the predefined geographical boundaries and stored in association with the region;

receive, from a plurality of mobile devices, location data indicating coordinates of locations of the mobile devices as a function of time;

convert, by the computing device, the coordinates of the locations of the mobile devices into respective cell identifiers;

determine, by the computing device, visitations of the mobile devices to the geographical regions as a function of time based on searching the set of cell identifiers to determine if the set has the respective cell identifiers;

receive, by the computing device from a separate device, a set of identifiers identifying the mobile devices respectively;

communicate, by the computing device to the separate device, attributes of the mobile devices in association with the identifiers respectively, wherein

the attributes include the visitations of the mobile devices, and

the separate device is configured to associate status data with the attributes and disassociate the attributes from the identifiers;

receive, by the computing device from the separate device, a communication including the status data in association with the attributes separately for the mobile devices respectively but without indication of association between the status data and the identifiers;

identify, by the computing device from the communication, attributes of a first subset of the mobile devices having a first status according to the status data and attributes of a second subset of the mobile devices having a second status according to the status data, based on a determination that the first subset of the mobile devices and the second subset of the mobile devices have similar patterns of visitation to the geographical regions prior to a time period; and

measure, by the computing device, a difference, between the first subset of the mobile devices and the second subset of the mobile devices, in visitation patterns to the geographical regions after the time period.

19. The computing device of claim 18 , wherein the status data provided in association with the attributes in the communication received in the computing device is insufficient for the computing device to associate the status data individually with the identifiers of the mobile devices.

20. The computing device of claim 18 , wherein the communication contains no personal identifiable information.

Assignments (11)
RELEASE OF SECURITY INTEREST Recorded Nov 27, 2023
From: MULTIPLIER CAPITAL II, LP
To: INMARKET MEDIA, LLC
Reel/Frame 065677/0537 →
SECURITY INTEREST Recorded Oct 27, 2023
From: INMARKET MEDIA, LLC
To: CITIBANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 065367/0537 →
SECURITY INTEREST Recorded Sep 1, 2022
From: INMARKET MEDIA, LLC
To: MULTIPLIER GROWTH PARTNERS, LP
Reel/Frame 060963/0081 →
RELEASE OF SECURITY INTEREST Recorded Jan 11, 2022
From: NORTH ATLANTIC VENTURE FUND V, L.P.
To: NINTHDECIMAL, INC.
Reel/Frame 058613/0748 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 8, 2021
From: NINTHDECIMAL, INC.
To: INMARKET MEDIA, LLC
Reel/Frame 055183/0951 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2020
From: WESTERN ALLIANCE BANK
To: NINTHDECIMAL, INC.
Reel/Frame 053734/0254 →
SECURITY INTEREST Recorded Sep 9, 2020
From: INMARKET MEDIA, LLC
To: MULTIPLIER CAPITAL II, LP
Reel/Frame 053719/0908 →
SECURITY INTEREST Recorded Mar 13, 2019
From: NINTHDECIMAL, INC.
To: MULTIPLIER CAPITAL II, LP
Reel/Frame 048589/0199 →
SECURITY INTEREST Recorded Oct 16, 2017
From: NINTHDECIMAL, INC.
To: WESTERN ALLIANCE BANK
Reel/Frame 043875/0564 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2017
From: CHING, KEVIN TOSHIO; MILENKIY, VERONICA; D'ALBERTO, PAOLO; KILPATRICK, KEITH; SHAPIRO, ANDREW; DIXON, MARK CHRISTOPHER; ROSE, TODD A.
To: NINTHDECIMAL, INC.
Reel/Frame 041483/0019 →
SECURITY INTEREST Recorded Feb 10, 2017
From: NINTHDECIMAL, INC.
To: NORTH ATLANTIC VENTURE FUND V, L.P.
Reel/Frame 041224/0523 →