IP Library Granted Patent US 11,812,343
Granted Patent B2
US 11,812,343 · App. 17/717,747 · Granted Nov 7, 2023

Method and system for determining a suspect data source in a location based services network

Inventors: Ameya Shrinivas Sakhalkar (Pune, IN); Raghunath Thondanur Mandayam (Bangalore, IN)
Assignee: InMobi PTE. Ltd.
H04W4/029H04W4/027H04W64/006G06F16/29
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 11,812,343
App. No.
17/717,747
Granted
Nov 7, 2023
Kind
B2
Abstract

A method and system for determining a suspected data source among one or more data sources reporting geo coordinate data in a location based services network is disclosed. In some embodiments, the method includes, receiving geo coordinates of a user device reported by the one or more data sources over a period of time, calculating a notional speed between geo coordinates reported at two consecutive times, flagging simultaneously, one or more data sources that reported the geo coordinates at the two consecutive times resulting in a notional speed that exceeds a predefined notional speed, and analysing a data on at least one of, the number of instances of geo coordinates reported by a data source, the number of instances a data source was flagged, the data sources that were also flagged simultaneously with each flagging, for determining the suspect source of data.

Claims (80)

1. A method for operating a computing system to determine a suspect, geo location reporting data source among one or more data sources reporting geo coordinate data in a location based services network, the method comprising:

receiving geo coordinates of a user device reported by the one or more data sources over a period of time;

calculating a notional speed between geo coordinates reported at two consecutive times;

flagging, simultaneously, one or more data sources that reported the geo coordinates at the two consecutive times resulting in a notional speed that exceeds a predefined notional speed;

for each of the one or more data sources that are flagged, analysing data on a number of instances of geo coordinates reported by the data source, a number of instances the data source was flagged, each additional data sources that were also flagged simultaneously; and

deterimining the suspect data source to improve accuracy of geo location data of user devices, wherein determining the suspect data sources comprises:

determining a number of times data sources are flagged together and simultaneously, wherein a ratio of a number of instances that a particular data source was flagged to the number of instances of geo coordinates reported by that particular data source provides an error rate of each flagged data source; and

identifying a suspect data source from being flagged simultaneously at least a predefined number of times with each of at least a predefined number of data sources having an error rate greater than a predefined percentage of a number of instances the data source was flagged to a number of instances of geo coordinates reported by the data source.

2. A system for determining a suspect, geo location reporting data source among one or more data sources reporting geo coordinate data in a location based services network, the system comprising:

a processor; and

a memory storing geo coordinates of a user device reported by the one or more data sources over a period of time and storing modules that are executable by the processor, wherein the modules comprise;

a speed calculation module capable of calculating a notional speed between geo coordinates reported at two consecutive times; and

an analysis module capable of:

flagging, simultaneously, one or more data sources that reported the geo coordinates at the two consecutive times resulting in a notional speed that exceeds a predefined notional speed;

for each of the one or more data sources that are flagged, analyzing data on a number of instances of geo coordinates reported by the data source, a number of instances the data source was flagged, each one of the data sources that was also flagged simultaneously; and

a suspect data source identification module capable of determining the suspect data source to improve accuracy of geo location data of user devices, wherein determining the suspect data sources comprises:

determining a number of times data sources are flagged together and simultaneously, wherein a ratio of a number of instances that a particular data source was flagged to the number of instances of geo coordinates reported by that particular data source provides an error rate of each flagged data source; and

identifying a suspect data source from being flagged simultaneously at least a predefined number of times with each of at least a predefined number of data sources having an error rate greater than a predefined percentage of a number of instances the data source was flagged to a number of instances of geo coordinates reported by the data source.

3. The method of claim 1 wherein flagging one or more data sources that reported the geo coordinates at the two consecutive times resulting in a notional speed that exceeds a predefined notional speed comprises:

simultaneously flagging multiple data sources that reported the geo coordinates at the two consecutive times resulting in the notional speed that exceeds the predefined notional speed.

4. The method of claim 1 wherein the receiving geo coordinates further comprises:

receiving a plurality of ad requests from the data sources, wherein each of the ad requests includes the geo coordinates of multiple user devices along with a time at which the geo coordinates were determined, user device identifiers, data source identifiers, and ad space information.

5. The method of claim 4 further comprising:

upon receiving the plurality of ad requests from one or more data sources, decoding each of the ad requests to identify the geo coordinates associated with the ad requests and plot the geo coordinates of each of the user devices over a period of time;

for each distinct user device, sorting all geo coordinates in ascending order of time received from all the data sources; and

utilizing the speed calculation module:

determining the notional speed using:

Notional Speed=abs(distance( L 2 −L 1)/( T 2 −T 1)),

wherein:

(L1, L2) are geo coordinates for the user device corresponding to reporting times (T1, T2.

6. The method of claim 1 , wherein the analyzing data comprises generating a weighted graph, and generating a weighted graph comprises:

modelling geo coordinates as the weighted graph, wherein the weighted graph includes:

nodes representing flagged data sources; and

edges between flagged data sources;

assigning an edge weight to each edge, wherein the edge weight represents a number of times pairs of data sources connected by the edges are flagged together and simultaneously, wherein a ratio indicated at each node represents a number of instances that a particular data source was flagged to the number of instances of geo coordinates reported by that particular data source, wherein the ratio provides an error rate of each flagged data source; and

pruning nodes and edges from the graph whose error rate is less than or equal to a pre-defined error rate.

7. The system as claimed in claim 2 , wherein to determine the suspect data source the analysis module is further configured to:

identify a data source which has been flagged simultaneously at least a predefined number of times with each of at least a predefined number of data sources having an error rate greater than a predefined percentage of the number of instances the data source was flagged to the number of instances of geo coordinates reported by the data source.

8. The system of claim 2 wherein to flag one or more data sources that reported the geo coordinates at the two consecutive times resulting in a notional speed that exceeds a predefined notional speed comprises to:

flag multiple data sources that reported the geo coordinates at the two consecutive times resulting in the notional speed that exceeds the predefined notional speed.

9. The system of claim 2 wherein the speed calculation module and analysis module are configured to process sets of geo coordinates that are impractically large for a human reviewer to process.

10. The system of claim 2 wherein the memory further stores a plurality of ad requests from the data sources, wherein each of the ad requests includes the geo coordinates of multiple user devices along with a time at which the geo coordinates were determined, user device identifiers, data source identifiers, and ad space information.

11. The system of claim 10 wherein:

the memory further includes code executable by the processor to cause the processor to:

decode each of the ad requests to identify the geo coordinates associated with the ad requests and plot the geo coordinates of each of the user devices over a period of time; and

for each distinct user device, sort all geo coordinates in ascending order of time received from all the data sources; and

the speed calculation module is further configured to determine the notional speed using:

Notional Speed=abs(distance( L 2 −L 1)/( T 2 −T 1)), wherein:

(L1, L2) are geo coordinates for the user device corresponding to reporting times (T1, T2.

12. The system of claim 2 , wherein to analyze data comprises to generate a weighted graph, and to generate a weighted graph comprises to:

model geo coordinates as the weighted graph, wherein the weighted graph includes:

nodes representing flagged data sources; and

edges between flagged data sources;

assign an edge weight to each edge, wherein the edge weight represents a number of times pairs of data sources connected by the edges are flagged together and simultaneously, wherein a ratio indicated at each node represents a number of instances that a particular data source was flagged to the number of instances of geo coordinates reported by that particular data source, wherein the ratio provides an error rate of each flagged data source; and

prune nodes and edges from the graph whose error rate is less than or equal to a pre-defined error rate.

13. A non-transitory, computer program product comprising code stored therein to cause a computing system to determine a suspect, geo location reporting data source among one or more data sources reporting geo coordinate data in a location based services network, wherein the code is executable to:

receive geo coordinates of a user device reported by the one or more data sources over a period of time;

calculate a notional speed between geo coordinates reported at two consecutive times;

flag, simultaneously, one or more data sources that reported the geo coordinates at the two consecutive times resulting in a notional speed that exceeds a predefined notional speed;

for each of the one or more data sources that are flagged, analyze data on a number of instances of geo coordinates reported by the data source, a number of instances the data source was flagged, each additional data sources that were also flagged simultaneously; and

determine the suspect data source to improve accuracy of geo location data of user devices, wherein to determine the suspect data sources comprises to:

determine a number of times data sources are flagged together and simultaneously, wherein a ratio of a number of instances that a particular data source was flagged to the number of instances of geo coordinates reported by that particular data source provides an error rate of each flagged data source; and

identify a suspect data source from being flagged simultaneously at least a predefined number of times with each of at least a predefined number of data sources having an error rate greater than a predefined percentage of a number of instances the data source was flagged to a number of instances of geo coordinates reported by the data source.

14. The computer program product as claimed in claim 13 , wherein to determine the suspect data source the analysis module is further configured to:

identify a data source which has been flagged simultaneously at least a predefined number of times with each of at least a predefined number of data sources having an error rate greater than a predefined percentage of the number of instances the data source was flagged to the number of instances of geo coordinates reported by the data source.

15. The computer program product of claim 13 wherein to flag one or more data sources that reported the geo coordinates at the two consecutive times resulting in a notional speed that exceeds a predefined notional speed comprises to:

flag multiple data sources that reported the geo coordinates at the two consecutive times resulting in the notional speed that exceeds the predefined notional speed.

16. The computer program product of claim 13 wherein:

the memory further includes code executable by the processor to cause the processor to:

decode each of the ad requests to identify the geo coordinates associated with the ad requests and plot the geo coordinates of each of the user devices over a period of time; and

for each distinct user device, sort all geo coordinates in ascending order of time received from all the data sources; and

the speed calculation module is further configured to determine the notional speed using:

Notional Speed=abs(distance( L 2 −L 1)/( T 2 −T 1)), wherein:

(L1, L2) are geo coordinates for the user device corresponding to reporting times (T1, T2.

17. The computer program product of claim 13 , wherein to analyze data comprises to generate a weighted graph, and to generate a weighted graph comprises to:

model geo coordinates as the weighted graph, wherein the weighted graph includes:

nodes representing flagged data sources; and

edges between flagged data sources;

assign an edge weight to each edge, wherein the edge weight represents a number of times pairs of data sources connected by the edges are flagged together and simultaneously, wherein a ratio indicated at each node represents a number of instances that a particular data source was flagged to the number of instances of geo coordinates reported by that particular data source, wherein the ratio provides an error rate of each flagged data source; and

prune nodes and edges from the graph whose error rate is less than or equal to a pre-defined error rate.

Assignments (3)
SECURITY INTEREST Recorded Apr 1, 2026
From: INMOBI TECHNOLOGY SERVICES PTE. LTD.
To: MADISON PACIFIC TRUST LIMITED
Reel/Frame 074244/0228 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2026
From: INMOBI PTE LTD.
To: INMOBI TECHNOLOGY SERVICES PTE. LTD.
Reel/Frame 074233/0395 →
SECURITY INTEREST Recorded Dec 31, 2025
From: INMOBI PTE LTD.
To: MADISON PACIFIC TRUST LIMITED
Reel/Frame 073343/0572 →
Priority Claims (1)
IN 201741042811 · Nov 29, 2017 · national
Continuity (2)
Continuation 16203446 · Nov 28, 2018
Related Publication 20220240054A1 · Jul 28, 2022