IP Library Granted Patent US 10,547,699
Granted Patent B2
US 10,547,699 · App. 14/550,287 · Granted Jan 28, 2020

Methods and apparatus for statistical mobile device identification

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 10,547,699
App. No.
14/550,287
Granted
Jan 28, 2020
Kind
B2
Abstract

Methods and apparatus for mobile device identification using TCP segment timestamps are disclosed. A request from a mobile device is received at a server. A TCP connection, initiated by the mobile device, is made between the server and the device, and a timestamp generated by the mobile device is retrieved from the options field of the TCP SYN segment. Other identifying information is received from the mobile device source, including an IP address, port, and HTTP headers. Based on the identifying information, the mobile device timestamp, and a current timestamp generated by the server, a likelihood is determined that the particular mobile device previously communicated with the server.

Claims (46)

1. A method for mobile device identification, the method comprising:

receiving, at a server of a processing system including a processor, a request to establish a connection with the server from a source device;

receiving, by the processing system, identifying information associated with the source device, the identifying information comprising a timestamp generated by the source device and a device-type unique identifier;

determining, by the processing system, a statistically unique identifier of the source device according to the identifying information;

retrieving, by the processing system, a stored record of a previous connection associated with the statistically unique identifier of the source, wherein the stored record of the previous connection comprises a timestamp generated by a source of a request to establish the previous connection; and

determining, by the processing system, based on the identifying information, the stored record of the previous connection and a current timestamp of the server, a likelihood that the previous connection associated with the statistically unique identifier was made between the source device and the server,

wherein determining the likelihood comprises determining whether a ratio of a first difference between the timestamp generated by the source device and the timestamp generated by the source of the request to establish the previous connection, and a second difference between the current timestamp of the server and a timestamp generated by the server in response to the request to establish the previous connection, exceeds a threshold, and

wherein the threshold comprises a variable value subject to exponential decay.

2. The method of claim 1 , wherein the source device is a mobile device; and wherein the device-type unique identifier comprises one of a pixel-ratio, a screen height and width, locale information, a time zone offset, or any combination thereof.

3. The method of claim 1 , wherein the identifying information is provided in one or more TCP header fields.

4. The method of claim 1 , wherein the identifying information is provided in one or more TCP SYN packets.

5. The method of claim 1 , wherein the identifying information further comprises at least one of an IP address, a port number, and a plurality of HTTP headers, and wherein the device-type unique identifier is based on an HTTP header of the plurality of HTTP headers.

6. The method of claim 5 , further comprising:

generating, by the processing system, a device identifier to obtain a generated device identifier based on at least one of the HTTP headers and at least the device-type unique identifier; and

storing, by the processing system, the identifying information and the current timestamp in association with the generated device identifier.

7. The method of claim 6 , further comprising storing, by the processing system, records of previously established connections, each record comprising a device identifier, a timestamp generated by a source of a particular request to establish a connection, resulting in a requested connection, and a timestamp generated by the server in response to receiving the particular request.

8. The method of claim 7 , wherein determining the likelihood further comprises, for each record having a device identifier equal to the generated device identifier, determining, by the processing system, whether an alignment between the timestamps associated with the record and timestamps associated with the requested connection exceeds a threshold value, wherein the timestamps associated with the requested connection comprise the timestamp generated by the source device and the current timestamp of the server.

9. The method of claim 1 , wherein the server further comprises an advertising server; and

wherein the request to establish a connection further comprises a request for an advertisement to be served; and

wherein the likelihood that a previous connection was made further comprises a likelihood that a previous request for an advertisement to be served was received from the source device.

10. A system for mobile device identification, the system comprising:

a processing system including a processor; and

a memory that stores executable instructions that, when executed by the processing system, facilitate performance of operations, the operations comprising:

receiving, at a server, a request to establish a connection with the server from a source device;

receiving identifying information associated with the source device, the identifying information comprising a timestamp generated by the source device and a device-type unique identifier;

determining a statistically unique identifier of the source device according to the identifying information;

obtaining a stored record of a previous connection associated with the statistically unique identifier of the source, wherein the stored record of the previous connection comprises a timestamp generated by a source of a request to establish the previous connection; and

determining, based on the identifying information, the stored record of the previous connection and a current timestamp of the server, a likelihood that the previous connection associated with the statistically unique identifier was made between the source device and the server,

wherein determining the likelihood comprises determining whether a ratio of a first difference between the timestamp generated by the source device and the timestamp generated by the source of the request to establish the previous connection and a second difference between the current timestamp of the server and a timestamp generated by the server in response to the request to establish the previous connection exceeds a threshold, and

wherein the threshold comprises a variable value subject to exponential decay.

11. The system of claim 10 , wherein the source device is a mobile device.

12. The system of claim 10 , wherein the identifying information is provided in one or more TCP header fields.

13. The system of claim 10 , wherein the identifying information is provided in one or more TCP SYN packets.

14. The system of claim 10 , wherein the identifying information further comprises at least one of an IP address, a port number, and a plurality of HTTP headers, and wherein the device-type unique identifier is based on an HTTP header of the plurality of HTTP headers.

15. The system of claim 14 , wherein the operations further comprise:

generating a device identifier to obtain a generated device identifier based on at least one of the HTTP headers and at least the device-type unique identifier; and

storing the identifying information and the current timestamp in association with the generated device identifier.

16. The system of claim 15 , wherein the operations further comprise storing records of previously established connections, each record comprising a device identifier, a timestamp generated by a source of a particular request to establish a connection, resulting in a requested connection, and a timestamp generated by the server in response to receiving the particular request.

17. The system of claim 16 , wherein determining the likelihood further comprises, for each record having a device identifier equal to the generated device identifier, determining whether an alignment between the timestamps associated with the record and timestamps associated with the requested connection exceeds a threshold value, wherein the timestamps associated with the requested connection further comprise the timestamp generated by the source device and the current timestamp of the server.

18. The system of claim 10 , wherein the server further comprises an advertising server; and

wherein the request to establish a connection further comprises a request for an advertisement to be served; and wherein the likelihood that a previous connection was made comprises a likelihood that a previous request for an advertisement to be served was received from the source device.

19. The method of claim 1 , further comprising:

storing, by the processing system, a set of records of previously established connections to the server; and

generating, by the processing system, a subset of the set of records by determining, based on the identifying information and a current timestamp of the server, which records in the set of records meet a threshold likelihood that a previous connection was made between the source device and the server.

20. The method of claim 1 , further comprising normalizing, by the processing system, the timestamp generated by the source device to a constant time base matching a timestamp resolution of the server by multiplying or dividing by an increment frequency conversion value.

21. The method of claim 6 , wherein the generated device identifier further represents a category of devices rather than an individual device.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 5, 2023
From: XANDR INC.
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 063264/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2019
From: LISSACK, YARON
To: XANDR INC.
Reel/Frame 050882/0040 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT Recorded Aug 22, 2018
From: SILICON VALLEY BANK
To: APPNEXUS, INC.; APPNEXUS RESOURCES INC.; APPNEXUS YIELDEX LLC
Reel/Frame 046908/0581 →
SECURITY INTEREST Recorded Dec 1, 2016
From: APPNEXUS INC.; APPNEXUS RESOURCES INC.; APPNEXUS YIELDEX LLC
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 040782/0935 →