Correction of client-assigned timestamps
First Claim
1. A computer-implemented method comprising:
- receiving, by one or more servers, a data packet that includes;
data referencing one or more client-side click events,data referencing a respective time that each client-side click event occurred, as indicated by a client-side clock, anddata referencing a transmission time, as indicated by the client-side clock, that is assigned to the data packet;
determining, by the one or more servers, a receipt time of the data packet as indicated by a server clock associated with one or more of the servers;
estimating, by the one or more servers, an amount of time by which the client-side clock and the server clock are out of synchronization based at least on (i) the transmission time, as indicated by the client-side clock, that is assigned to the data packet, and (ii) the receipt time of the data packet, as indicated by the server clock;
for one or more client-side click events referenced by data included in the data packet, generating, by the one or more servers, a server clock time for the client-side click event based at least on (i) the estimate of the amount of time by which the client-side clock and the server clock are out of synchronization, and (ii) the time that the client-side click event occurred, as indicated by the client-side clock; and
for one or more client-side click events referenced by data included in the data packet, logging, by the one or more servers, the client-side click event in an event log according to the server clock time for the client-side click event.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for correcting client-assigned timestamps. In one aspect, a method includes receiving, by one or more servers, a data packet that includes (i) data referencing one or more client-side events, (ii) data referencing a respective time that a client has assigned to each event, and (iii) data referencing a transmission time that the client has assigned to the data packet. The method also includes assigning, by the one or more servers, a receipt time to the data packet, and comparing, by the one or more servers, the transmission time that the client has assigned to the data packet to the receipt time that the one or more servers have assigned to the data packet, to determine a time correction factor.
-
Citations
15 Claims
-
1. A computer-implemented method comprising:
-
receiving, by one or more servers, a data packet that includes; data referencing one or more client-side click events, data referencing a respective time that each client-side click event occurred, as indicated by a client-side clock, and data referencing a transmission time, as indicated by the client-side clock, that is assigned to the data packet; determining, by the one or more servers, a receipt time of the data packet as indicated by a server clock associated with one or more of the servers; estimating, by the one or more servers, an amount of time by which the client-side clock and the server clock are out of synchronization based at least on (i) the transmission time, as indicated by the client-side clock, that is assigned to the data packet, and (ii) the receipt time of the data packet, as indicated by the server clock; for one or more client-side click events referenced by data included in the data packet, generating, by the one or more servers, a server clock time for the client-side click event based at least on (i) the estimate of the amount of time by which the client-side clock and the server clock are out of synchronization, and (ii) the time that the client-side click event occurred, as indicated by the client-side clock; and for one or more client-side click events referenced by data included in the data packet, logging, by the one or more servers, the client-side click event in an event log according to the server clock time for the client-side click event. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A system comprising:
-
one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising; receiving a data packet that includes; data referencing one or more client-side click events, data referencing a respective time that each client-side click event occurred, as indicated by a client-side clock, and data referencing a transmission time, as indicated by the client-side clock, that is assigned to the data packet; determining a receipt time of the data packet as indicated by a server clock associated with one or more servers; estimating an amount of time by which the client-side clock and the server clock are out of synchronization based at least on (i) the transmission time, as indicated by the client-side clock, that is assigned to the data packet, and (ii) the receipt time of the data packet, as indicated by the server clock; for one or more client-side click events referenced by data included in the data packet, generating a server clock time for the client-side click event based at least on (i) the estimate of the amount of time by which the client-side clock and the server clock are out of synchronization, and (ii) the time that the client-side click event occurred, as indicated by the client-side clock; and for one or more client-side click events referenced by data included in the data packet, logging the client-side click event in an event log according to the server clock time for the client-side click event. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A computer-readable storage device storing software comprising instructions executable by one or more computers which, upon such execution, cause the one or more computers to perform operations comprising:
-
receiving a data packet that includes; data referencing one or more client-side click events, data referencing a respective time that each client-side click event occurred, as indicated by a client-side clock, and data referencing a transmission time, as indicated by the client-side clock, that is assigned to the data packet; determining a receipt time of the data packet as indicated by a server clock associated with one or more servers; estimating an amount of time by which the client-side clock and the server clock are out of synchronization based at least on (i) the transmission time, as indicated by the client-side clock, that is assigned to the data packet, and (ii) the receipt time of the data packet, as indicated by the server clock; for one or more client-side click events referenced by data included in the data packet, generating a server clock time for the client-side click event based at least on (i) the estimate of the amount of time by which the client-side clock and the server clock are out of synchronization, and (ii) the time that the client-side click event occurred, as indicated by the client-side clock; and for one or more client-side click events referenced by data included in the data packet, logging the client-side click event in an event log according to the server clock time for the client-side click event. - View Dependent Claims (12, 13, 14, 15)
-
Specification