Abstract:
A method for enabling a server to maintain an accurate count of web-page views. The server maintains a counter that records the number of times the page is accessed due to automatic browser refreshes, and a counter that records the number of times the page is accessed otherwise. A browser accesses the URL of the web page and records a timestamp. When the browser next accesses the page, it determines the present time, and subtracts the timestamp from the present time. The browser then compares the difference with bounds that reflect a window of tolerance about an expected content-update period of the web page. If the difference is within the bounds, the browser instructs the server to advance the automatic-refresh counter; otherwise, the server advances the page-hit counter.

Description:
FIELD OF THE INVENTION 
     The present invention applies to the Internet and the field of World Wide Web content servers, and more particularly to a method and apparatus for improving the accuracy with which a server counts the number of times that clients access a web page. 
     BACKGROUND 
     A significant share of the cost of operating the World Wide Web is underwritten by advertising. For example, the cost of providing informational web pages may be supported by displaying advertisements to each Internet user who accesses the web page. For this method to have integrity, the web-page provider must be able to give the advertiser an accurate account of how often the web page is visited, and presumably how many times the advertisement is viewed. 
     Providing an accurate count becomes difficult when the server periodically updates the content of the web page, for example when an HTML web page gives scores for sports events in progress. In this case, web browsers may automatically refresh to keep up with changes in the scores by re-accessing the web page periodically, commensurate with the content-update period of the web page. Each time a browser refreshes by re-accessing the web page, the server advances its count of how many times the page is viewed. Often, however, no human is present to see the advertisements when the browser automatically refreshes the updated web page. This means that a distortion is introduced by coupling the count of how many times the web page and its advertisements are viewed to the count of how many times the page is accessed. 
     Thus, in order to provide greater accuracy in counting how many times a web page is viewed, there is a need for a method and apparatus for determining whether an access to a web page is made explicitly under the control of a human user or is the result of an automatic web browser refresh. 
     SUMMARY OF THE INVENTION 
     The present invention provides method and apparatus enabling a server to maintain an accurate count of the number of times a web page is viewed, by factoring-out accesses to the web page that result from automatic browser refreshes. 
     Clients having web browsers connect to a server that provides a web page over the Internet. According to the invention, the server maintains two counters in association with the web page: an automatic-refresh counter that records the number of page accesses generated by browsers due to automatic refreshes, and a page-hit counter that records the number of page accesses not due to automatic refresh operations by the browsers, which are presumed to be page accesses initiated explicitly by a human user. 
     When a client first accesses the URL associated with the web page in question, the client determines the present time according to the client&#39;s internal clock, and records this time as a timestamp. The client then reads information from the web page regarding the rate at which the server updates the content of the web page, in particular the page&#39;s content-update period. Using this information, the client configures its web browser to refresh automatically according to the content-update period of the web page. 
     The client then monitors for the occurrence of two conditions: (a) manual access of the web page initiated by a user who clicks on a refresh button (or, equivalently, accesses a book mark, or a link from another page, or an entry in the web browser&#39;s history, and so forth), and (b) the expiration of a clock that indicates time for automatic refresh. When either (a) or (b) occurs, the client sends a new request to the server to access the web page. In preparing for the request, the client reads the previously recorded timestamp, and determines the present time. The client then subtracts the timestamp from the present time, to provide a difference, and compares the difference with preestablished bounds that reflect a window of tolerance about the content-update period of the web page. If the difference falls within the bounds, the client instructs the server to advance the automatic-refresh counter; if the difference falls outside the bounds, the client instructs the server to advance the page-hit counter. The client then overwrites the timestamp with the present time, for reference when (a) or (b) occurs again. 
     These and other aspects and advantages of the invention will be more fully appreciated when considered in light of the following drawings and detailed description. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  shows a web server according to the invention, connected via the Internet to a client that has a web browser. 
         FIG. 2  shows an exemplary method by which the client provides information that enables the server to improve the accuracy of the count of page hits. 
         FIG. 3  shows an exemplary way of distinguishing between a page hit and an automatic refresh. 
         FIG. 4  shows aspects of the operation of a server that is improved according to the present invention. 
     
    
    
     DETAILED DESCRIPTION 
     The present invention provides a more accurate way of counting how many time Internet users access and view a web page by keeping, and factoring-out, a count of accesses to the web page caused by automatic web browser refreshing. 
       FIG. 1  shows a client  100  connected, via the Internet  120 , to a server  130 . The client  100  may be a personal computer, and may include a web browser  110  for accessing a web page provided by the server  130 . Although  FIG. 1  shows connection via the Internet  120 , connection may also be provided in other ways, for example by an Intranet or by any other communication network. 
     The server  130  according to an embodiment of the present invention includes a page-hit counter  132  and an automatic-refresh counter  134 , where both are associated with a web page provided by the server  130 . The purpose of the counters is to enable the server  130  to keep an accurate tally of how many times clients view the web page. 
     The server  130  keeps a count of page hits by advancing the page-hit counter  132 . Here, a “page hit” is an access of the web page made under the deliberate control of a user. Examples of page hits include instances when a user clicks a browser reload (refresh) button, or goes to a bookmarked page, or clicks a back button, or navigates to an entry in a browser history, or follows a link to the subject web page from another web page, or types a URL into the browser&#39;s navigation line, and so forth. The commonality is that a human user explicitly initiates the action leading to the web page access. 
     Not all web-page accesses are page hits. Here, web page accesses caused by automatic refresh activities of browsers such as web browser  110  are called “automatic refreshes,” and are counted separately from page hits. When the client  100  first accesses a web page, the client  100  may read information from the web page regarding the rate at which the server  130  updates the content of the web page, in particular the page&#39;s content-update period. For example, the server  130  may update the content of the web page every 120 seconds, in which case the content-update period would be 120 seconds. Using this information, the client  100  configures the web browser  110  to refresh automatically according to the content-update period. When the web page is subsequently accessed as a result of an automatic refresh, the server advances the automatic-refresh counter  134  rather than the page-hit counter  132 . 
     The present invention also encompasses all other equivalent ways of keeping such counts. For example, in another embodiment of the invention, a first counter may be kept that records the total number of times the web page is accessed for any reason, and a second counter may be kept that records the number of automatic refreshes. In this case, the number of page hits may be computed by subtracting the number of automatic refreshes from the total number of times the web page is accessed. In yet another exemplary embodiment of the invention, the second counter may record the number of page hits, in which case the number of automatic refreshes may be computed by subtracting the number of page hits from the total number of times the web page is accessed. These and other similar embodiments fall within the scope of the present invention. 
       FIG. 2  shows an exemplary way in which the client  100  may determine whether a page access under its operation is a page hit or an automatic refresh. As shown in  FIG. 2 , the client  100  accesses the URL associated with the web page in question (step  200 ). The client  100  records the approximate time of the access (step  205 ) as a timestamp. In a preferred embodiment of the invention, the browser  110  calculates current epoch time using the getTime( ) JavaScript function in the JavaScript Date class. The timestamp may be recorded as part of a CGI query string associated with the page access, or within a cookie, or within a frameset. 
     The browser  110  then determines the content-update period of the web page (step  210 ) and appropriately configures its automatic refresh (step  215 ), for example according to: 
     
       
         
               
               
             
               
             
               
               
             
           
               
                   
                   
               
             
             
               
                   
                 &lt;META http-equiv=”refresh” content=”120”&gt; 
               
             
          
           
               
                 or according to: 
               
             
          
           
               
                   
                 &lt;script language=”JavaScript”&gt; 
               
               
                   
                 move = setTimeout(“location.href=location.pathname;”, 1200000); 
               
               
                   
                 &lt;/script&gt; 
               
               
                   
                   
               
             
          
         
       
     
     The client  100  then awaits refresh activity (step  220 ). When refresh activity is detected, the client  100  reads the previously recorded timestamp (step  230 ), and determines the present time (step  235 ). The client then analyzes the timestamp, the present time, and the content-update period (step  240 ), and determines whether the refresh activity is indicative of an automatic refresh (step  245 ). Details regarding steps  240  and  245  of  FIG. 2  are discussed below with reference to  FIG. 3 . If the refresh activity is indicative of an automatic refresh, the client  100  instructs the server  130  to provide the web page and to advance the automatic-refresh counter  134  (step  255 ), overwrites the timestamp with the present time (step  260 ), and returns to await further refresh activity (step  220 ). Otherwise (i.e., the refresh activity is not indicative of an automatic refresh, and is therefore presumed to be indicative of a page hit), the client  100  instructs the server  130  to provide the web page and to advance the page-hit counter  132  (step  250 ), overwrites the timestamp with the present time (step  260 ), and returns to await further refresh activity (step  220 ). 
       FIG. 3  shows an exemplary way of distinguishing between an automatic refresh and activity indicative of a page hit. The distinction is made by finding the time that has passed since the web page was last accessed by the browser  110 , and comparing this time to a bound. The bound may be an endpoint of a tolerance interval that surrounds (includes) the content-update period, where the tolerance interval accounts for the various and unpredictable delays encountered in re-loading the web page. For example, if the content update period is 120 seconds, the tolerance interval might be between 118 and 145 seconds. Then, if the time between the last access of the web page and a current access is between 118 and 145 seconds, the current access is indicative of an automatic refresh; otherwise (i.e., the time between the last access of the web page and the current access of the web page is less than 118 seconds, or greater than 145 seconds), the current access of the web page is activity indicative of a page hit. 
     As shown in  FIG. 3 , the timestamp is subtracted from the present time to provide a difference (step  300 ). The difference is compared with the tolerance interval (step  310 ), and a determination is made whether the difference falls within the tolerance interval (step  320 ). If the tolerance falls within the tolerance interval, the client  100  instructs the server  130  to advance the automatic-refresh counter  134  (step  330 ); otherwise (i.e., the difference is not within the tolerance interval), the client  100  instructs the server  130  to advance the page-hit counter  132  (step  340 ). 
     The client  100  may instruct the server  130  regarding the page-hit counter  132  and the automatic-refresh counter  134  in a number of ways. These instructions may pass as part of a CGI query string, through a cookie, or as part of a framework. A preferred embodiment of the present invention passes information via a request for an uncachable GIF image with a specific query string, as described by co-pending U.S. patent application Ser. No. 09/641,495, to the present Assignee, filed 18 Aug. 2000, “Gathering Enriched Web Server Activity Data of Cached Web Content,” the entirety of which is hereby incorporated herein by reference. 
       FIG. 4  shows exemplary actions taken by the server  130  in response to receiving an instruction from the client  100 . The server  130  receives the instruction from the client  100  (step  400 ), and provides the requested web page (step  410 ). The server  130  then further parses the instruction to determine whether the automatic-refresh counter  134  should be advanced (step  420 ). If the instruction indicates that the automatic-refresh counter  134  should be advanced, the server  130  advances the automatic-refresh counter  134  (step  430 ). Otherwise (i.e., the instruction indicates that the page-hit counter  132  should be advanced, or the instruction does not indicate that a counter should be advanced), the server advances the page-hit counter  132  (step  440 ). 
     From the preceding description, those skilled in the art will now appreciate that the present invention provides a more accurate way of counting how many time Internet users view a web page. The foregoing description is illustrative rather than limiting, however, and the invention is limited only by the claims that follow.