WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Method, system and apparatus for client-side usage tracking of information server systems    
United States Patent6018619   
Link to this pagehttp://www.wikipatents.com/6018619.html
Inventor(s)Allard; James E. (Seattle, WA), Treadwell, III; David R. (Woodenville, WA), Ludeman; John F. (Redmond, WA)
AbstractA method for tracking usage patterns of users of hyper-media systems, such as the World-Wide Web, that creates a usage log on a user's client computer and periodically transmits the usage log from the user's client machine to a usage tracking server computer to be incorporated in an overall usage log for a given information server computer. Alternatively, proxy server may be connected between a client computer and an information server with the proxy server acting as a client to the information server and creating a usage log of the user's client computer access to the information server computer to be sent to usage tracking computer. Each time a user connects to a Web site, the client computer or proxy server creates a usage log that records all objects retrieved from that particular Web site and other attributes of user processing such as time spent viewing an object, amount of an object viewed, etc. Periodically, upon the occurrence of one of more predefined events that signify the end of a session, computer or proxy server saves the usage log into a single, compressed file and transmits the resulting file to the server. Events that signify the end of a session and trigger the transmission of a usage log from the user's client computer or proxy server computer to the usage tracking server computer may include a predetermined time interval, accessing a predetermined number of objects, application program or operating system shut down, connecting to a different Web site, and/or modem shut down.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 6018619
Method, system and apparatus for client-side usage tracking of
     information server systems - US Patent 6018619 Drawing
Method, system and apparatus for client-side usage tracking of information server systems
Inventor     Allard; James E. (Seattle, WA) , Treadwell, III; David R. (Woodenville, WA) , Ludeman; John F. (Redmond, WA)
Owner/Assignee     Microsoft Corporation (Redmond, WA)
Patent assignment
All assignments
Publication Date     January 25, 2000
Application Number     08/652,976
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     May 24, 1996
US Classification     709/224 709/211 709/215 709/216 709/229
Int'l Classification    
Examiner     An; Meng-Ai T.
Assistant Examiner     Patel; Gautam R.
Attorney/Law Firm     Workman, Nydegger, Seeley
Address
Parent Case    
Priority Data    
USPTO Field of Search     395/200.11 395/200.05 395/200.09 395/200.15 395/200 395/200.53 395/200.54 395/200.38 395/200.45 395/200.49 395/200.46
Patent Tags     method, client-side usage tracking of information server
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5796952
Davis

Aug,1998

[0 after 0 votes]
5727159
Kikinis
709/246
Mar,1998

[0 after 0 votes]
5706507
Schloss

Jan,1998

[0 after 0 votes]
5696965
Dedrick

Dec,1997

[0 after 0 votes]
5678041
Baker

Oct,1997

[0 after 0 votes]
5627886
Bowman
379/111
May,1997

[0 after 0 votes]
5619656
Graf
709/224
Apr,1997

[0 after 0 votes]
5614940
Cobbley
725/138
Mar,1997

[0 after 0 votes]
5590245
Leamy
345/418
Dec,1996

[0 after 0 votes]
5579222
Bains
717/167
Nov,1996

[0 after 0 votes]
5517519
Carbone, Jr.
375/211
May,1996

[0 after 0 votes]
5032979
Hecht
726/25
Jul,1991

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed and desired to be secured by United States Letters Patent is:

1. In an information server system comprising a network with at least one information server accessed by a plurality of either client systems or proxy servers, each proxy server in turn accessed by a plurality of client systems, and wherein at least some of said proxy servers are non-tracking proxy servers and the other proxy servers are tracking proxy servers, and at least some of the client systems are non-tracking client systems and the other client systems are tracking client systems, a method for tracking at one or more client systems session events resulting from information supplied by the information server in response to requests for information from at least one of the client systems or one of the proxy servers, while maintaining system compatibility with those client systems or proxy servers that do not have tracking ability, the method for tracking comprising the steps of:

initiating, by at least one client system or proxy server, a connection request to an information server system, said connection request also signifying whether said client system or proxy server is non-tracking or is capable of tracking given session events;

in response to said connection request, returning to said requesting client system or requesting proxy server (i) information requested, (ii) an acknowledgment by said information server system which enables said requesting client system or requesting proxy server to begin tracking said session events if the requesting client system or requesting proxy server is capable of tracking such session events, and (iii) a location of a designated server for receiving tracked session event;

in response to said acknowledgment, if said requesting client system or requesting proxy server is a tracking client system, monitoring said session events and generating a client side usage log of the monitored session events, and if said requesting client system or requesting proxy server is non-tracking, then generating a usage log of the monitored session events at the information server system; and

thereafter transmitting the usage log that is generated either at the requesting client system or requesting proxy server, or at the information server, to said designated server.

2. A method for tracking as recited in claim 1 wherein the generated usage log is transmitted after the client system has been inactive a fixed amount of time with respect to said information server.

3. A method for tracking as recited in claim 1 wherein the generated usage log is transmitted after the client system has accessed a set number of objects or files.

4. A method for tracking as recited in claim 1 wherein the generated usage log is transmitted after the client system attempts connection to a different information server system.

5. A method for tracking as recited in claim 1 wherein the generated usage log includes information regarding a referring link where the client system previously accessed objects or files.

6. A method for tracking as recited in claim 1 wherein the generated usage log includes information regarding treatment of image data associated with a particular link.

7. A method for tracking as recited in claim 1 wherein the generated usage log includes information regarding a percentage amount processed by the client system of a particular object or file.

8. A method for tracking as recited in claim 1 wherein the generated usage log includes information regarding amount of time spent by the client system in accessing a particular object or file.

9. In an information server system comprising a network with at least one information server accessed by a plurality of either client systems or proxy servers, each proxy server in turn accessed by a plurality of client systems, and wherein at least some of said proxy servers are non-tracking proxy servers and the other proxy servers are tracking proxy servers, and at least some of the client systems are non-tracking client systems and the other client systems are tracking client systems, and wherein tracking is desired for one or more client systems session events resulting from information supplied by the information server in response to requests for information from at least one of the client systems or one of the proxy servers, while maintaining system compatibility with those client systems or proxy servers that do no have tracking ability, a computer program product comprising:

a computer readable medium associated with one or more client systems at which the tracking of session events is desired; and

computer program code means stored on said computer readable medium, said computer program code means comprising means for performing the desired tracking of said session events comprising:

code means for initiating, by at least one client system, a connection request to an information server system, said connection request also signifying whether said requesting client system is a non-tracking or a tracking client system that is capable of tracking given session events;

code means for receiving an acknowledgment from said information server system in response to said connection request which (i) enables said requesting client system to begin tracking said session events if the requesting client system is a tracking client system, and (ii) identifies a designated server for receiving tracked session events;

code means for monitoring said session events and generating a client side usage log of the monitored session events if the client system is a tracking client system, and for causing the information server to generate a usage log if the client system is a non-tracking client system; and

code means for transmitting the client side usage log to said designated server after a session is complete.

10. In an information server system comprising a network with at least one information server accessed by a plurality of either client systems or proxy servers, each proxy server in turn accessed by a plurality of client systems, and wherein at least some of said proxy servers are non-tracking proxy servers and the other proxy servers are tracking proxy servers, and at least some of the client systems are non-tracking client systems and the other client systems are tracking client systems, and wherein tracking is desired for one or more client systems session events resulting from information supplied by the information server in response to requests for information from at least one of the client systems or one of the proxy servers, while maintaining system compatibility with those client systems or proxy servers that do not have tracking ability, a computer program product comprising:

a computer readable medium associated with the at least one information server; and

computer program code means stored on said computer readable medium, said computer program code means comprising means for enabling the desired tracking of said session events comprising:

code means for receiving from at least one client system or from at least one proxy server a connection request, said connection request also signifying whether said requesting client system or requesting proxy server is non-tracking or is capable of tracking given session events; and

code means for initiating an acknowledgment by said information server system in response to said information request which (i) enables said requesting client system or said requesting proxy server to begin tracking said session events if the requesting client system or requesting proxy server has tracking capability, and (ii) identifies a designated server for receiving tracked session events from said requesting client system or requesting proxy server after they have been monitored by the requesting client system or requesting proxy server and stored in a client side usage log.

11. A computer program product as recited in claim 9 or 10 wherein the information server system and the designated server are the same.

12. A computer program product as recited in claim 9 or 10 wherein the generated usage log is transmitted after the client system has accessed a set number of objects or files.

13. A computer program product as recited in claim 9 or 10 wherein the generated usage log is transmitted after the client system has been inactive a fixed amount of time with respect to the information server system.

14. A computer program product as recited in claim 9 or 10 wherein the generated usage log is transmitted after the client system attempts connection to a different information server system.

15. A computer program product as recited in claim 9 or 10 wherein the generated usage log includes information regarding a referring link where the client system previously accessed objects or files.

16. A computer program product as recited in claim 9 or 10 wherein the generated usage log includes information regarding treatment of image data associated with a particular link.

17. A computer program product as recited in claim 1 or 9 wherein the generated usage log includes information regarding a percentage amount processed by the client system of a particular object or file.

18. A computer program product as recited in claim 9 or 10 wherein the generated usage log includes information regarding the amount of time spent by the client system in accessing a particular object or file.

19. An information server system comprising:

a network with at least one information server accessed by a plurality of either client systems or proxy servers, each proxy server in turn accessed by a plurality of client systems wherein at least some of said proxy servers are non-tracking proxy servers and the other proxy servers are tracking proxy servers, and at least some of the client systems are non-tracking client systems and the other client systems are tracking client systems;

as a first article of manufacture, a first computer readable medium stored on said information server, said first computer readable medium comprising first program code means stored thereon;

as a second article of manufacture, a second computer readable medium stored on at least one of said proxy servers or one of said client systems, said second computer readable medium comprising second program code means stored thereon; and

said first and second computer program means together providing a system for tracking at one or more of the tracking client systems or at one or more of the tracking proxy servers, session events resulting from information supplied by the information server in response to requests for information from at least one of the client systems or proxy servers, while maintaining system compatibility with other non-tracking client systems or proxy servers that do not have such tracking ability, the system comprising:

code means for initiating, by at least one client system or proxy server, a connection request to an information server system, said connection request also signifying said client system's or said proxy server's ability to track given session events;

code means for returning to said requesting client system or proxy server in response to said connection request (i) information requested, (ii) an acknowledgment by said information server system which enables said requesting client system or proxy server to begin tracking said session events when they are capable of doing so, and (iii) a location of a designated server for receiving tracked session events;

code means for monitoring, by said requesting client system or said requesting proxy server, said session events and generating a client side usage log of the monitored session events when the requesting client system or proxy server have tracking ability, and for causing the information server to generate a usage log of the monitored session events when the requesting client system or proxy server to not having tracking ability; and

code means for transmitting the either the client side usage log or the usage log generated by the information server, as applicable, to said designated server after a session is complete.

20. A system as recited in claim 19 wherein the information server system and the designated server are the same.

21. A system as recited in claim 19 wherein the generated usage log is transmitted after the client system has accessed a set number of objects or files.

22. A system as recited in claim 19 wherein the generated usage log is transmitted after the client system has been inactive a fixed amount with respect to the information server.

23. A system as recited in claim 19 wherein the generated usage log is transmitted after the client system attempts connection to a different information server.

24. A system as recited in claim 19 wherein the generated usage log includes information regarding a referring link where the client system previously accessed objects or files.

25. A system as recited in claim 19 wherein the generated usage log includes information regarding treatment of image data associated with a particular link.

26. A system as recited in claim 19 wherein the generated usage log includes information regarding a percentage amount processed by the client system of a particular object or file.

27. A system as recited in claim 19 wherein the generated usage log includes information regarding the amount of time spent by the client system in accessing a particular object or file.
 Description Submit all comments and votes
 


BACKGROUND OF THE INVENTION

1. The Field of the Invention

The field of this invention is in the area of usage tracking systems, methods, and apparatuses for computer servers and the like. More specifically, the invention is directed to usage tracking systems, methods, and apparatuses for tracking user activity on information servers, more particularly information servers in hyper-media systems such as the World-Wide Web ("WWW"). The invention also relates to client-side usage tracking servers for computers connected by a communications network according to the client-server model.

2. Present State of the Art

The proliferation of communication networks has provided substantial opportunity for easy access to a wealth of information from a variety of sources. Many times, such information is made available on a server computer that can be accessed through use of a communications network by one or more remote client computers using the appropriate conventions and protocols. For example, a user may dial up a bulletin board by means of a modem in order to access the information contained at the bulletin board site. Also, the Internet provides large scale access of many differing kinds of information by a variety of clients.

Particularly important in this field of technology are hyper-media systems such as the World-Wide Web. Because a user may quickly or easily transition between desired objects, usually by means of a graphical user interface, the "Web" and other systems have show great promise in reaching a large percentage of an ever growing potential audience. A hyper-media system is easily traversed by the user operating a graphical user interface ("GUI"). A user can select with a mouse or other pointing device certain icons or areas on the screen that will access a different link at that particular web site or to an entirely different Web site, which may be physically located anywhere in the world.

The World-Wide Web is based upon the Hyper Text Transfer Protocol ("HTTP"), which allows a user to quickly and easily access any number of servers attached to the Internet and to quickly and easily jump from one location to another. The locations may be on the same information server that a user is currently "visiting" or may be an information server located half way around the world. This "Web" of information servers represents a vast store of easily accessible information.

Typically, a user will access a particular object, often a hypertext document (though audio files, video clips, and other object types exist and are popular), from an information server to be processed or interpreted at the client computer running a "Browser." A hypertext document is an ASCII file having text and coded information according to the Hyper Text Markup Language ("HTML") definition. The HTML codes within the hypertext document object will be interpreted by a client browser to format the textual characters in a pleasing manner on the browser screen.

The hypertext document object may also have HTML codes that reference the browser client to other objects such as image files that are designed for the document object page layout. These images are designed to appear on the browser screen alongside the formatted text. In order to accommodate user control and to minimize image processing time, client browsers in many instances allow alternative handling of image data. For example, browsers may be selectively set to not process images at all, process them in an abbreviated fashion, or allow processing to be interrupted when the user chooses to scroll past an image or leave the document.

HTML codes also exist for directing the browser to selectively access, rather than automatically access, other objects at any Web location worldwide. Typically, an icon image or a portion of visually distinguished text is selected using a mouse or other pointing device to cause the browser to access the referenced object. The referenced object may be another location within the existing object, another object on the same information server, or another information server anywhere on the Internet that supports HTTP. Such hypertext "links" allow easy perusal of related information for users navigating through content arranged in such an organized fashion.

When a service provider makes information or services available from an information server via a communications network such as the Internet, it may be helpful to track the usage of that information or those services (i.e., requests for access to the information at the different areas of the server where the information is located) for many purposes. For example, a service provider could optimize the information content or services based on the popularity of certain types of information or services, or improve the organization of the hypertext linkages so that popular information or services are acquired more quickly and efficiently.

Furthermore, statistical and demographic information regarding client and/or user usage may be helpful in soliciting advertisers and sponsors for particular hyper-media projects. Knowing what kind of information is popular, combined with the audience interested in that information, provides another means of access to cognizable consumer groups. Focused, pinpoint information can also allow better tailoring of information to particular user profiles.

Currently, usage tracking is done on the server side of a system arranged after the client-server model. Every time a request is made from a client, the server will log particular information for future reference and analysis. For example, useful information to track would be the time spent with by client connected to the information server, who the client is, and what files or other objects in the server hierarchy have been requested.

The granularity, or amount of detail, found in server tracked information is dependent upon the accessing protocol. In the World-Wide Web, it is possible to track from the information server side, the following kinds of information: the product and version of the client, the user name of who the request is from, the address of the previous object (referer), amongst other information.

There are a number of problems that exist with respect to information server side tracking that diminishes the value of the information in the usage log. Some of these problems actually impede the efficiency or slow down the delivery system making it inconvenient and annoying to users, since there is an undue amount of lag time between information or object requests and receipt of the requested object from the information server.

One problem is the amount of server overhead in terms of processing, disk access, etc., that is required to keep a server side log of client requests directed to that information server. Because the information server must process such a log, there may be diminished capacity in the processor and other system resources for responding to client requests, thereby reducing the overall throughput of the information server in terms of the amount of information sent to clients.

Another problem is the nature of server-side logged usage data. Often, a complex amount of processing must be done on the server side log in order to glean useful and relevant information. This is due, in part, to the very low level of logging based on asynchronous requests and lack of user or session specific metrics that could aid in the statistical and demographic collection process. In other words, it would be useful to have information aggregated into a number of request-response "transactions" that better model the nature of user activity at the particular information server. Such "session" resolution does not inherently exist in some stateless hyper-media protocols such as HTTP.

Requested data can also be cached at a number of locations between the client and the information server. For example, the client may cache recently acquired information and not generate a request to the information server while one or more users are browsing through information in the client-side cache. This valuable information as to user interest in a particular document may be entirely lost by existing server side usage tracking facilities.

Furthermore, intermediate "proxy" servers or "gateways", which often transparently exist as part of the communications path between the client and the server, may contain information wanted by the client. If such a case arises, the proxy server can fulfill the request without resort to the information server. Consequently, the information server may lose knowledge that a request for that particular piece of information has been made by a client.

Statistically, a very large number of web clients use proxy servers to make direct contact with an information server. Most corporations and online services deploy proxy servers to improve the efficiency of their service to their users (i.e. employees or subscribers) and to provide an added level of security by not allowing direct Internet access to their users' client software.

Another proxy server application occurs when the proxy server provides a logical portion of the Internet with access to information without each client in that logical portion having to communicate with the original source of the information that may be half the world away. For example, all clients in Australia wanting access to a particular object located in Canada would benefit by having a proxy server for that object located in Australia.

The proxy server stores a copy of the object based on the first client to make the request and then all subsequent requests for that object can be serviced by the proxy server rather then the original information server. An object on a proxy server will eventually "expire" and be erased according to some algorithm optimized for overall Internet performance. The algorithm may be based on time, number of requests for the object, proxy server storage capacity, and other relevant factors. Internet users between Australia and Canada also benefit since traffic in that area has been reduced by use of the proxy server, allowing more efficient utilization of the transmission link.

Because the use of a proxy server will in many instances cause an information server to miss important information with respect to client requests, an information server that is able to control proxy server operation will often times be set to force all requests to the information server (i.e., by setting all information to expire immediately), thereby destroying the advantages of reducing network traffic, reducing information server load, and reducing the quality of the users' experience overall.

Other forms of creating greater efficiency or security may inadvertently conceal pertinent information from the information server usage tracking system. Inaccuracies are introduced because of proxies, address translation devices, and other forms of address aggregation.

Other forms of creating greater efficiency may inadvertently conceal pertinent information from an information server usage tracking system. Network address translation boxes ("NATs") are used by various organizations in connecting to the Internet and allow many different client requests to go through a single IP address which hides information from the information server. Specifically, NAT boxes make multiple clients appear as one by sharing a common network address across multiple servers to which the clients are logically connected. A small number of such NAT boxes will allow access for many hundreds or thousands of users throughout an organization causing an identity problem for the information server because of the shared IP address. Thus, to the information server it appears that only one user or client is accessing a particular information server rather than all individuals from an entire organization.

This concealment also occurs when Internet subscription services and national on-line services such as Compuserve.RTM. share a common IP address across a number of different subscribers or users. The problem becomes even more exacerbated when an organization uses a network address translation box and has Internet access through means of a subscription service.

Yet another problem that may impair the validity of information server usage tracking statistics are Web crawlers and other forms of automated information gathering. These automated information gathering programs will travel through the Web and categorize the different available objects. Data searches can then be made on this aggregated, organized, and abstracted information to find desirable Web sites.

The information gathering programs will sometimes leave "access tracks" that are not true representations of user activity and hence may skew an analysis of information server usage tracking logs. Despite the aforementioned problems, usage tracking, though imperfect and fraught with potential shortfalls, remains a very important activity in guiding service providers in terms of what to provide and how to organize it. Because of such interest, there exists a strong need to improve the quality of usage tracking whenever possible.

SUMMARY AND OBJECTS OF THE INVENTION

It is an object of this invention to provide a client-side usage tracking system of an information server in situations where the client requests from or posts information to the information server.

It is another object of this invention to offer better usage statistics that more accurately reflect user behavior in accessing information from an information server.

It is a further object of this invention to improve the overall quality and accuracy of statistics tracked by the service provider.

It is still a further object of this invention to provide information on how a user processes objects requested from an information server that otherwise cannot be ascertained by the information server.

It is yet another object of this invention to permit session level and user level tracking without regards to the sharing of IP addresses.

It is an object of this invention to reduce the information server processing and other resource allocation overhead associated with usage tracking.

It is another object of this invention to allow usage tracking statistics to be collected or logged at any desired server, not just the information server.

It is yet a further object of this invention to remain compatible with existing usage tracking schemes and, further, to allow users or clients the authority to selectively access the information server anonymously.

It is an object of this invention to overcome loss of statistical information to service providers due to caching anywhere in the communications path between the user and the information on the information server, including proxy servers.

It is yet another object of this invention to provide proxy servers the ability to track usage of clients.

Additional objects and advantages of the invention will be set forth in the description which follows, and in part will be obvious from the description, or maybe learned by the practice of the invention. The objects and advantages of the invention may be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims.

To achieve the foregoing objects, and in accordance with the invention as embodied and broadly described herein a method, system, and computer program product for client-side usage tracking in the information server is provided.

According to the described embodiment of the present invention, client-side usage tracking is accomplished by a client connecting to an information server with additional information indicating to the server that the client is enabled for client-side usage tracking. In the preferred embodiment, this indication occurs at the initiation of a session, a session being a period of time or a series of transactions where the client makes requests to the information server for information or objects stored at the server.

Upon receipt of the session initiating request event, the information server will return acknowledgement of client-side usage tracking support along with a destination for delivery of the usage tracking log. This destination may be a server available on the communications network and may track usage for a number of information servers. In this way, the information server need not process and maintain the usage tracking log, although it may choose to do so.

If the acknowledgement from the information server confirms client side usage tracking, then the client will begin tracking information server requests and user processing characteristics. Otherwise, the client will assume that usage tracking will be handled by the information server and will, therefore, simply provide standard request processing information to the information server. This form of handshaking allows this innovative invention to be utilized concurrently with client applications and servers that do not implement the methods, advantages, and attributes of the present invention.

Once a session with a particular information server is determined to have ended, the client-side usage tracking log, representing the client object requests and processing during the session, is sent to the designated usage log server. There, it will be aggregated with other usage log segments from other clients and the usage log of the information server itself created on behalf of clients incapable of client-side usage tracking.

In this way, a more complete an accurate usage tracking log is created while achieving greater overall system throughout. Since an information server may be relieved of the task of processing client usage entries, more requests for information may be processed. The overall usage tracking log is also more accurate because ambiguities and errors introduced by proxy servers, organizational Internet gateways, and network address translation boxes are obviated, since the usage tracking is taken at the source of the request rather than the ultimate destination of the request.

Furthermore, additional kinds of information that cannot be tracked by the information server can be tracked by the client. For example, the amount of time browsing a particular file or the amount of the particular object actually viewed can be tracked.

One preferred embodiment fits seamlessly within the hardware and software that make up the World-Wide Web. Certain protocol changes are made at both a Web information server and a Web client in order to implement the present invention. Further, a Web proxy server may also be used to implement the current invention that will provide a certain amount of client-side usage tracking for "non-tracking" clients (i.e., clients not specifically designed to perform client-side usage tracking themselves).

The HTTP protocol used for communications between Web clients and Web information servers is modified so that an additional optional parameter is passed in the request or other packet header to the information server by the "tracking" client (i.e., clients specifically designed to perform client-side usage tracking). It is important to note that, in this preferred embodiment, the mutual identification between tracking clients and client side tracking supporting information servers can occur during the normal course of operations. No extra packets need to be sent. Rather the packet that is sent, regardless of whether the information server allows client side usage tracking or not, has an extra parameter to alert the information server of its client side usage tracking capabilities.

Should the information server be a "CST" server (i.e., one that is enabled to allow client-side tracking), the server will pass an acknowledgement parameter containing the Uniform Resource Locator ("URL") information specifying the location of the server that will receive the client-side usage statistics. When the tracking client is finished gathering the usage statistics, a usage tracking data object is sent by the client to the designated usage tracking server by means of an HTTP "post" operation.

Should the designated information server be a "non-CST" server (i.e., a server that is not enabled to allow client-side usage tracking), the information server will not respond with the header parameter and URL so that a tracking client will know not do client-side usage tracking. If the client is a non-tracking client, the information server will never receive the initial signalling parameter and will handle usage tracking according to its standard procedure.

A variation in implementation of the present invention can be used with proxy servers. A proxy server is a server which can service requests of a client that is configured to the proxy. Clients, both tracking and non-tracking, will direct all requests for information or services from information servers to the proxy. The proxy will attempt to service or fulfill the request from its internal cache and if unable to do so, will direct a request to the designated information server in order to fulfill the request. A "tracking" proxy server may perform usage tracking (i.e., the proxy is a client to the designated information server) for the non-tracking client.

If a non-tracking client initiates a session to a CST information server through a tracking proxy server, the tracking proxy server may handle usage tracking for the non-tracking client. This is accomplished by having the tracking proxy server send the optional header parameter in the initial header object as explained above so that the proxy server does the usage tracking and handshaking with the information server.

Client side usage tracking, whether handled by a client or a proxy server, continues as long as a session between one particular client and one particular server is maintained. A session is a concept presently unknown in the HTTP protocol and is defined by implementation details of the present invention.

Due to the stateless nature of the World-Wide Web and HTTP protocol, a session is begun by certain key events. For example, in the preferred embodiment, a session begins at first contact with a particular information server. The session ends upon the occurrence of one or more of the following events: a certain amount of time has transpired; the request of an object from another information server; upon reaching a certain number of object requests from the current information server; or when the application is exited by the user.

Once the session is completed according to the above mentioned events, the smart client or smart proxy will prepare a usage tracking data object and post it to the usage tracking server as designated by the URL received at the initiation of the session via HTTP. The usage tracking server will process and compile all the usage tracking data objects posted to create an overall usage log. The usage tracking server may be the information server itself or another server available over the Internet or other communications network. If a separate usage tracking server is used, it will also receive data objects posted from the information server on behalf of clients unable to do client-side usage tracking. Furthermore, a single usage tracking server may process the data usage objects from a number of different information servers.

The usage tracking data object is a data packet having certain header information and a number of usage data members representing client usage for particular links at a Web site. The header information will include the vers