Client-side click tracking
Abstract
Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for performing client-side click tracking. In one aspect, a method includes receiving, by a client, a resource from one or more servers. The resource includes (i) a link, (ii) click tracking code, and (iii) local storage monitoring code. The method includes invoking, by the client, the click tracking code and the local storage monitoring code, detecting, by the invoked click tracking code, a selection of the link, and generating, by the invoked click tracking code, a representation of the selection of the link. The method includes storing, by the invoked click tracking code, the representation of the selection of the link in a local storage on the client, determining, by the invoked local storage monitoring code, to communicate the representation of the selection of the link; and communicating, by the invoked local storage monitoring code, the representation of the selection of the link to the one or more servers.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A computer-implemented method comprising:
receiving, by a client, a resource from one or more servers, wherein the resource includes (i) a link, (ii) click tracking code for detecting a selection of the link, and (iii) local storage monitoring code; invoking, by the client, the click tracking code and the local storage monitoring code; detecting, by the invoked click tracking code, the selection of the link; generating, by the invoked click tracking code, a representation of the selection of the link; storing, by the invoked click tracking code, the representation of the selection of the link in a local storage on the client; determining, by the invoked local storage monitoring code, to communicate the representation of the selection of the link; and communicating, by the invoked local storage monitoring code, the representation of the selection of the link to the one or more servers.
2 . The method of claim 1 , wherein the link is decorated with a client-side click tracking attribute.
3 . The method of claim 2 , wherein the client-side click tracking attribute comprises a click tracking Uniform Resource Locator string.
4 . The method of claim 2 , wherein detecting the selection of the link comprises:
registering, by the invoked click tracking code, an event listener to listen for a selection of a link that is decorated with the client-side click tracking attribute.
5 . The method of claim 4 , wherein the event listener is a capture-phase event listener.
6 . The method of claim 1 , wherein the link is decorated with a synchronization flag.
7 . The method of claim 6 , wherein:
determining to communicate the representation of the selection of the link comprises determining that the synchronization flag has a particular value, and communicating the representation comprises communicating the representation synchronous to storing the representation of the selection of the link in the local storage, in response to determining that the synchronization flag has a particular value.
8 . The method of claim 7 , wherein communicating the representation synchronous to storing the representation of the link in the local storage comprises communicating the representation without waiting a predetermined period of time after the representation of the link has been stored in the local storage.
9 . The method of claim 6 , wherein:
determining to communicate the representation of the selection of the link comprises determining that the synchronization flag has a particular value, and communicating the representation comprises:
determining that a predetermined time interval has elapsed; and
communicating the representation in response to (i) determining that the synchronization flag has a particular value, and (ii) determining that the predetermined time interval has elapsed.
10 . The method of claim 1 , wherein the link comprises a link to a phone dialer.
11 . The method of claim 1 , wherein the link comprises a link to an intra-page link.
12 . The method of claim 1 , wherein the link does not include a redirect attribute.
13 . The method of claim 1 , comprising:
receiving, by the invoked local storage monitoring code, an acknowledgement that the representation of the selection of the link has been received by the one or more servers, then clearing the local storage.
14 . The method of claim 1 , wherein the local storage comprises an HTML5 local storage.
15 . The method of claim 1 , wherein the representation identifies a Uniform Resource Identifier (URI) associated with the link, and specifies a time that the link was selected.
16 . The method of claim 1 , wherein communicating the representation comprises:
building a ping URL that includes the representation, and transmitting the ping URL to the one or more servers.
17 . 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, by a client, a resource from one or more servers, wherein the resource includes (i) a link, (ii) click tracking code for detecting a selection of the link, and (iii) local storage monitoring code;
invoking, by the client, the click tracking code and the local storage monitoring code;
detecting, by the invoked click tracking code, the selection of the link;
generating, by the invoked click tracking code, a representation of the selection of the link;
storing, by the invoked click tracking code, the representation of the selection of the link in a local storage on the client;
determining, by the invoked local storage monitoring code, to communicate the representation of the selection of the link; and
communicating, by the invoked local storage monitoring code, the representation of the selection of the link to the one or more servers.
18 . The system of claim 17 , wherein the link is decorated with a client-side click tracking attribute.
19 . The system of claim 18 , wherein the client-side click tracking attribute comprises a click tracking Uniform Resource Locator string.
20 . The system of claim 18 , wherein detecting the selection of the link comprises:
registering, by the invoked click tracking code, an event listener to listen for a selection of a link that is decorated with the client-side click tracking attribute.
21 . The system of claim 20 , wherein the event listener is a capture-phase event listener.
22 . The system of claim 17 , wherein the link is decorated with a synchronization flag.
23 . The system of claim 22 , wherein:
determining to communicate the representation of the selection of the link comprises determining that the synchronization flag has a particular value, and communicating the representation comprises communicating the representation synchronous to storing the representation of the selection of the link in the local storage, in response to determining that the synchronization flag has a particular value.
24 . The system of claim 23 , wherein communicating the representation synchronous to storing the representation of the link in the local storage comprises communicating the representation without waiting a predetermined period of time after the representation of the link has been stored in the local storage.
25 . The system of claim 22 , wherein:
determining to communicate the representation of the selection of the link comprises determining that the synchronization flag has a particular value, and communicating the representation comprises:
determining that a predetermined time interval has elapsed; and
communicating the representation in response to (i) determining that the synchronization flag has a particular value, and (ii) determining that the predetermined time interval has elapsed.
26 . The system of claim 17 , wherein the link comprises a link to a phone dialer.
27 . The system of claim 17 , wherein the link comprises a link to an intra-page link.
28 . The system of claim 17 , wherein the link does not include a redirect attribute.
29 . The system of claim 17 , wherein the operations comprise:
receiving, by the invoked local storage monitoring code, an acknowledgement that the representation of the selection of the link has been received by the one or more servers, then clearing the local storage.
30 . The system of claim 17 , wherein the local storage comprises an HTML5 local storage.
31 . The system of claim 17 , wherein the representation identifies a Uniform Resource Identifier (URI) associated with the link, and specifies a time that the link was selected.
32 . The system of claim 17 , wherein communicating the representation comprises:
building a ping URL that includes the representation, and
transmitting the ping URL to the one or more servers.
33 . A non-transitory computer-readable medium 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, by a client, a resource from one or more servers, wherein the resource includes (i) a link, (ii) click tracking code for detecting a selection of the link, and (iii) local storage monitoring code; invoking, by the client, the click tracking code and the local storage monitoring code; detecting, by the invoked click tracking code, the selection of the link; generating, by the invoked click tracking code, a representation of the selection of the link; storing, by the invoked click tracking code, the representation of the selection of the link in a local storage on the client; determining, by the invoked local storage monitoring code, to communicate the representation of the selection of the link; and communicating, by the invoked local storage monitoring code, the representation of the selection of the link to the one or more servers.
34 . The medium of claim 33 , wherein the link is decorated with a client-side click tracking attribute.
35 . The medium of claim 34 , wherein the client-side click tracking attribute comprises a click tracking Uniform Resource Locator string.
36 . The medium of claim 34 , wherein detecting the selection of the link comprises:
registering, by the invoked click tracking code, an event listener to listen for a selection of a link that is decorated with the client-side click tracking attribute.
37 . The medium of claim 36 , wherein the event listener is a capture-phase event listener.
38 . The medium of claim 33 , wherein the link is decorated with a synchronization flag.
39 . The medium of claim 38 , wherein:
determining to communicate the representation of the selection of the link comprises determining that the synchronization flag has a particular value, and communicating the representation comprises communicating the representation synchronous to storing the representation of the selection of the link in the local storage, in response to determining that the synchronization flag has a particular value.
40 . The medium of claim 39 , wherein communicating the representation synchronous to storing the representation of the link in the local storage comprises communicating the representation without waiting a predetermined period of time after the representation of the link has been stored in the local storage.
41 . The medium of claim 38 , wherein:
determining to communicate the representation of the selection of the link comprises determining that the synchronization flag has a particular value, and communicating the representation comprises:
determining that a predetermined time interval has elapsed; and
communicating the representation in response to (i) determining that the synchronization flag has a particular value, and (ii) determining that the predetermined time interval has elapsed.
42 . The medium of claim 33 , wherein the link comprises a link to a phone dialer.
43 . The medium of claim 33 , wherein the link comprises a link to an intra-page link.
44 . The medium of claim 33 , wherein the link does not include a redirect attribute.
45 . The medium of claim 33 , wherein the operations comprise:
receiving, by the invoked local storage monitoring code, an acknowledgement that the representation of the selection of the link has been received by the one or more servers, then clearing the local storage.
46 . The medium of claim 33 , wherein the local storage comprises an HTML5 local storage.
47 . The medium of claim 33 , wherein the representation identifies a Uniform Resource Identifier (URI) associated with the link, and specifies a time that the link was selected.
48 . The medium of claim 33 , wherein communicating the representation comprises:
building a ping URL that includes the representation, and transmitting the ping URL to the one or more servers.Join the waitlist — get patent alerts
Track US2015163116A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.