USER ACTIVITY REPORTING BROWSER
BACKGROUND OF THE INVENTION
The present invention relates to tracking activity of a user of the Internet, and, more particularly, is directed to a browser downloaded to a user, which reports activity of the user to a log located outside the user's computer, in addition to providing browser functions to the user.
Monitoring the activity of users of web sites is important to electronic commerce which uses the Internet. It is common for a vending web site
10 to pay a referring web site for traffic sent from the referring web site to the vending web site, usually based on the amount of traffic so sent. In some payment arrangements, the referring web site receives compensation from the vending web site for purchases made by traffic sent from the referring web site to the vending
*■ * web site. At present, the referring web site has no practical way to determine whether the vending web site is properly reporting the number of purchases made by referred traffic, and the corresponding commissions due to the referring web site from the vending web site.
2Q Tracking client interaction with network resources has been proposed in U.S. Patent No. 5,796,952 (Davis et al.). Davis proposed embedding a tracking program in a resource, such as an HTML document sent from a server to a client based on a TCP/IP request. The tracking program monitors the length of time the user remains at a Web page, and some or all mouse and keyboard events to provide
25 data to the server concerning the user's interaction with the Web page. Specifically, a client sends an HTTP request to a server for a Web page containing text, embedded URLs pointing to images, and embedded URLs pointing to two resources on another server. The first resource is a CGI program on the other server; in
30 rendering the Web page, the client forces execution of the CGI program on the other server, which results in transmission of information from the other server to the client. The second resource is a JAVA applet, the tracking program, automatically fetched by the client when it renders the Web page. The tracking program computes
„ the time spent by the user at the Web page, and sends the computed time to the other
server for storage and analysis. The tracking program may also inform the other server which links are selected by the user.
Davis noted that its tracking program could be an added module to the client application or Web browser running on the client, and that the tracking program need not be embedded within an existing Web page, but could be embedded within a Web browser or supported elsewhere within the client. The tracking program would be initiated whenever a call to a Web page or network resource is made, such as when a search to a particular URL is initiated, or when a previously-stored URL is launched.
10
In short, Davis proposed to download a limited functionality program each time a web page is accessed, or to modify the client's browser to include the limited functionality program.
Unfortunately, a limited functionality program is not able to provide 15 the breadth of reporting needed to fully track client activity. Modifying the client's browser is not a practical solution, since browsers can easily be configured by users to refuse such modifications and some browsers are not designed to support such modifications. ~~ Accordingly, there is a need for a way to broadly track activity of an
Internet user.
SUMMARY OF THE INVENTION
In accordance with an aspect of this invention, there are provided a 25 method for and an apparatus for tracking user activity at a web site. A reporting browser prepares a request for a responding server and sends the request to a redirect server, and receives information from the redirect server including a response from the responding server. Q The reporting browser is requested and received from the redirect server. The requesting is performed by a native browser. The reporting browser is a JAVA applet and is displayed as a free-floating window or frame.
According to a further aspect of the invention, there is provide a method for and an apparatus for tracking user activity at a web site in which a
35 reporting browser prepares a request for a responding server and sends the request
to the responding server, and prepares a corresponding report for a logging server and sends the corresponding report to the logging server. The reporting browser also receives a response from the responding server.
The reporting browser is downloaded in response to a request from a native browser. The corresponding report includes activity information in common log format. The reporting browser is displayed as a free-floating window or frame.
According to another aspect of the invention, there is provided a method for and an apparatus for tracking user activity at a web site. Information representing the user activity is received from a reporting browser which has been
10 activated by a native browser executing on a client used by the user, and the information is stored.
The information is stored in common log format. A request is sent to a responding server based on the user activity information from the reporting 15 browser. A response from the responding server is forwarded to the reporting browser. The reporting browser is downloaded to the client executing the native browser in response to a request from the native browser.
It is not intended that the invention be summarized here in its jr. entirety. Rather, further features, aspects and advantages of the invention are set forth in or are apparent from the following description and drawings, in which the same element is indicated by the same reference number in different drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
25 Fig. 1 is a block diagram of a system in which the present invention is embodied;
Fig. 2 is a block diagram illustrating a set-up phase of the present invention; Q Fig. 3 is a chart depicting a display to a user; and
Figs. 4 and 5 are block diagrams illustrating embodiments of an operational phase of the present invention.
DET AILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
In the present invention, when a user accesses an Internet resource, such as a page, the user's native browser causes a reporting browser program to be downloaded into the client while the native browser is rendering the page. Because 5 of the nature of the display, the user is aware that his or her Internet navigation is being conducted through the reporting browser, rather than the underlying, native browser.
In one embodiment, the reporting browser is a JAVA applet which ι Q sends all HTTP requests to the redirect server from which it was downloaded. The redirect server, in turn, makes the HTTP request to the intended web site, and logs the request. The redirect server also forwards responses from the intended web site to the reporting browser.
In another embodiment, the reporting browser performs in the conventional HTTP request/response manner, and additionally sends a record corresponding to each HTTP request to a logging server for storage and subsequent analysis. The record represents an activity by the user, such as requesting an Internet page or providing data entered through a form on the web page. 20 A subsequent analysis program detects purchases based on the sequence of pages viewed by the user. Most electronic commerce web sites require a user to navigate through at least a few order placement and confirmation pages to place an order. The analysis program simply gathers records for one user, and, if the analysis program detects the proper page sequence, then the analysis program decides a purchase occurred. Other analysis methods for purchase detection will be apparent to those of ordinary skill in the art.
Advantageously, the reporting browser performs broad data collection functions, as it is reporting everything that the user does. ■^ Another advantage of the present technique is that since the user's native browser continues to display the page from which the reporting browser was launched, the user has a feeling of remaining connected to the web site of the underlying page.
35
Referring now to the drawings, and in particular to Fig. 1, there is illustrated a system according to the present invention. Fig. 1 shows Internet 10, client 20 and servers 30. 40. 50. Client 20 is typically a personal computer executing native browser software 21 , such as Netscape Navigator or Microsoft Internet Explorer. Client 20 includes a modem (not shown) for communicating via Internet 10. Alternatively, client 20 may include a network interface card, frame relay card or other suitable communications interface.
Servers 30, 40, 50 each are typically a personal computer or server hardware executing server software 31, 41, 51, such as Apache or Netscape server software. Servers 40, 50 also run web site specific programs (not shown) for operating respective web sites.
Redirect server 30 does not operate a web site. Redirect server 30 is operative to, in response to a request, download reporting browser software 34. Redirect server 30 also functions to execute redirect software 33, which accepts messages from clients, converts the message to a standard HTTP request, sends the HTTP request to the destination server, sends a log record corresponding to the HTTP request to logging software 32, accepts an HTTP response from the destination server, and returns the response to the requesting client. Redirect server
30 is further operative to execute logging software 32, which accepts log records from redirect software 33 and stores the log records for subsequent analysis. In another embodiment, redirect server 30 also runs web site specific programs for operating a web site.
Operation of the system depicted in Fig. 1 will now be described.
Fig. 2 is a block diagram illustrating a set-up phase of the present invention. Let it be assumed that client 20 has requested a web page from server 40 which functions as a referring server. As indicated by arrow 101, referring server 40 returns a web page incorporating a link to the network address of reporting browser software 34 in its HTML, such as (assuming the URL of redirect server 30 is 11 1.222.333.444):
<APPLET CODE="ReportingBrowser.class" WIDTH=100 HEIGHTS 00> http://l 1 1.222.333.444/ReportingBrowser.class
</APPLET> When native browser 21 attempts to render the page including the above-described link, native browser 21 automatically sends an HTTP request, indicated by arrow 102, to redirect server 30 for the applet at the specified HTTP address. Server software 31 receives this request, prepares an HTTP response including a copy of reporting browser software 34, and sends the response to client 20, as indicated by arrow 103. Native browser 21 receives the copy of reporting browser software 34, and automatically executes it locally to create reporting browser software 24.
The first web page displayed by reporting browser 24 is the web page from referring server 40, although reporting browser 24 ignores the link to itself described above.
Fig. 3 is a chart depicting a display to a user of client 20. Native browser 21 occupies display screen area 61, also referred to as window or frame 61. Reporting browser 24 occupies display screen area 64, also referred to as window or frame 64. Frame 64 is displayed so as to be free-floating relative to frame 61. This display arrangement alerts the user to the applet status of reporting browser 24, that is, the user knows that native browser 21 is still displaying the web page from referring server 40.
The user then operates reporting browser 24, as discussed below.
Fig. 4 is a block diagram illustrating an embodiment of an operational phase of the present invention. In the embodiment shown in Fig. 4, reporting browser 24 is a JAVA applet. Accordingly, reporting browser 24 can communicate with only redirect server 30, that is, the host from which reporting browser 24 was downloaded.
Assume that, as indicated by arrow 1 10, reporting browser 24 sends a message to redirect server 30 including an HTTP request which would ordinarily be generated by a browser in response to a user action, such as clicking on a link displayed by reporting browser 24 or typing information into a form and clicking on a "submit" button. It will be appreciated that reporting browser 24 can readily prepare the HTTP request, but can send messages only to redirect server 30.
Accordingly, reporting browser 24 embeds the HTTP request in a message to
redirect server 30; the message itself is preferably in HTTP request format, although it may be in another format.
Redirect software 33 receives the message from client 20, reflects it and logs it.
To reflect the message, redirect software 33 strips the message's header leaving the embedded HTTP request, and sends the HTTP request to the destination specified therein, such as server 50, as indicated by arrow 1 11. A reflecting server is disclosed in G. Cornell and C. Horstmann, Core Java, Second Ed., Sunsoft Press, pages 591-595. It will be appreciated that client 20 has become
10 referral traffic from server 40 to server 50.
To log the message, redirect software 33 simply sends a copy of the message to logging software 32, as indicated by arrow 112. Logging software 32 then writes the message to a logging file on disk 37. In another embodiment, 15 logging software 32 formats the message before writing it to a disk file. In yet another embodiment, logging software 32 analyzes the message before storing it to, for example, increment a counter of traffic referred from server 40 to server 50.
The conventional format used by servers for web log files is called j . the common log format. Because of the availability of third party tools to analyze data in this format, it is preferred that logging software 32 write records to its logging file in common log format. The common log format is as follows:
%h %1 %u %t "%r" %s %b where
25
%h indicates the name of the remote host
%1 indicates the remote username
%u indicates the HTTP authenticated username, if any
%t indicates the time in common-log format
30 %r indicates the request
%s indicates the returned status
%b indicates the number of bytes in the document served
An example of a record in common log format, with unknown usernames indicated by "-" is:
35 jupiter.ukweb.com - - [03/Feb/l 997:00:07:00 +0000]
"GET /img/awlogo.gif HTTP/1.0" 200 12706 Advantageously, the logging file enables tracking a user during his or her Internet session.
At a subsequent time, server 50 sends a response to redirect server 30, as indicated by arrow 1 13. Redirect software 33 receives the response from redirect server 30 and forwards it to client 20. Reporting browser 24 receives the forwarded response and takes appropriate action, such as rendering a web page.
It will be appreciated that, to render the web page, reporting browser 24 may need to get images or applets from other servers, and does this via the same mechanism illustrated in Fig. 4.
Advantageously, referring server 40 can download a web page to client 20, causing client 20 to retrieve and execute a reporting browser. When a user goes from a web site at referring server 40 to a web site at vending server 50, this can readily be tracked from the logging file maintained at redirect server 30.
When a user purchases something at the web site at server 50, the purchase event can be detected by the sequence of web pages the user navigates through, and/or by examination of the actions taken at web pages from which a purchase is possible. Accordingly, referring server 40 can better estimate the compensation due from vending server 50 for traffic sent from referring server 40 to vending server 50.
Fig. 5 is a block diagram illustrating another embodiment of an operational phase of the present invention. The system of Fig. 5 operates in a generally similar manner as the system of Fig. 4, except as described below.
In the embodiment shown in Fig. 5, server 55 also includes reporting browser software 55 for downloading to client 25. Client 25 includes reporting browser 28, which is a JAVA applet downloaded from server 55. In a modification, reporting browser 28 is not downloaded from server 55 via Internet 10, but is instead delivered via disk or telecommunications other than Internet 10 to client 25.
Reporting browser 28 is adapted to perform most of its communication with server 55. Importantly, reporting browser 28 is adapted to report each of its actions to server 35 using an HTTP POST request. Such reporting using an HTTP POST request to a server other than the server from which an applet was downloaded is not a JAVA applet security violation.
Logging server 35 is somewhat similar to redirect server 30, except that logging server 35 lacks reporting browser software for downloading, and further lacks redirect software 33. Logging software 36 functions to receive HTTP POST requests from client 25 and to log them to disk 37. Logging software 36 is a common gateway interface (CGI) script. In a modification, logging server 35 relies on the logging functions in server software 39 for logging the HTTP POST requests from client 25 to disk 37. It will be recalled that server software 39 is a third party product.
Operation of the system shown in Fig. 5 will now be described. Let
10 it be assumed that client 25 has already received a web page including a link to reporting browser software 54, and has downloaded and executed reporting browser software 54 while rendering the web page, thus commencing execution of reporting browser 28.
15 Assume that, as indicated by arrow 121, reporting browser 28 sends an HTTP request to server 55 such as would ordinarily be generated by a browser in response to a user action, such as clicking on a link displayed by reporting browser 28 or typing information into a form and clicking on a "submit" button.
^r. As indicated by arrow 122, reporting browser 28 also prepares and sends a report corresponding to the HTTP request sent to server 55, and sends the report to logging server 35. The report itself is formatted as an HTTP POST request with the posted information in common log format. Logging software 36 receives the report and writes the report to a file on disk 37. In another embodiment, logging
25 software 36 formats the message before writing it to a disk file. In yet another embodiment, logging software 36 analyzes the message before storing it to, for example, increment a counter of traffic referred from server 40 to server 55.
At a subsequent time, server 55 sends a response to client 25, as 30 indicated by arrow 123. Reporting browser 28 receives the response and takes appropriate action, such as rendering a web page.
It will be appreciated that, to render the web page, reporting browser
28 may need to get images or applets from other servers, and does this via the same mechanism illustrated in Fig. 4. 35 fe
Although illustrative embodiments of the present invention, and various modifications thereof, have been described in detail herein with reference to the accompanying drawings, it is to be understood that the invention is not limited to these precise embodiment and the described modifications, and that various changes and further modifications may be effected therein by one skilled in the art without departing from the scope or spirit of the invention as defined in the appended claims.