The present invention relates to internet browser client in general, and more particularly to the calculation of measures of client web site browsing behavior.
The Internet's vast array of web sites and enormous pools of information have the capability of overwhelming a typical web surfer. While each web site may attempt to cater its services to a specific clientele, a web surfer interested in a particular set of services has no way of knowing in advance which web site will provide the services he is interested in. Search engines, such as yahoo™, provide one mechanism to enable web surfers to limit and focus their browsing to a subset of websites. The information available on the web is organized and typically categorized by the search engines and stored on the search engine's web server. Unfortunately, this reliance on search engines limits a web surfer's choices to web sites monitored by the search engine and requires the web surfer to accept the search engine's categorization of web sites. Web sites that are not known to a search engine or not categorized in a way that the web surfer expects may never be found.
In one aspect of the present invention a multi-browser history aggregation system is provided including a client computer, a web browser with which the client is operative to selectively retrieve a web page from a server, where the browser is operative to monitor any interaction between the client and the server and store a description of the interaction in an interaction store, a categorizer operative to associate the interaction with a category and store the category information in the interaction store, and a transmitter operative to transmit previously stored interaction descriptions from the interaction store to an aggregator.
In another aspect of the present invention the system further includes a summarizer operative to summarize the retrieved interaction descriptions.
In another aspect of the present invention the transmitter is operative to transmit the summarized information to the aggregator.
In another aspect of the present invention the aggregator is operative to rank the summarized information and store the ranking in a ranking database by category.
In another aspect of the present invention the categorizer is operative to categorize by employing a predefined mapping of potential interactions with interaction categories.
In another aspect of the present invention the system further includes an updater operative to periodically retrieve the information stored in the ranking database, and store the retrieved ranking information on the client in a priority store.
In another aspect of the present invention the updater is operative to verify that the contents of the ranking database on the aggregator are different than the contents of the priority store, whereupon the updater retrieves the information stored in the ranking database.
In another aspect of the present invention the updater is operative to retrieve the latest version of the ranking database.
In another aspect of the present invention the system further includes an assistant operative to monitor behavior of the browser, and search the priority store for any entries in a category that corresponds to that of the monitored behavior.
In another aspect of the present invention the assistant is operative to provide an alert where an entry is found in the priority store that corresponds to that of the monitored behavior.
In another aspect of the present invention the assistant is operative to provide the alert by changing the content of a button bar assistant visible in the browser.
In another aspect of the present invention the assistant is operative to provide the alert by displaying a description of the found entry category appear on a button bar assistant visible in the browser.
In another aspect of the present invention the assistant is operative, responsive to a user pressing the button bar assistant, to retrieve the entry from the priority store from the same category as that of the currently monitored behavior, and display the retrieved entry.
In another aspect of the present invention the assistant is operative to display the retrieved entry's URL and rank.
In another aspect of the present invention the browser includes an interaction monitor operative to monitor the interaction between the client and the server and transmit to an interaction server the description of the interaction.
In another aspect of the present invention the interaction server is operative to receive concurrent transmissions from a plurality of the interaction monitors.
In another aspect of the present invention the interaction monitor is operative to identify any of its transmissions by including an identifier in any of its transmissions to the interaction server, where the identifier uniquely identifies either of the interaction monitor the browser.
In another aspect of the present invention the system further includes a browser session manager operative to analyze information received from the interaction monitor and detect the creation and destruction of a virtual browser session.
In another aspect of the present invention the browser session manager is operative to record a virtual browser session to the interaction store, and where either of the summarizer and the transmitter is operative to create an interaction session during which information related to the client's interaction with the server is gathered.
In another aspect of the present invention the browser session manager includes a session queue operative to create an entry in an event list corresponding to the virtual browser session, the entry corresponding to the information received by the interaction server.
In another aspect of the present invention the browser session manager is operative to destroy the session, whereupon the session queue is operative to store the event list and its corresponding entries associated with the session in the interaction store.
In another aspect of the present invention a multi-browser history aggregation method is provided including monitoring any interaction between a client and a server, storing a description of the interaction in an interaction store, associating the interaction with a category, storing the category information in the interaction store, and transmitting previously stored interaction descriptions from the interaction store to an aggregator.
In another aspect of the present invention the method further includes summarizing the retrieved interaction descriptions.
In another aspect of the present invention the transmitting step includes transmitting the summarized information to the aggregator.
In another aspect of the present invention the method further includes ranking the summarized information and storing the ranking in a ranking database by category.
In another aspect of the present invention the associating step includes categorizing by employing a predefined mapping of potential interactions with interaction categories.
In another aspect of the present invention the method further includes periodically retrieving the information stored in the ranking database, and storing the retrieved ranking information on the client in a priority store.
In another aspect of the present invention the method further includes verifying that the contents of the ranking database on the aggregator are different than the contents of the priority store, and, if so, retrieving the information stored in the ranking database.
In another aspect of the present invention the method further includes retrieving the latest version of the ranking database.
In another aspect of the present invention the method further includes monitoring behavior of the client, and searching the priority store for any entries in a category that corresponds to that of the monitored behavior.
In another aspect of the present invention the method further includes providing an alert where an entry is found in the priority store that corresponds to that of the monitored behavior.
In another aspect of the present invention the method further includes providing the alert by changing the content of a button bar assistant visible in the browser.
In another aspect of the present invention the method further includes providing the alert by displaying a description of the found entry category appear on a button bar assistant visible in the browser.
In another aspect of the present invention the method further includes retrieving, responsive to a user pressing the button bar assistant, the entry from the priority store from the same category as that of the currently monitored behavior, and displaying the retrieved entry.
In another aspect of the present invention the displaying step includes displaying the retrieved entry's URL and rank.
In another aspect of the present invention the method further includes monitoring the interaction between the client and the server and transmitting to an interaction server the description of the interaction.
In another aspect of the present invention the method further includes receiving concurrent transmissions from a plurality of the interaction monitors.
In another aspect of the present invention the method further includes identifying any of its transmissions by including an identifier in any of its transmissions to the interaction server, where the identifier uniquely identifies either of an interaction monitor and a browser.
In another aspect of the present invention the method further includes detecting the creation and destruction of a virtual browser session.
In another aspect of the present invention the method further includes recording a virtual browser session to the interaction store, and creating an interaction session during which information related to the client's interaction with the server is gathered.
In another aspect of the present invention the method further includes creating an entry in an event list corresponding to the virtual browser session, the entry corresponding to the information received by the interaction server.
In another aspect of the present invention the method further includes destroying the session and storing the event list and its corresponding entries associated with the session in the interaction store.
The present invention will be understood and appreciated more fully from the following detailed description taken in conjunction with the appended drawings in which:
Reference is now made to
Typically independent of the browsing of client 100, a summarizer & transmitter 140 periodically retrieves, such as once a day, previously stored interaction descriptions from interaction store 130. Summarizer & transmitter 140 preferably processes the records of the interactions as described hereinbelow with reference to
Reference is now made to
Reference is now made to
Typically, client 100 will employ an updater 210 to periodically retrieve the information stored in ranking database 200 and store a local version of ranking database 200 on client 100 in a priority store 210. In one methodology, updater 190 may first query aggregate server 160 to verify that the version of ranking database 200 available on aggregator 150 is indeed different than the version stored locally on client 100 in priority store 210, whereupon updater 210 retrieves the information stored in ranking database 200. Alternatively, updater 190 may receive the latest version of ranking database 200 using any other known mechanism, such as a ‘push’ mechanism initiated by aggregate server 160, as is well known in the art.
Priority store 210 preferably includes a categorized list of URL's that include ranking information. For example priority store 210 may contain the following XML content:
<category id=4000>
Reference is now made to
Continuing with the example described hereinabove in
Having found entries in priority store 220 in the same category as that of the monitored behavior of browser 120, assistant 300 preferably alerts a user of browser 120, such as by changing the content of a button bar assistant 310 visible in browser 120 to display, for example, a description of the category appear on button bar assistant 310. When the user presses button bar assistant 310, assistant 300 preferably retrieves records from priority store 220 from the same category as that of the currently monitored behavior, and displays the records, typically as a list of URLs and their rank. The user may then chose from the prioritized list a URL at a server 110 that may provide a desirable service.
Reference is now made to
An example session of communication between interaction monitor 400 and interaction server 410 follow:
A user may utilize a first browser 120 to retrieve information from a first server 110 by entering a first URL, such as www.yahoo.com, on the address bar of browser 120 and pressing enter. In response, interaction monitor 400 may send the following information to interaction server 410:
Interaction server 410 may then employ browser session manager 420 to create virtual browser sessions that may be used to collect information received from the first and second interaction monitors 400 and may further include information received from other sources, such as categorization information, as described in greater detail hereinbelow with reference to
Summarizer & transmitter 140 preferably retrieves at a later date the virtual browser session information from interaction store 130 and typically constructs an interaction session to gather information for transmission to aggregator 150. During the interaction session information such as the time a user spent at a particular service, i.e. the duration of a session, or the number of repeat visits the user made to the same service between sessions, may be gathered. In contrast, the virtual browser sessions are necessary to coordinate the user's behavior pattern and associate multiple instances of browser 120 with a particular service. Following the previous example, summarizer & transmitter 140 may transmit the following information to aggregator 150:
Total: 2 sessions, 1 category, 4 hits, duration 6 minutes, 20 seconds
where ‘Name’ identifies a unique session, ‘Url’ identifies the browser destination, ‘category’ characterizes the nature of the interaction, ‘hits’ indicates the number of connections constructed by browser 120 to the URL, and ‘duration’ indicates the length of the interaction session.
Reference is now made to
Reference is now made to
Throughout the course of the accumulation of browser session information from one or more browser windows accessing one or more web sites in a single session, external information may be added to an entry 520. For example, categorizer 530 may incorporate categorization information, such as the category associated with the content of a particular URL, into entry 520, utilizing any known categorization method.
Should browser session manager 420 destroy a session, session queue 500 may store the event list 510 and its corresponding entries 520 associated with the session in interaction store 130. For example, session queue 500 may save a binary representation of event list 510 to a file.
Reference is now made to
The user then opens a second browser 120 and retrieves information from HOTMAIL.COM/1. The user's interaction is transmitted as described hereinabove to session queue 500, which finds an existing event list 510 associated with the URL, which in the example has the label ‘LABEL A’, and inserts into the associated event list 510 the entry ‘B2; HOTMAIL.COM/1’, labeled 520B, where the string ‘B2’ identifies the browser 120 from which the interaction originated, and the string ‘HOTMAIL.COM/1’ identifies the URL of the interaction. Independently, categorizer 530 appends the string ‘CAT 4’ to entry 520B whose content includes ‘B2; HOTMAIL.COM/1’, where ‘CAT 4’ which specifies the category associated with the URL in entry 520B.
The user then opens a third browser 120 and retrieves information from MSN.COM. The user's interaction is transmitted as described hereinabove to session queue 500, which creates a new event list 510 and inserts a label 600B, denoted ‘LABEL B’, into event list 510. Session queue 500 further inserts into event list 510 having ‘LABEL B’ the entry ‘B3; MSN.COM’, labeled 520C where the string ‘B3’ identifies the browser 120 from which the interaction originated, and the string ‘MSN.COM’ identifies the URL of the interaction. Independently, categorizer 530 appends the string ‘CAT 4’ to entry 520C whose content includes ‘B3; MSN.COM’, where ‘CAT 4’ specifies the category associated with the URL in entry 520C.
The user then directs the third browser 120 to retrieve information from HOTMAIL.COM/2. The user's interaction is transmitted as described hereinabove to the session queue 500, which calculates that none of the open browsers refer to any URLs contained within event list 510 where the label 600B is equal to ‘LABEL B’, i.e. MSN.COM. Consequently session queue 500 closes the virtual browser session associated with ‘LABEL B’, i.e. the MSN.COM session, as described hereinabove with reference to
The virtual browser session associated with event list 510 where the label 600B is equal to ‘LABEL B’ may continue to persist throughout the lifecycle of the three open browsers 120, to be stored in interaction store 130 at a later date.
It is appreciated that one or more of the steps of any of the methods described herein may be omitted or carried out in a different order than that shown, without departing from the true spirit and scope of the invention.
While the methods and apparatus disclosed herein may or may not have been described with reference to specific computer hardware or software, it is appreciated that the methods and apparatus described herein may be readily implemented in computer hardware or software using conventional techniques.
While the present invention has been described with reference to one or more specific embodiments, the description is intended to be illustrative of the invention as a whole and is not to be construed as limiting the invention to the embodiments shown. It is appreciated that various modifications may occur to those skilled in the art that, while not specifically shown herein, are nevertheless within the true spirit and scope of the invention.