WO2004079544A2 - Delayed transmission of website usage data - Google Patents

Delayed transmission of website usage data Download PDF

Info

Publication number
WO2004079544A2
WO2004079544A2 PCT/US2004/006696 US2004006696W WO2004079544A2 WO 2004079544 A2 WO2004079544 A2 WO 2004079544A2 US 2004006696 W US2004006696 W US 2004006696W WO 2004079544 A2 WO2004079544 A2 WO 2004079544A2
Authority
WO
WIPO (PCT)
Prior art keywords
event
computer program
web page
description
detecting
Prior art date
Application number
PCT/US2004/006696
Other languages
French (fr)
Other versions
WO2004079544A3 (en
Inventor
Brett M. Error
Christopher Reid Error
Christopher Luby
Original Assignee
Omniture, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US10/795,079 external-priority patent/US20050216844A1/en
Priority claimed from US10/794,809 external-priority patent/US7441195B2/en
Application filed by Omniture, Inc. filed Critical Omniture, Inc.
Publication of WO2004079544A2 publication Critical patent/WO2004079544A2/en
Publication of WO2004079544A3 publication Critical patent/WO2004079544A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising

Definitions

  • the present invention is related to tracking website usage, and more particularly to locally storing data describing website usage to enable delayed transmission of the website usage data.
  • website usage and other customer behavior may be tracked by a website server, or by another server such as a data collection server (also known as a data collector), which may be remotely located.
  • the data collection server is notified of activity on a website so that it can monitor and track the activity.
  • One method of achieving this notification is through the use of a request for embedded content.
  • Embedded content is part of a web page, such as an image, that is requested as a separate file from the file containing the web page.
  • the separate file may be requested from the website server or fro a remote server, such as a remote content server or data collection server.
  • the website server sends the web page file to the user's client.
  • the client such as a web browser, then attempts to render the file as a viewable web page.
  • the client may find a reference to a separate file located on the website server or a remote server. After the content is located and sent to the client, the client renders the separate file containing the embedded content along with the original web page.
  • a web beacon (also known as a web bug) is a particular type of embedded content where the content itself is irrelevant, but the request for content carries useful information.
  • a web beacon is often a transparent image having very small dimensions, such as 1 pixel by 1 pixel. This image is small enough to be invisible to the user.
  • the web beacon causes the client to send a resource request to a server such as a data collection server.
  • the web beacon may include a script (or other code) that causes the client to include, in the resource request, additional information about the user and the user's environment.
  • the additional information can include the data from a cookie, or other information about the client's operating environment or status.
  • the data collection server may, in response to the request, cause the client to set an additional cookie for identification for tracking purposes.
  • the web beacon request can be used to indicate to a data collection server that a particular web page is being rendered.
  • HTML Hypertext Markup Language
  • the term "ad.datacollectionserver.com” refers to the address of the data collection server.
  • Another common method of including the request is to use a scripting language such as JavaScript so as to cause the browser to dynamically generate a request to the data collection server.
  • a scripting language such as JavaScript
  • One advantage of using a script instead of a static image tag is that the script can perform other functions including gathering additional data and sending it along with the request, h either case, the result is a request sent to the data collection server upon the occurrence of an event, such as the loading and rendering of a web page.
  • the data collection server can perform various types of tracking functions. For example, the data collection server can count the number of requests so as to monitor traffic on the web page. By counting the number of times the web beacon element has been requested from the data collection server, the server can determine the number of times a particular page was viewed. By using JavaScript to dynamically construct the request for the web beacon and encode additional information, other identifying information can be obtained for further analysis. [0013] It is often desirable to track intra-page interactions as well as page views. Intra-page interactions are actions performed by the user while viewing a document such as a web page.
  • a user may click witliin a specified area of the screen, or cause the cursor to move to or hover over a particular element or area of the screen; such actions may or may not cause a new page to be loaded.
  • Some prior art systems track such intra-page interactions by requesting web beacons via a background process in response to certain intra-page interaction events. For example, a web beacon request might be generated each time the cursor passes over a particular element.
  • Fig. 2 depicts an example of such a technique for tracking intra-page interactions according to a prior art method.
  • a request describing the page load is sent to a data collection server.
  • a new request describing the interaction is sent.
  • individual requests are sent for interactions taking place with respect to page B (as well as a request describing the page load of page B).
  • a separate request is sent to the server.
  • Such repeated generation of web beacon requests is inefficient and time-consuming, and it can result in undesirably slow performance and responsiveness.
  • What is needed is a technique for enabling such detailed usage tracking, while avoiding or reducing any reduction in perceived performance and responsiveness.
  • What is further needed is a technique for intra-page interaction tracking that reduces or eliminates the need to make a new request for each event.
  • What is further needed is a technique for usage tracking that reduces costs by reducmg the number of requests generated in tiansrnitting website usage data.
  • What is further needed is a technique that avoids the Hmitations and shortcomings of prior art user behavior tracking methodologies.
  • interactions are tracked while avoiding the need to transmit each interaction to the data collection server via a separate request.
  • client-side code such as JavaScript
  • client-side code instructs the client to store the interaction data in a local data store.
  • a description of each interaction may be locally stored in a cookie file, hi one embodiment, the invention is used for transmitting descriptions of intra-page interactions; in another embodiment, it is used for transmitting interpage or other types of interactions.
  • the present invention operates in the context of a browser for displaying web pages at a client machine.
  • the format of the locally stored data may vary depending on the type of data being collected, and any number of cookies (or other types of local data stores) may be used.
  • the data may be split among the cookies in any fashion appropriate to collection. Alternatively, any other local data store available to the client can be used.
  • the client transmits the accumulated data to the data collection server in response to a triggering event. For example, data may be transmitted when a new page is loaded, or when the browser application crashes or is terminated, or when the client machine is turned off, or at periodic intervals, or in response to any other type of triggering event.
  • the client transmits information to the data collection server to describe the page view being loaded as well as accumulated information about intra-page interactions that occurred previous to the page view being loaded.
  • the data collection server receives the data, and separates it into two components: data about the current page view; and accumulated data contained in the local data store from previous activity. Once transmitted to the server, the data is cleared from the local data store, so as to reset the buffer for additional information.
  • the invention locally stores data describing intra-page interaction, so that the accumulated data can be transmitted to the data collection server more efficiently.
  • the invention avoids the need to open a new connection with the data collection server, or to transmit a new request to the data collection server, each time an intra-page interaction takes place.
  • Fig. 1 is a block diagram depicting a system for delayed transmission of website usage data according to one embodiment of the present invention.
  • Fig. 2 is a block diagram depicting an example of tracking intra-page interactions according to the prior art.
  • Fig. 3 is a block diagram depicting an example of tracking intra-page interactions according to one embodiment of the present invention.
  • Fig. 4 is a flow chart depicting a method for tracking intra-page interactions according to one embodiment of the present invention.
  • intra-page interaction is used to refjer to any type of detectable activity or action performed by the user while viewing a document such as a web page.
  • Examples of intra-page activity include, without limitation:
  • intra-page interaction is considered to include everything that takes place in response to such an action until the new page is actually requested. For example, clicking on a hyperlink generates an "onClick" event in the document, which can be captured by JavaScript and is considered to be intra-page interaction. After handling the onClick event, the browser requests the document to which the link points, leading to a new page load. Similarly, when closing the browser or moving to another page the "onUnload" event is generated before moving on or closing the browser; this onUnload event is also considered to be an intra-page interaction. [0039] In the following description, the invention is set forth in terms of tracking intra-page interactions. However, one skilled in the art will recognize that the techniques of the invention can be used for tracking intra-page, interpage, or other types of interactions.
  • Fig. 2 depicts an example of tracking intra-page interactions according to a prior art method.
  • request 202A describing the page load is sent to data collection server 106.
  • request 202C describing the interaction is sent to server 106.
  • individual requests 202D are sent for interactions taking place with respect to page B 102B (as well as request 202B describing the page load of page B 102B).
  • Each action is transmitted to data collection server 106 independently.
  • Fig. 1 there is shown a block diagram depicting a system for delayed transmission of website usage data according to one embodiment of the present invention.
  • User 112 interacts with client machine 107, which runs a software application such as browser 110 for accessing and displaying web pages.
  • client machine 107 may be an ordinary personal computer, including well-known components such as a CPU rum ing an operating system such as Microsoft Windows, a keyboard, mouse, display screen, and Internet connection (not shown).
  • CHent machine 107 may run various software applications in addition to browser 110.
  • Browser 110 includes scripting engine 116, such as JavaScript, as is commonly found in commercially available browsers.
  • client machine 107 issues a web page request 111 that is transmitted via the Internet to content server 101.
  • content server 101 transmits web page 102 (in the form of HTML code, for example) to client machine 107.
  • Browser 110 displays the requested web page 102 on client machine 107.
  • Web page 102 includes beacon code, which in one embodiment is a pointer to a beacon (such as a 1 pixel by 1 pixel transparent image).
  • the beacon is typically invisible to the user, such as a transparent one-pixel image.
  • the beacon code can be provided as a script to be executed by scripting engine 116.
  • the beacon code causes client machine 107 to generate resource requests 105 to data collection server 106.
  • Data collection server 106 records such requests in a log 108, and can also record additional information associated with the request (such as the date and time, and possibly some identifying information that may be encoded in the resource request). Thus, data collection server 106 records the occurrence of a "hit" to web page 102.
  • Data collection server 106 also transmits the requested one-pixel image to client machine 107 so that the resource request is satisfied.
  • beacon code causes client machine 107 to store descriptions of such intra-page interactions locally.
  • Any type of local storage mechanism can be used, such as for example a cookie file 115. h one embodiment, each intra-page interaction is stored in a separate cookie file 115; in another embodiment, a single cookie file 115 is initiated for the first intra-page interaction on web page 102, and subsequent intra-page interactions are appended to the existing cookie file 115.
  • client machine 107 Upon occurrence of a triggering event, client machine 107 transmits, to server 106, a resource request 105 including the intra-page interaction descriptions that have been locally stored. In one embodiment, once the intra-page interaction descriptions have been transmitted, they are deleted from local storage, h another embodiment, client machine 107 awaits an acknowledgment from server 106 that the data was received, and deletes the descriptions from local storage in response to such an acknowledgment, hi another embodiment, locally stored descriptions are retained and/ or archived.
  • One such triggering event is a page load.
  • client machine 107 transmits a description of the new page load along with accumulated intra-page interaction descriptions for the "old" page.
  • a single request 105 contains both the new page load description and the intra-page interaction descriptions.
  • a request 105 including the descriptions can be transmitted periodically based on some predetermined time period, or once a certain amount of data has been accumulated, or in response to any or all of the following: the user terminating the browser 110 application; shutdown of client machine 107; loss of a network connection; reestablishment of a network connection; startup after unexpected shutdown (such as from a power loss) or after a crash; explicit directive from the user; explicit directive from content server 101 or data collection server 106 or some other entity; or the like.
  • triggering events can be used in connection with the present invention without departing from its essential characteristics.
  • communications between client machine 107, content server 101, and data collection server 106 are accomplished using well known network protocols, such as TCP/IP and HTTP, for communication across the Internet. Other communication methodologies and protocols can also be used.
  • TCP/IP and HTTP network protocols
  • Other communication methodologies and protocols can also be used.
  • Page 102A is displayed, and request 202A is transmitted to server 106 containing a description of the page load. While the user is viewing page 102A, he or she performs various intra-page interactions. Descriptions 301 of these interactions are stored in local data store such as cookie file 115. When the user navigates to page 102B, request 202B is transmitted, conta ⁇ iing a description of the page 102B along with descriptions 301 of the intra-page interactions from page 102A. [0050] In one embodiment, the generation and transmission of requests to server 106 are performed by browser 110 in response to scripting commands from the beacon code embedded in web pages 102. Specifically, in one embodiment the beacon code is provided in JavaScript or some other client-side script language, and JavaScript (or other scripting) engine 116 performs the generation and transmission of requests to server 106. ,
  • Fig. 4 there is shown a flow chart depicting a method for tracking intra-page interactions according to one embodiment of the present invention.
  • the user requests 402 a web page 102.
  • Client machine 107 receives web page 102 including beacon code, and displays 410 it.
  • beacon code runs 404; this is code that was embedded in web page 403 and is capable of being executed by scripting engine 116 in browser 110.
  • client machine 107 determines 406 whether the action is a new page load (or whether some other trigger event has taken place). If no trigger event has taken place, and if the new action is not a new page load, then the action is an intra-page interaction.
  • Client machine 107 locally stores 407 a description of the interaction in cookie file 115, and returns to step 405. [0053] If, in 406, the action is a new page load, or if a trigger event is detected, client machine 107 generates and transmits 408 a request 105 to data collection server 106, including the accumulated locally stored descriptions of intra- page interactions. As described above, this request 105 can also include a description of the new page load, if appropriate. In one embodiment, client machine 107 performs step 408 under the direction of new beacon code from the new web page; thus step 403 would be performed (for the new web page) before step 408.
  • client machine 107 performs step 408 without having detected 405 a new user interaction, in response to a triggering event taking place.
  • client machine 107 once client machine 107 has transmitted locally stored descriptions, it deletes 409 the descriptions from local storage. As described above, in another embodiment client machine 107 awaits an acknowledgment from server 106 before deleting locally stored descriptions. In yet another embodiment, locally stored descriptions are retained and/ or archived.
  • the user may close the browser or move on to a page that does not include a web beacon.
  • the locally stored descriptions are simply deleted or allowed to expire.
  • the locally stored descriptions are retained until the next time the user does request another page containing an appropriate web beacon, either in the current web session or in some future session; at that time, the descriptions are transmitted as part of a resource request as described above.
  • client machine 107 checks to see if the next page being requested is within the current domain. If it is, client machine 107 assumes that there will be web beacon code on this page and it does nothing further
  • client machine 107 initiates a special request to data collection server
  • the present invention can be used to capture many different types of interactions. For example, it may be desirable to track mouse movements across a web page 102. Accordingly, in one embodiment a client-side script timer (not shown) collects the coordinates of the mouse every few seconds and stores them in a local data store such as cookie file 115. When the user indicates that he or she wishes to move to another page 102, or closes browser 110, client machine 107 initiates a connection to data collection server 106 and transmits a request including the collected mouse coordinates. In one embodiment this operation is performed under the direction of web beacon code on the newly requested page 102; in another embodiment the operation is performed under the direction of special code detecting the user action or other trigger event.
  • the invention is described herein in the context of tracking intra-page interactions on a website. However, one skilled in the art will recognize that the invention can also be used to capture other types of data, and that it can further be adapted to collect data at different frequencies. For example, it may be determined to be advantageous to pass in the name of the page being viewed only once for every five pages viewed. Using the techniques of the present invention, client machine 107 can locally store the name of the page 102 being viewed each time a page 102 is accessed.
  • client machine 107 initiates a connection to data collection server 106 and transmits a request including the accumulated data.
  • trigger events can also be used to initiate transmission of data, such as for example clicking on a particular link or visiting a particular page.
  • a website spans multiple domains, such an approach is helpful to avoid inherent limitations in cookie use.
  • a cookie is only available on the domain that created the cookie.
  • client machine 107 identifies links that point to a domain different from the current domain.
  • client machine 107 initiates a connection to data collection server 106 and transmits a request including the accumulated data before the new domain is entered.
  • client machine 107 detects actions that will result in the browser being closed or terminated. If the user closes the browser before locally stored data has been sent to server 106, the impending close operation is detected so that data from the local store can be transmitted. For example, client machine 107 might delay the close of the browser for a few rnilliseconds while it transmits the locally stored data.
  • determining'' or “displaying” or the like refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities witliin the computer system's registers and memories into other data similarly represented as physical quantities within the computer system's memories or registers or other such information storage, transmission or display devices.
  • the present invention also relates to an apparatus for performing the operations herein.
  • This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer.
  • a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.
  • ROMs read-only memories
  • RAMs random access memories
  • EPROMs electrically erasable programmable read-only memories
  • EEPROMs electrically erasable programmable read-only memory
  • magnetic or optical cards or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.
  • the invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof.
  • the particular architectures depicted above are merely exemplary of one implementation of the present invention.
  • the functional elements and method steps described above are provided as illustrative examples of one technique for implementing the hivention; one skilled in the art will recognize that many other implementations are possible without departing from the present hivention as recited in the claims.
  • the particular capitalization or naming of the modules, protocols, features, attributes, or any other aspect is not mandatory or significant, and the mechanisms that implement the invention or its features may have different names or formats.
  • the present invention may be implemented as a method, process, user interface, computer program product, system, apparatus, or any combination thereof. Accordingly, the disclosure of the present invention is intended to be illustrative, but not limiting, of the scope of the hivention, which is set forth in the following claims.

Abstract

User behavior on a website, including intra-page interactions, are tracked while avoiding the need to transmit each intra-page interaction to the data collection server (106) via a separate request. Client-side code instructs the client to store intra-page interaction data in a local store such as a cookie file (115). The client transmits the accumulated data to the data collection server in response to a triggering event. For example, data may be transmitted when a new page is loaded, or when the web browser application crashes or is terminated, or when the client machine is turned off, or at periodic intervals, or in response to any other type of triggering event.

Description

DELAYED TRANSMISSION OF WEBSITE USAGE DATA
Inventors:
Brett M. Error
Christopher Reϊd Error
Christopher Luby
Related Applications
[0001] This application claims priority from United States Provisional
Application Serial No. 60/452,085, dated March 4, 2003, entitled "Delayed Data Collection Using Web Beacon-Based Tracking Methods," (Attorney Docket No. 7652), the contents of which are incorporated by reference.
[0002] This application further claims priority from United States Provisional
Application Serial No. 60/452,084, dated March 4, 2003, entitled "Associating Website Clicks with Links on a Web Page," (Attorney Docket No. 7651), the contents of which are incorporated by reference.
[0003] This application is related to U.S. Patent Application Serial No.
10/608,515 entitled "Efficient Click-Stream Data Collection" (Attorney Docket No. 7132), filed June 26, 2003; U.S. Patent Application Serial No. 10/608,442 entitled "Custom Event and Attribute Generation for Use in Website Traffic Data Collection" (Attorney Docket No. 7133), filed June 26, 2003; U.S. Patent Application Serial No. 10/609,008 entitled "Capturing and Presenting Site Visitation Path Data" (Attorney
Docket No. 8054), filed June 27, 2003; and U.S. Patent Application Serial No. entitled "Associating Website Clicks with Links On A Web Page" (Attorney Docket No. 7762), filed on the same date as the present application. The contents of these related patent applications are incorporated herein by reference. Field of the Invention
[0004] The present invention is related to tracking website usage, and more particularly to locally storing data describing website usage to enable delayed transmission of the website usage data.
Description of the Background Art
[0005] In an on-line environment, website usage and other customer behavior may be tracked by a website server, or by another server such as a data collection server (also known as a data collector), which may be remotely located. The data collection server is notified of activity on a website so that it can monitor and track the activity. One method of achieving this notification is through the use of a request for embedded content.
[0006] Embedded content is part of a web page, such as an image, that is requested as a separate file from the file containing the web page. The separate file may be requested from the website server or fro a remote server, such as a remote content server or data collection server. For example, when a user requests a web page from a website server, the website server sends the web page file to the user's client. The client, such as a web browser, then attempts to render the file as a viewable web page. However, upon rendering the web page file, the client may find a reference to a separate file located on the website server or a remote server. After the content is located and sent to the client, the client renders the separate file containing the embedded content along with the original web page.
[0007] A web beacon (also known as a web bug) is a particular type of embedded content where the content itself is irrelevant, but the request for content carries useful information. For example, a web beacon is often a transparent image having very small dimensions, such as 1 pixel by 1 pixel. This image is small enough to be invisible to the user. When a client is rendering a web page that includes a web beacon, the web beacon causes the client to send a resource request to a server such as a data collection server. The web beacon may include a script (or other code) that causes the client to include, in the resource request, additional information about the user and the user's environment. The additional information can include the data from a cookie, or other information about the client's operating environment or status. Where the server indicated by the web beacon code is a data collection server, the data collection server may, in response to the request, cause the client to set an additional cookie for identification for tracking purposes. In this manner, the web beacon request can be used to indicate to a data collection server that a particular web page is being rendered.
[0008] One method for including the request is to write the request as a static image tag in Hypertext Markup Language (HTML). The following is an example of an image tag in HTML: [0009] <img src="http://ad.datacollectionserver.com/tracker.exe?AID=14658&PID=259294&bai'me r=0.gif" width=l height=l border=0>
[0010] Here, the term "ad.datacollectionserver.com" refers to the address of the data collection server.
[0011] Another common method of including the request is to use a scripting language such as JavaScript so as to cause the browser to dynamically generate a request to the data collection server. One advantage of using a script instead of a static image tag is that the script can perform other functions including gathering additional data and sending it along with the request, h either case, the result is a request sent to the data collection server upon the occurrence of an event, such as the loading and rendering of a web page.
[0012] Once the request has been sent to the data collection server, the data collection server can perform various types of tracking functions. For example, the data collection server can count the number of requests so as to monitor traffic on the web page. By counting the number of times the web beacon element has been requested from the data collection server, the server can determine the number of times a particular page was viewed. By using JavaScript to dynamically construct the request for the web beacon and encode additional information, other identifying information can be obtained for further analysis. [0013] It is often desirable to track intra-page interactions as well as page views. Intra-page interactions are actions performed by the user while viewing a document such as a web page. For example, a user may click witliin a specified area of the screen, or cause the cursor to move to or hover over a particular element or area of the screen; such actions may or may not cause a new page to be loaded. Some prior art systems track such intra-page interactions by requesting web beacons via a background process in response to certain intra-page interaction events. For example, a web beacon request might be generated each time the cursor passes over a particular element.
[0014] Fig. 2 depicts an example of such a technique for tracking intra-page interactions according to a prior art method. When the user requests page A, a request describing the page load is sent to a data collection server. For each intra-page interaction that is performed with respect to page A, a new request describing the interaction is sent. Similarly, individual requests are sent for interactions taking place with respect to page B (as well as a request describing the page load of page B). For each action and each page load, a separate request is sent to the server. Such repeated generation of web beacon requests is inefficient and time-consuming, and it can result in undesirably slow performance and responsiveness.
[0015] What is needed is a technique for enabling such detailed usage tracking, while avoiding or reducing any reduction in perceived performance and responsiveness. What is further needed is a technique for intra-page interaction tracking that reduces or eliminates the need to make a new request for each event. What is further needed is a technique for usage tracking that reduces costs by reducmg the number of requests generated in tiansrnitting website usage data. What is further needed is a technique that avoids the Hmitations and shortcomings of prior art user behavior tracking methodologies.
Summary of the Invention
[0016] According to the techniques of the present invention, interactions are tracked while avoiding the need to transmit each interaction to the data collection server via a separate request. Instead, client-side code (such as JavaScript) instructs the client to store the interaction data in a local data store. For example, a description of each interaction may be locally stored in a cookie file, hi one embodiment, the invention is used for transmitting descriptions of intra-page interactions; in another embodiment, it is used for transmitting interpage or other types of interactions. [0017] In one embodiment, the present invention operates in the context of a browser for displaying web pages at a client machine. The format of the locally stored data may vary depending on the type of data being collected, and any number of cookies (or other types of local data stores) may be used. When multiple cookies are used, the data may be split among the cookies in any fashion appropriate to collection. Alternatively, any other local data store available to the client can be used. [0018] The client transmits the accumulated data to the data collection server in response to a triggering event. For example, data may be transmitted when a new page is loaded, or when the browser application crashes or is terminated, or when the client machine is turned off, or at periodic intervals, or in response to any other type of triggering event. '
[0019] In one embodiment, when a new page is loaded, the client transmits information to the data collection server to describe the page view being loaded as well as accumulated information about intra-page interactions that occurred previous to the page view being loaded. The data collection server receives the data, and separates it into two components: data about the current page view; and accumulated data contained in the local data store from previous activity. Once transmitted to the server, the data is cleared from the local data store, so as to reset the buffer for additional information.
[0020] In this way, the invention locally stores data describing intra-page interaction, so that the accumulated data can be transmitted to the data collection server more efficiently. In particular, the invention avoids the need to open a new connection with the data collection server, or to transmit a new request to the data collection server, each time an intra-page interaction takes place. Brief Description of the Drawings
[0021] Fig. 1 is a block diagram depicting a system for delayed transmission of website usage data according to one embodiment of the present invention.
[0022] Fig. 2 is a block diagram depicting an example of tracking intra-page interactions according to the prior art.
[0023] Fig. 3 is a block diagram depicting an example of tracking intra-page interactions according to one embodiment of the present invention.
[0024] Fig. 4 is a flow chart depicting a method for tracking intra-page interactions according to one embodiment of the present invention.
[0025] The figures depict a preferred embodiment of the present invention for purposes of illustration only. One skilled in the art will readily recognize from the following discussion that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles of the invention described herein.
Description of an Embodiment of the Invention
[0026] In the following description, the term "intra-page interaction" is used to refjer to any type of detectable activity or action performed by the user while viewing a document such as a web page. Examples of intra-page activity include, without limitation:
[0027] - passing the mouse over a link on the page
[0028] - moving the mouse around the document
[0029] - clicking on a hyperlink
[0030] - clicking on or changing the value of a form field
[0031] - submitting a form
[0032] - scrolling
[0033] - clicking on a check box, radio button, or other element of the page
[0034] - selecting text, drawing, or other object on the page
[0035] - starting, stopping, or pausing video or audio playback
[0036] - activating keyboard-based commands [0037] - and the like.
[0038] Some of these actions cause a new page to be loaded. In such cases, in one embodiment intra-page interaction is considered to include everything that takes place in response to such an action until the new page is actually requested. For example, clicking on a hyperlink generates an "onClick" event in the document, which can be captured by JavaScript and is considered to be intra-page interaction. After handling the onClick event, the browser requests the document to which the link points, leading to a new page load. Similarly, when closing the browser or moving to another page the "onUnload" event is generated before moving on or closing the browser; this onUnload event is also considered to be an intra-page interaction. [0039] In the following description, the invention is set forth in terms of tracking intra-page interactions. However, one skilled in the art will recognize that the techniques of the invention can be used for tracking intra-page, interpage, or other types of interactions.
[0040] As described above, Fig. 2 depicts an example of tracking intra-page interactions according to a prior art method. When the user requests page A 102A, request 202A describing the page load is sent to data collection server 106. For each intra-page interaction that is performed with respect to page A, a new request 202C describing the interaction is sent to server 106. Similarly, individual requests 202D are sent for interactions taking place with respect to page B 102B (as well as request 202B describing the page load of page B 102B). Each action is transmitted to data collection server 106 independently. Thus, for the example shown wherein two pages 102A, 102B are visited and wherein three intra-page interactions are performed on each page, a total of eight requests 202A, 202B, 202C, 202D are transmitted to server 106. [0041] Referring now to Fig. 1, there is shown a block diagram depicting a system for delayed transmission of website usage data according to one embodiment of the present invention. User 112 interacts with client machine 107, which runs a software application such as browser 110 for accessing and displaying web pages. Client machine 107 may be an ordinary personal computer, including well-known components such as a CPU rum ing an operating system such as Microsoft Windows, a keyboard, mouse, display screen, and Internet connection (not shown). CHent machine 107 may run various software applications in addition to browser 110. Browser 110 includes scripting engine 116, such as JavaScript, as is commonly found in commercially available browsers. In response to a user 112 action such as clicking on a link or typing in a URL, client machine 107 issues a web page request 111 that is transmitted via the Internet to content server 101. In response to request 111, content server 101 transmits web page 102 (in the form of HTML code, for example) to client machine 107. Browser 110 displays the requested web page 102 on client machine 107. [0042] Web page 102 includes beacon code, which in one embodiment is a pointer to a beacon (such as a 1 pixel by 1 pixel transparent image). The beacon is typically invisible to the user, such as a transparent one-pixel image. The beacon code can be provided as a script to be executed by scripting engine 116. The beacon code causes client machine 107 to generate resource requests 105 to data collection server 106. Data collection server 106 records such requests in a log 108, and can also record additional information associated with the request (such as the date and time, and possibly some identifying information that may be encoded in the resource request). Thus, data collection server 106 records the occurrence of a "hit" to web page 102. Data collection server 106 also transmits the requested one-pixel image to client machine 107 so that the resource request is satisfied.
[0043] While user 112 is viewing page 102, he or she may perform any number of intra-page interactions. Rather than generate and transmit separate resource requests to server 106 for each such interaction, the beacon code causes client machine 107 to store descriptions of such intra-page interactions locally. Any type of local storage mechanism can be used, such as for example a cookie file 115. h one embodiment, each intra-page interaction is stored in a separate cookie file 115; in another embodiment, a single cookie file 115 is initiated for the first intra-page interaction on web page 102, and subsequent intra-page interactions are appended to the existing cookie file 115.
[0044] Upon occurrence of a triggering event, client machine 107 transmits, to server 106, a resource request 105 including the intra-page interaction descriptions that have been locally stored. In one embodiment, once the intra-page interaction descriptions have been transmitted, they are deleted from local storage, h another embodiment, client machine 107 awaits an acknowledgment from server 106 that the data was received, and deletes the descriptions from local storage in response to such an acknowledgment, hi another embodiment, locally stored descriptions are retained and/ or archived.
[0045] One such triggering event is a page load. Thus, when a new web page
102 is requested, client machine 107 transmits a description of the new page load along with accumulated intra-page interaction descriptions for the "old" page. In one embodiment, a single request 105 contains both the new page load description and the intra-page interaction descriptions.
[0046] In other embodiments, other types of events can trigger transmission of the intra-page interaction descriptions. For example, a request 105 including the descriptions can be transmitted periodically based on some predetermined time period, or once a certain amount of data has been accumulated, or in response to any or all of the following: the user terminating the browser 110 application; shutdown of client machine 107; loss of a network connection; reestablishment of a network connection; startup after unexpected shutdown (such as from a power loss) or after a crash; explicit directive from the user; explicit directive from content server 101 or data collection server 106 or some other entity; or the like. One skilled in the art will recognize that many other types of triggering events can be used in connection with the present invention without departing from its essential characteristics. [0047] In one embodiment, communications between client machine 107, content server 101, and data collection server 106 are accomplished using well known network protocols, such as TCP/IP and HTTP, for communication across the Internet. Other communication methodologies and protocols can also be used. [0048] Referring now to Fig. 3, there is shown a block diagram depicting an example of tracking intra-page interactions according to one embodiment of the present invention.
[0049] Page 102A is displayed, and request 202A is transmitted to server 106 containing a description of the page load. While the user is viewing page 102A, he or she performs various intra-page interactions. Descriptions 301 of these interactions are stored in local data store such as cookie file 115. When the user navigates to page 102B, request 202B is transmitted, contaύiing a description of the page 102B along with descriptions 301 of the intra-page interactions from page 102A. [0050] In one embodiment, the generation and transmission of requests to server 106 are performed by browser 110 in response to scripting commands from the beacon code embedded in web pages 102. Specifically, in one embodiment the beacon code is provided in JavaScript or some other client-side script language, and JavaScript (or other scripting) engine 116 performs the generation and transmission of requests to server 106. ,
[0051 ] Referring now to Fig. 4, there is shown a flow chart depicting a method for tracking intra-page interactions according to one embodiment of the present invention. The user requests 402 a web page 102. Client machine 107 receives web page 102 including beacon code, and displays 410 it. As web page 102 is displayed, beacon code runs 404; this is code that was embedded in web page 403 and is capable of being executed by scripting engine 116 in browser 110. [0052] When a user action is detected 405, client machine 107 determines 406 whether the action is a new page load (or whether some other trigger event has taken place). If no trigger event has taken place, and if the new action is not a new page load, then the action is an intra-page interaction. Client machine 107 locally stores 407 a description of the interaction in cookie file 115, and returns to step 405. [0053] If, in 406, the action is a new page load, or if a trigger event is detected, client machine 107 generates and transmits 408 a request 105 to data collection server 106, including the accumulated locally stored descriptions of intra- page interactions. As described above, this request 105 can also include a description of the new page load, if appropriate. In one embodiment, client machine 107 performs step 408 under the direction of new beacon code from the new web page; thus step 403 would be performed (for the new web page) before step 408.
[0054] One skilled in the art will recognize that some triggering events are not related to user interactions. Thus, in some situations client machine 107 performs step 408 without having detected 405 a new user interaction, in response to a triggering event taking place. [0055] In one embodiment, once client machine 107 has transmitted locally stored descriptions, it deletes 409 the descriptions from local storage. As described above, in another embodiment client machine 107 awaits an acknowledgment from server 106 before deleting locally stored descriptions. In yet another embodiment, locally stored descriptions are retained and/ or archived.
[0056] In some cases, after descriptions have been stored locally, the user may close the browser or move on to a page that does not include a web beacon. In one embodiment, in such a situation the locally stored descriptions are simply deleted or allowed to expire. In another embodiment, the locally stored descriptions are retained until the next time the user does request another page containing an appropriate web beacon, either in the current web session or in some future session; at that time, the descriptions are transmitted as part of a resource request as described above. In another embodiment, in such a situation client machine 107 checks to see if the next page being requested is within the current domain. If it is, client machine 107 assumes that there will be web beacon code on this page and it does nothing further
(since the new beacon code will contain appropriate instructions that will result in the locally stored descriptions being sent). If the page being requested is not within the current domain, client machine 107 initiates a special request to data collection server
106 to transmit the locally stored information before moving on to the next page.
[0057] The present invention can be used to capture many different types of interactions. For example, it may be desirable to track mouse movements across a web page 102. Accordingly, in one embodiment a client-side script timer (not shown) collects the coordinates of the mouse every few seconds and stores them in a local data store such as cookie file 115. When the user indicates that he or she wishes to move to another page 102, or closes browser 110, client machine 107 initiates a connection to data collection server 106 and transmits a request including the collected mouse coordinates. In one embodiment this operation is performed under the direction of web beacon code on the newly requested page 102; in another embodiment the operation is performed under the direction of special code detecting the user action or other trigger event. [0058] The invention is described herein in the context of tracking intra-page interactions on a website. However, one skilled in the art will recognize that the invention can also be used to capture other types of data, and that it can further be adapted to collect data at different frequencies. For example, it may be determined to be advantageous to pass in the name of the page being viewed only once for every five pages viewed. Using the techniques of the present invention, client machine 107 can locally store the name of the page 102 being viewed each time a page 102 is accessed.
Once the number of pages 102 in the local store exceeds five (or whatever threshold number is appropriate), client machine 107 initiates a connection to data collection server 106 and transmits a request including the accumulated data.
[0059] Other trigger events can also be used to initiate transmission of data, such as for example clicking on a particular link or visiting a particular page. In particular, when a website spans multiple domains, such an approach is helpful to avoid inherent limitations in cookie use. In general, a cookie is only available on the domain that created the cookie. Thus, in order to avoid data loss when moving from one domain to another, in one embodiment client machine 107 identifies links that point to a domain different from the current domain. In response to a user clicking on such a link, client machine 107 initiates a connection to data collection server 106 and transmits a request including the accumulated data before the new domain is entered.
[0060] h another embodiment, client machine 107 detects actions that will result in the browser being closed or terminated. If the user closes the browser before locally stored data has been sent to server 106, the impending close operation is detected so that data from the local store can be transmitted. For example, client machine 107 might delay the close of the browser for a few rnilliseconds while it transmits the locally stored data.
[0061] In the above description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the hivention. It will be apparent, however, to one skilled in the art that the invention can be practiced without these specific details, hi other instances, structures and devices are shown in block diagram form in order to avoid obscuring the invention. [0062] Reference in the specification to "one embodiment" or "an embodiment" means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. The appearances of the phrase "in one embodiment" in various places in the specification are not necessarily all referring to the same embodiment.
[0063] Some portions of the detailed description are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self -consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
[0064] It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the discussion, it is appreciated that throughout the description, discussions utilizing terms such as "processing" or "computing" or "calculating" or
' "determining'' or "displaying" or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities witliin the computer system's registers and memories into other data similarly represented as physical quantities within the computer system's memories or registers or other such information storage, transmission or display devices.
[0065] The present invention also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus. [0066] The algorithms and displays presented herein are not inherently related to any particular computer, network of computers, or other apparatus. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct a more specialized apparatus to perform the required method steps. The required structure for a variety of these systems appears from the description. In addition, the present invention is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the invention as described herein.
[0067] As will be understood by those familiar with the art, the invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. For example, the particular architectures depicted above are merely exemplary of one implementation of the present invention. The functional elements and method steps described above are provided as illustrative examples of one technique for implementing the hivention; one skilled in the art will recognize that many other implementations are possible without departing from the present hivention as recited in the claims. Likewise, the particular capitalization or naming of the modules, protocols, features, attributes, or any other aspect is not mandatory or significant, and the mechanisms that implement the invention or its features may have different names or formats. In addition, the present invention may be implemented as a method, process, user interface, computer program product, system, apparatus, or any combination thereof. Accordingly, the disclosure of the present invention is intended to be illustrative, but not limiting, of the scope of the hivention, which is set forth in the following claims.

Claims

Claims[0068] What is claimed is:
1. A method of collecting and transmitting data describing user behavior on a web page, comprising: displaying the web page; detecting a first event; locally storing, at a client, a description of the first event; detecting a second event; locally storing, at the client, a description of the second event; responsive to a third event, tiansixiitting to a data collection server, the descriptions of the first and second events.
2. The method of claim 1, wherein: locally storing a description of the first event comprises stormg the description in a cookie file; and locally storing a description of the second event comprises storing the description in the cookie file.
3. The method of claim 1, wherein: locally storing a description of the first event comprises stormg the description in a cookie file; and locally storing a description of the second event comprises appending the description to the cookie file.
4. The method of claim 1, wherein: locally storing a description of the first event comprises storing the description in a first cookie file; and locally storing a description of the second event comprises, storing the description in a second cookie file.
5. The method of claim 1, wherein: detecting a first event comprises detecting a first user action with respect to an element of the web page; and detecting a second event comprises detecting a second user action with respect to an element of the web page.
6. The method of claim 1, wherein: detecting a first event comprises detecting a first intra-page interaction; and detecting a second event comprises detecting a second intra-page interaction.
7. The method of claim 1, wherein: at least one of the first and second events comprises a cursor movement.
8. The method of claim 1, wherein the third event comprises a request for a new web page.
9. The method of claim 1, wherein the web page is associated with a first domam, and wherein the third event comprises a request for a web page associated with a second domain.
10. The method of claim 1, wherein the third event comprises expiry of a predetermined period of time.
11. The method of claim 1, wherein the third event comprises at least one selected from the group consisting of: termination of a client application; shutdown of the client; explicit user command; explicit directive received from the server; explicit directive received from another source; launch of a client application after it has been previously terminated; re-estabHshment of a network connection f ollowing a loss; and re-establishment of power following an outage.
12. The method of claim 1, further comprising repeating the detecting and stormg steps until the third event is detected.
13. The method of claim 1, wherein the third event comprises storage of a predetermined number of event descriptions.
14. The method of claim 1, further comprising: responsive to the thud event, deleting the locally stored descriptions of the first and second events.
15. The method of claim 1, further comprising: responsive to an indication that the transmitted descriptions have been received, deleting the locally stored descriptions of the first and second events.
16. A method of collecting and transmitting data describmg user behavior on a web page, comprising: displaying the web page; detecting a first event; locally storing, at a client, a description of the first event; responsive to a second event, ti'ansmitting to a data collection server, the description of the first event.
17. The method of claim 16, wherein: locally storing a description of the fust e^ent comprises stormg the description in a cookie file.
18. The method of claim 16, wherein: detecting a first event comprises detecting an intra-page interaction.
19. The method of claim 16, wherem the second event comprises a request for a new web page.
20. A method of collecting and ti'ansmitting data describing user behavior on a web page, comprising: displaying the web page; periodically performing the steps of: collecting coordinates for an on-screen cursor; and locally storing the coordinates at a client; and responsive to a trigger event, tiansmitting to a data collection server, the stored coordinates.
21. The method of claim 20, wherein: locally storing the coordmates comprises storing the coordinates in a cookie file.
22. The method of claim 20, wherein the trigger event comprises a request for a new web page.
23. A computer program product for collecting and transmitting data describing user behavior on a web page, comprising: a computer-readable medium; and computer program code, encoded on the medium, for: displaying the web page; detecting a first event;' locally stormg, at a client, a description of the first event; detecting a second event; locally storing, at the client, a description of the second event; responsive to a third event, tiansmitting to a data collection server, the descriptions of the first and second events.
24. The computer program product of claim 23, wherem: the computer program code for locally storing a description of the first event comprises computer program code for storing the description in a cookie file; and the computer program code for locally stormg a description of the second event comprises computer program code for storing the description the cookie file.
25. The computer program product of clai 23, wherem: the computer program code for locally storing a description of the first event comprises computer program code for storing the description in a cookie file; and the computer program code for locally storing a description of the second event comprises computer program code for appending the description to the cookie file.
26. The computer program product of claim 23, wherein: the computer program code for locally storing a description of the first event comprises computer progra code for stormg the description in a first cookie file; and the computer program code for locally storing a description of the second event comprises computer program code for stormg the description a second cookie file.
27. The computer program product of claim 23, wherein: the computer program code for detecting a first event comprises computer program code for detecting a first user action with respect to an element of the web page; and the computer program code for detecting a second event comprises computer program code for detecting a second user action with respect to an element of the web page.
28. The computer program product of claim 23, wherem: the computer program code for detecting a fust event comprises computer program code for detecting a first intra-page interaction; and the computer program code for detecting a second event comprises computer program code for detecting a second intra-page teraction.
29. The computer program product of claim 23, wherem: at least one of the first and second events comprises a cursor movement.
30. The computer program product of claim 23, wherem the thud event comprises a request for a new web page.
31. The computer program product of claim 23, wherein the web page is associated with a first domam, and wherein the third event comprises a request for a web page associated with a second domain.
32. The computer program product of claim 23, wherein the thud event comprises expiry of a predetermined period of time.
33. The computer program product of claim 23, wherein the third event comprises at least one selected from the group consisting of: termination of a client application; shutdown of the client; explicit user command; explicit directive received from the server; explicit directive received from another source; launch of a client application after it has been previously terminated; re-establishment of a network connection following a loss; and re-establishment of power following an outage.
34. The computer program product of claim 23, further comprising computer program code for repeating the detecting and storing steps until the third event is detected.
35. The computer program product of claim 23, wherem the third event comprises storage of a predetermined number of event descriptions.
36. The computer program product of claim 23, further comprismg computer program code, encoded on the medium, for: responsive to the third event, deleting the locally stored descriptions of the first and second events.
37. The computer program product of claim 23, further comprising computer program code, encoded on the medium, for: responsive to an indication that the transmitted descriptions have been received, deleting the locally stored descriptions of the first and second events.
38. A computer program product for collecting and transmitting data describing user behavior on a web page, comprising: a computer-readable medium; and computer program code, encoded on the medium, for: displaying the web page; detecting a first event; locally storing, at a client, a description of the first event; responsive to a second event, transmitting to a data collection server, the description of the first event.
39. The computer program product of claim 38, where : the computer program code for locally storing a description of the first event comprises computer program code for storing the description in a cookie file.
40. Hie' computer program product of claim 38, wherem: the computer program code for detecting a first event comprises computer program code for detecting an intra-page mteraction.
41. The computer program product of claim 38, wherein the second event comprises a request for a new web page.
42. A computer program product for collecting and transmitting data describmg user behavior on a web page, comprismg: a computer-readable medium; and computer program code, encoded on the medium, for: displaying the web page; periodically performing the steps of: collecting coordmates for an on-screen cursor; and locally stormg the coordmates at a client; and responsive to a trigger event, tiansinitting to a data collection server, the stored coordinates.
43. The computer program product of claim 42, wherein: the computer program code for locally stormg the coordinates comprises computer program code for storing the coordinates in a cookie file.
44. The computer program product of claim 42, wherein the trigger event comprises a request for a new web page.
45. A system for collecting and tiansmitting data describing user behavior on a web page, comprising: a display screen, for displaying the web page; a user mput device, for detecting a fkst event and for detecting a second event; a client-based storage device, coupled to the user mput device, for locally storing a description of the first event and for locally stormg a description of the second event; a network interface, coupled to the storage device, for responsive to a thud event, tiansmitting to a data collection server, the descriptions of the fust and second events.
46. The system of claim 45, wherein the client-based storage device comprises a cookie file.
47. The system of claim 45, wherein: the first event comprises a first intra-page mteraction; and the second event comprises a second intra-page mteraction.
48. The system of claim 45, wherein: at least one of the first and second events comprises a cursor movement.
49. The system of claim 45, wherein the thud event comprises a request for a new web page.
50. The system of claim 45, wherein the web page is associated with a fust domam, and wherein the thud event comprises a request for a web page associated with a second domain.
51. The system of claim 45, wherein the third event comprises expiry of a predetermined period of time.
52. The system of claim 45, wherein the thud event comprises at least one selected from the group consisting of: terrrύnation of a client application; shutdown of the client; explicit user command; exphcit directive received from the server; explicit directive received from another source; launch of a client application after it has been previously terminated; re-establishment of a network connection following a loss; and re-establishment of power following an outage.
53. The system of claim 45, wherein the user input device continues to detect events and the storage device continues to store descriptions of the events the tliird event is detected.
54. The system of claim 45, wherein the third event comprises storage of a predetermined number of event descriptions.
55. The system of claim 45, wherein: responsive to the third event, the storage device deletes the locally stored descriptions of the first and second events.
56. The system of claim 45, wherein: responsive to an indication that the transmitted descriptions have been received, the storage device deletes the locally stored descriptions of the first and second events.
57. A system for collecting and tiansmitting data describing user behavior on a web page, comprising: a display screen, for displaying the web page; a user input device, for detecting a first event; a client-based storage device, coupled to the user input device, for locally stor g a description of the first event; a network interface, coupled to the storage device, for responsive to a second event, tiansmitting to a data collection server, the description of the first event.
58. The system of claim 57, wherem the client-based storage device comprises a cookie file.
59. The system of claim 57, wherein: the first event comprises an intra-page mteraction.
60. The system of claim 57, wherein the second event comprises a request for a new web page.
61. A system for collecting and transmitting data describmg user behavior on a web page, comprising: a display screen, for displaying the web page; a user input device, for periodically collecting coordinates for an on-screen cursor; a client-based storage device, coupled to the user input device, for locally stormg the coordinates; and a network interface, coupled to the storage device, for responsive to a trigger event, transmitting to a data collection server, the stored coordinates.
62. The system of claim 61, wherein the storage device comprises a cookie file.
63. The system of claim 61, wherein the trigger event comprises a request for a new web page.
PCT/US2004/006696 2003-03-04 2004-03-04 Delayed transmission of website usage data WO2004079544A2 (en)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US45208503P 2003-03-04 2003-03-04
US45208403P 2003-03-04 2003-03-04
US60/452,085 2003-03-04
US60/452,084 2003-03-04
US10/795,079 US20050216844A1 (en) 2004-03-03 2004-03-03 Delayed transmission of website usage data
US10/795,079 2004-03-03
US10/794,809 2004-03-03
US10/794,809 US7441195B2 (en) 2003-03-04 2004-03-03 Associating website clicks with links on a web page

Publications (2)

Publication Number Publication Date
WO2004079544A2 true WO2004079544A2 (en) 2004-09-16
WO2004079544A3 WO2004079544A3 (en) 2005-06-02

Family

ID=32966714

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/US2004/006696 WO2004079544A2 (en) 2003-03-04 2004-03-04 Delayed transmission of website usage data
PCT/US2004/006898 WO2004079551A2 (en) 2003-03-04 2004-03-04 Associating website clicks with links on a web page

Family Applications After (1)

Application Number Title Priority Date Filing Date
PCT/US2004/006898 WO2004079551A2 (en) 2003-03-04 2004-03-04 Associating website clicks with links on a web page

Country Status (5)

Country Link
EP (1) EP1604349A4 (en)
JP (1) JP4633049B2 (en)
AU (1) AU2004217115C1 (en)
CA (1) CA2518109A1 (en)
WO (2) WO2004079544A2 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7240112B2 (en) 2000-05-26 2007-07-03 Ipass Inc. Service quality monitoring process
FR2911740A1 (en) * 2007-01-18 2008-07-25 Mediametrie Sa Audience measuring method for providing audience monitoring for video broadcasting in frame of TV, involves locally formatting detection parameters of detected action, and downloading parameters of detection action towards collection server
EP2199969A1 (en) * 2008-12-18 2010-06-23 Adtraction Marketing AB Method to track number of visitors or clicks
US8849847B2 (en) 2010-02-03 2014-09-30 Get Smart Content, Inc. Rules-based targeted content message serving systems and methods
US10977597B2 (en) * 2015-07-27 2021-04-13 Innovian Corporation System and method for validating data
WO2022019987A1 (en) * 2020-07-23 2022-01-27 Microsoft Technology Licensing, Llc Interaction signal processing in distributed computing systems
US11379776B2 (en) * 2015-07-27 2022-07-05 Innovian Corporation System and method for validating data
US11972098B2 (en) 2021-05-05 2024-04-30 Microsoft Technology Licensing, Llc Interaction signal processing in distributed computing systems

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7584435B2 (en) * 2004-03-03 2009-09-01 Omniture, Inc. Web usage overlays for third-party web plug-in content
JP2007109137A (en) * 2005-10-17 2007-04-26 Kan:Kk Portable telephone access identification system, web server, and control method for web server
US7877392B2 (en) 2006-03-01 2011-01-25 Covario, Inc. Centralized web-based software solutions for search engine optimization
US8838560B2 (en) 2006-08-25 2014-09-16 Covario, Inc. System and method for measuring the effectiveness of an on-line advertisement campaign
US8943039B1 (en) 2006-08-25 2015-01-27 Riosoft Holdings, Inc. Centralized web-based software solution for search engine optimization
US8972379B1 (en) 2006-08-25 2015-03-03 Riosoft Holdings, Inc. Centralized web-based software solution for search engine optimization
US9021140B2 (en) 2007-03-12 2015-04-28 Citrix Systems, Inc. Systems and methods for error detection
US8572160B2 (en) 2007-03-12 2013-10-29 Citrix Systems, Inc. Systems and methods for script injection
US8756340B2 (en) * 2007-12-20 2014-06-17 Yahoo! Inc. DNS wildcard beaconing to determine client location and resolver load for global traffic load balancing
US8190594B2 (en) 2008-06-09 2012-05-29 Brightedge Technologies, Inc. Collecting and scoring online references
US8396742B1 (en) 2008-12-05 2013-03-12 Covario, Inc. System and method for optimizing paid search advertising campaigns based on natural search traffic
US8560675B2 (en) * 2009-04-01 2013-10-15 Comscore, Inc. Determining projection weights based on a census data
US8234370B2 (en) 2009-06-30 2012-07-31 International Business Machines Corporation Determining web analytics information
US8671089B2 (en) 2009-10-06 2014-03-11 Brightedge Technologies, Inc. Correlating web page visits and conversions with external references
US8560610B2 (en) * 2010-06-16 2013-10-15 Brighttag Inc. Unified collection and distribution of data
CN103026350B (en) 2010-07-21 2016-02-10 英派尔科技开发有限公司 Server-client system, messaging device and method
JP2013235541A (en) * 2012-05-11 2013-11-21 Bank Of Tokyo-Mitsubishi Ufj Ltd Web system
US10210001B2 (en) 2015-11-04 2019-02-19 Observepoint, Inc. Automatic execution of objects in a user interface
US10360133B2 (en) 2016-02-04 2019-07-23 Observepoint Inc. Analyzing analytic element network traffic
GB2561802A (en) 2016-02-09 2018-10-24 Observepoint Inc Managing network communication protocols

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020087621A1 (en) * 2000-12-29 2002-07-04 Hendriks Chris L. Method and system to manage internet user navigation data
US20020093529A1 (en) * 2001-01-18 2002-07-18 Raja Daoud Method and apparatus to optimize a computing session based on user interaction with a computer
US20020099812A1 (en) * 1997-03-21 2002-07-25 Owen Davis Method and apparatus for tracking client interaction with a network resource and creating client profiles and resource database

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5758257A (en) * 1994-11-29 1998-05-26 Herz; Frederick System and method for scheduling broadcast of and access to video programs and other data using customer profiles
US5796952A (en) * 1997-03-21 1998-08-18 Dot Com Development, Inc. Method and apparatus for tracking client interaction with a network resource and creating client profiles and resource database
US6266649B1 (en) * 1998-09-18 2001-07-24 Amazon.Com, Inc. Collaborative recommendations using item-to-item similarity mappings
US6466970B1 (en) * 1999-01-27 2002-10-15 International Business Machines Corporation System and method for collecting and analyzing information about content requested in a network (World Wide Web) environment
CN1302410A (en) * 1999-03-26 2001-07-04 塔吉特玛奇有限公司 Method and system for multi-lingual on-line object matching
US6489968B1 (en) * 1999-11-18 2002-12-03 Amazon.Com, Inc. System and method for exposing popular categories of browse tree
US6848075B1 (en) * 2000-02-10 2005-01-25 International Business Machines Corporation Internet web browser with memory enhanced hyperlink display
US6850988B1 (en) * 2000-09-15 2005-02-01 Oracle International Corporation System and method for dynamically evaluating an electronic commerce business model through click stream analysis
JP2002183155A (en) * 2000-12-08 2002-06-28 Sony Corp Communication system, data gathering and distributing system, and storage medium stored with data gathering and distributing program
JP2002207764A (en) * 2001-01-09 2002-07-26 Kentop:Kk Commodity information distributing system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020099812A1 (en) * 1997-03-21 2002-07-25 Owen Davis Method and apparatus for tracking client interaction with a network resource and creating client profiles and resource database
US20020087621A1 (en) * 2000-12-29 2002-07-04 Hendriks Chris L. Method and system to manage internet user navigation data
US20020093529A1 (en) * 2001-01-18 2002-07-18 Raja Daoud Method and apparatus to optimize a computing session based on user interaction with a computer

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7240112B2 (en) 2000-05-26 2007-07-03 Ipass Inc. Service quality monitoring process
FR2911740A1 (en) * 2007-01-18 2008-07-25 Mediametrie Sa Audience measuring method for providing audience monitoring for video broadcasting in frame of TV, involves locally formatting detection parameters of detected action, and downloading parameters of detection action towards collection server
EP2199969A1 (en) * 2008-12-18 2010-06-23 Adtraction Marketing AB Method to track number of visitors or clicks
US8849847B2 (en) 2010-02-03 2014-09-30 Get Smart Content, Inc. Rules-based targeted content message serving systems and methods
US10977597B2 (en) * 2015-07-27 2021-04-13 Innovian Corporation System and method for validating data
US11379776B2 (en) * 2015-07-27 2022-07-05 Innovian Corporation System and method for validating data
WO2022019987A1 (en) * 2020-07-23 2022-01-27 Microsoft Technology Licensing, Llc Interaction signal processing in distributed computing systems
US11972098B2 (en) 2021-05-05 2024-04-30 Microsoft Technology Licensing, Llc Interaction signal processing in distributed computing systems

Also Published As

Publication number Publication date
JP4633049B2 (en) 2011-02-16
WO2004079551A2 (en) 2004-09-16
WO2004079544A3 (en) 2005-06-02
AU2004217115C1 (en) 2009-05-28
AU2004217115B2 (en) 2008-11-06
EP1604349A4 (en) 2006-12-06
CA2518109A1 (en) 2004-09-16
AU2004217115A1 (en) 2004-09-16
WO2004079551A3 (en) 2005-04-07
EP1604349A2 (en) 2005-12-14
JP2006524865A (en) 2006-11-02

Similar Documents

Publication Publication Date Title
US20050216844A1 (en) Delayed transmission of website usage data
WO2004079544A2 (en) Delayed transmission of website usage data
US11489934B2 (en) Method and system for monitoring and tracking browsing activity on handled devices
EP2650790B1 (en) Method for remote tracking and replay of user interaction with a webpage
US8196048B2 (en) Associating website clicks with links on a web page
EP1894081B1 (en) Web usage overlays for third-party web plug-in content
US20190146616A1 (en) Systems And Methods For Remote Tracking And Replay Of User Interaction With A Webpage
US7620914B2 (en) Clickable video hyperlink
US7765295B2 (en) Methods and apparatus for real user monitoring
US6112240A (en) Web site client information tracker
US20080071881A1 (en) Advertising on Idle Web Browser Windows
CN111858255A (en) User behavior acquisition method based on screenshot and related equipment
US7013423B2 (en) Omitting forwarder pages in a history list in a browser
US20020107936A1 (en) System and method for displaying emergency information on a user computer
WO2001002932A2 (en) User activity reporting browser
JP2005174137A (en) Click count system

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): BW GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase