The present disclosure relates generally to the field of digital content management and more particularly to website design.
Generally, when a website is built, its structure is determined right at the outset, at the site building time. However, during site building, information needed for making optimal website structure decisions is not necessarily available. Moreover, during the life of a website, the optimal website structure changes.
Often websites have a non-optimal navigational structure. For example, webpages which are frequently visited are located far away from each other, click-wise. This structure forces users to go through several irrelevant pages on their way from one frequent page to another. This has two negative consequences. First, the users have to wait for each page to load on the way to their destination in order to proceed, thus making their Internet surfing ineffective. Second, in such circumstances, users unfamiliar with the website find it hard to find their way throughout the site.
In addition, lists of links (such as news items) can contain too many irrelevant items thus hiding the relevant ones. Some links are “dead-links”, i.e. point to pages which no longer exist. When a website is built, the optimal design choices cannot be made since relevant information is lacking The website designer may not understand the content of the website since websites designers and content maintainers/creators are usually different people. Even if website design and content are done together, there may be many people creating the website who do not understand each other's content. Even if the website designers do understand the content, most of the content is usually not available during the design time, since content is regularly added to the site time and again.
Even if the content is all available to the website designers and even if the designers understand all of the content, the website designers usually do not understand the interconnections of the different parts of the content. If the website designers have all the content available and if they understand all of it as well as its interconnections, usually they still do not know what parts of the content are more relevant or interesting to the actual users of the site. Finally, even if the website designers have all the content available at design time, if they understand it all together with its interconnections and know the site audience perfectly and thus know exactly what pieces of the content most interest it and how to arrange them in a convenient manner, they still cannot usually succeed in creating the optimal site design. For a population A, design X is the optimal design, while for surfers of population B, design Y is optimal.
Thus, a need exists for improved systems and methods for managing website structure dynamically. Further, there is a need for improved systems and methods for automatically personalizing websites. Finally, a need exists for enabling an optimal website experience.
A representative embodiment relates to an apparatus for structuring web content including a structuring web server. The structuring web server includes a data collection server, a data analyzer, and a structured content server. The data collection server is configured to collect usage data associated with at least one user associated with an explicit profile. The data analyzer is configured to generate improvement data based on the usage data. The structured content server is configured to send the improvement data to a browser associated with the at least one user. The browser uses the improvement data to alter a webpage displayed to the at least one user.
Another representative embodiment relates to a system for structuring web content including a web server, a structuring web server, and a client. The web server is configured to serve webpages. The structuring web server configured to collect usage data associated with the webpages and generate improvement data based on the usage data. The client is configured to display webpages altered based on the improvement data and an explicit profile of a user.
Another representative embodiment relates to a method for structuring web content. At a computing device, data is collected from at least one client. The computing device builds an explicit profile of a user. The computing device analyzes the data from the at least one client. The computing device generates improvement data based on the analysis. The computing device generates information for modifying a webpage based on the improvement data and the explicit profile.
A method, system, and apparatus for an Internet customization system and method are described. In the following description, for purposes of explanation, numerous specific details are set forth to provide a thorough understanding of representative embodiments of the invention. It will be evident, however, to one skilled in the art that the invention may be practiced without these specific details. Well-known structures and devices are shown in simplified form to facilitate description of the representative embodiments.
Referring to
The structuring web server 120 can include a processor, memory, disk drives, a display, a keyboard, and input devices. The structuring web server 120 can be configured to alter files associated with a webpage, for example, Hypertext Markup Language (HTML) files and associated data files. The structuring web server 120 can also store and serve web pages associated with one or more websites. The structuring web server 120 can communicate with the web server 110, the network 130, the client 140, the wireless network 150, the personal digital assistant 160, and the cell phone 170. For example, the client 140 can request a webpage from the server 110, and the server 110 can send the webpage files and a reference to a script to the client 140. The reference to the script instructs the client 140 to contact the structuring web server 120 which provides the client 140 with further data and instructions. The structuring web server 120 and the server 110 can be located at different facilities. Alternatively, the structuring web server 120 and the server 110 can be the same computer or be connected with a dedicated link. The structuring web server 120 can also be connected to external databases and other structuring web servers.
Referring now to
Referring now to
The web server 310 can be a typical web server used for serving webpages of a website to a client. The web server 310 includes website files 315 that are associated with webpages. Website files 315 include, for example, HTML files, images, scripts, multimedia, etc. The website files 315 can be stored in any format or language such as HTML, PHP, Flash, etc. A browser interprets and/or executes the website files 315 in order to display a webpage and its content to a user.
The web server 310 of the Internet customization system 300 can be configured in a variety of different ways. In a representative example, a line of code referencing a script file is added to at least one of the website files 315, for example, a HTML file. When a browser in a client interprets the line of code, the script will be executed. Alternatively, if the website files 315 are dynamically generated using a template, a reference to the script file can be added to the template. A file modifier 311 can add the reference automatically to the website files 315. A server plug-in can add the reference on the fly, when the website files 315 are served. Additionally, references can be added to each file manually.
The client 340 includes a browser 341. The browser 341 can be any web browser, for example, Mozilla Firefox available from the Mozilla Foundation, Mountain View, Calif.; Internet Explorer available from the Microsoft Corporation, Redmond, Wash.; or Chrome available from Google Corporation, Mountain View, Calif. The browser 341 can be used to interpret and executed website files 315, for instance, to display a webpage. The browser 341 includes a client customization system 342 which can be a plug in or add-on to the browser 341. Alternatively, the client customization system 342 can be an extension of the browser 341, a script, or a separate program. The client customization system 342 can also be integrated directly into the browser 341. The browser 341 and the client customization system 342 operate together to display a webpage associated with the website files 315. When the browser 341 accesses one of the website files 315 (where at least one of the files includes a reference to a script) the browser 341 downloads and runs the client customization system 342 from the structuring web server 320. Alternatively, the client customization system 342 can be pre-installed or be included with the browser 341.
Referring now to
Referring again to
The client data collector 343 can send the information to the structuring web server 320, for example, the client data collector 343 can send a message to the structuring web server 320 at the time of a click or before leaving a webpage. Alternatively, the structuring web server 320 can infer webpages the user visits, for example, a message is sent only upon reaching a webpage and the link clicked on the previous page is inferred from the referrer.
The identification module 345 creates and maintains profiles of users associated with the client 340. When the client 340 accesses a website, the identification module 345 identifies the particular user associated with the client 340 (this is done mutually with the structuring web server 220 as described further below). The functionality of the identification module 345 can be shared with the structuring web server 320. The identification module 345 creates and maintains an explicit profile for each user. The identification module 345 allows the user to answer questions about himself, thereby allowing the Internet customization system 300 to understand his profile and generate appropriate improvement data. The identification module 345 includes a profile builder, a profile editor and a distributed profile builder which creates and maintains user profiles.
For every website or website type, the profile builder of the identification module 345 has a list of relevant questions. For example, for a university site, the list can be: “Are you a student, a professor, a candidate, etc.” or, in case the user is a student: “Are you a mathematics student, an art student, a history student, etc.” The questions in the list, as well as their order can be either explicitly set by a website webmaster, or by the Internet customization system 300 itself, based on the answers of other users in other websites. For example, the order of the questions can depend on prior answers, for instance, what subject one studies should only be asked after other questions such as whether one is a student. As a user surfs webpages, the identification module 345 can display a question based on the user's activity. The user's answer is incorporated into the user's profile.
A user can also access a profile editor associated with the identification module 345. While surfing a website associated with the Internet customization system 300, the user can open a control panel were he is presented with all the questions that are relevant to that website, where he can answer them easily. The user can also change previous answers. A user can also access the profile editor by visiting a user webpage accessed through the structuring web server 320, where he can edit his profile easily.
The distributed profile builder of the identification module 345 can build the user profile in a distributed fashion. While a user profile can consist of a large variety of attributes, the user does not necessarily have to explicitly provide profile information immediately. Instead, when the identification module 345 detects that a certain user would benefit from answering a certain question (this means that the system determines that there is a significant chance of the user answering the question as well as the site experience improving after the question is answered) it presents the question to him in a simple, easy-to-answer fashion, such as a pop-up window.
For example, in a university website it might be very helpful to know if a certain user is a student and, if so, what he studies. Suppose that a user has told the system that he is a student. Also suppose that the user is a mathematics student; however, the user has not provided this information. When the user performs a mathematics-student-like behavior (for example, accessing the home page of the mathematics department) the system will pop-up a small window with the contents: “Are you a mathematics student? Yes/No/Close”. If the user answers the question, the site's navigational features will immediately change to better suit him. This answer, as long as the user hasn't changed it, will be carried along with him to other sites, improving the content there as well.
The Internet customization system 300 is designed around a profile ownership model where the user is the sole owner of his or her user profile data. Only data explicitly entered by the user, or explicitly allowed by the user is associated with him. Unlike other systems which cannot rely on the user to supply information about himself, as the user has no incentive to do so, the Internet customization system 300 enables this reliance on user cooperation by providing the user a strong and immediate positive feedback for supplying the information—namely improving the site's navigation. The user has full control of the data. This means that the user can see all of the data associated with him and change all of the data associated with him at any given time. Changing, includes deleting, so the user can delete all or part of his data (thereby completely disassociating the data from the user). The user can see and, to some extent, control which parties receive access and to the data and control which parts of the data can be accessed.
Unlike other recommendation systems, the Internet customization system 300 can be based on explicit profiles. Using implicit profiles might seem as an advantage, as it does not require user participation and the user is not encumbered with long forms. Encumbering the user with long forms is onerous; however, the identification module 345 can gradually build explicit profiles without encumbering the user at all. As far as user participation goes, although a user might not cooperate in order to improve ads or product recommendations, if the user is presented with an immediate beneficial feedback consisting of improving his surfing experience, and if the input required by him is easy and fast, he would gladly participate, and even prefer to manually control his recommendations, rather than having a system that tries to predict who he is.
There are many advantages to an explicit profile approach. Explicit profiles are much more accurate than purely implicit profiles. Explicit profiles can be understood by humans. This enables meaningful analytics for the first time. This also enables the profile ownership model as discussed above. Explicit profiles can be initialized and changed easily. For instance, in an implicitly generated profile, the user is interested in subject X for a few months, but then stops being interested in X and starts being interested in Y instead (for example, a student at a university changes his major). The user will have to wait until the system learns that he is really interested in Y, and in the meantime the user will receive inappropriate recommendations. In another example, a new user is interested in subject Z. He will have to wait until the system understands this fact, in the meantime he receives bad recommendations. Such a behavior is unacceptable if the goal is to provide the user with a reliable structuring mechanism as a main navigation facility.
Explicit profiles can also support many users on the same computer. An implicit profile cannot discern between users. Explicit profiles can also support temporary profiles and long term profiles.
Explicit profiles can also be shared across sites. Explicit profiles enable a unique business model. This feature also allows a user to have appropriate recommendations starting from the first visit of a given site. Explicit profiles enable non-encumbering profile building approach (see Distributed Profile Building above), which solves the user encumbering problem.
Explicit profiles can enable transferring user profile data between sites without needing the user to login at each site. This eliminates the burden existing in other cross-site systems. It also adds to the user's feeling of anonymity—the data stored at the structuring web server 220 can be disassociated from users. The user's data is associated to the user on the user's computer. In cases in which the user wishes to synchronize his profile across computers or browsers, he can create a username and password, but this username does not need to be associated with the real user in any way (the user can create an alter-ego). Even if the user chooses to use the username/password approach, he only needs to login once for all sites (i.e. single sign on). In addition, the profile items can be non-sensitive, possibly vague statements, such as “I am a student” or “I am between 10 and 20 years old” furthering the user's confidence in the Internet customization system 300.
The structuring web server 320 includes a data collection server 321, a data analyzer 322, a structured content server 323, a static content server 325, and an identification server 328. The data analyzer 322 generates and maintains improvement data 324, served by the structured content server 323. The structured content server 323 sends the improvement data 324 to the restructurer 344. The static content server 325 serves the static content for the configuration in case the configuration is initiated by the web server 310. The static content server 325 includes script files 326 and associated files 327.
When a client is accessing a website, the user is identified mutually by the client identification module 345 and the identification server 328. This identification supports the explicit profile approach as discussed above. Based on the user's identification, the restructurer 344 then receives the appropriate improvement data files of improvement data 324 and applies them to the webpages of the site. Alternatively, the restructurer 344 can be located at the structuring web server 320.
The data collection server 321 collects statistic usage data from the client data collector 343 including data related to browser usage, for example, data related to what hypertext links a user activates (i.e. clicks), what webpages the user visits, where a user spends the most time during a viewing of a website, and the text the user enters while filling out web forms. The data collection server 321 can collect information from many different users and many different clients. The data collection server 321 stores the collected data for analysis by the data analyzer 322. The data analyzer 322 analyzes the usage data and infers which pages are of interest to the users, for instance, which content should be highlighted. The data analyzer 322 creates improvement data 324.
The data analyzer 322 can use various algorithms to determine what information should be included in the improvement data 324. In a representative improvement data algorithm, improvement data for a quick navigation bar is generated. Let M be the number of unique profiles. Let R1, . . . , RM denote profiles 1 through M. Let N denote the number of pages of the site. Let S1, . . . SN denote pages 1 through N of the site. Let k denote the number of links. Let Pi,j denote the amount of user interest in page Sj given he has profile Ri. This amount can be estimated with a variety of methods and heuristics, such as relying on implicit parameters like the time users spend on the page, their interactions with the page or cases where the users clicked on back very fast, or explicit parameters, like thumbs up/thumbs down. For this example, we will set Pi,j=Prob(User visits page Sj|User has profile Ri). The estimator of user interest in a page is simply his probability of visiting the page. For each profile Ri, the links are calculated as follows: For each j, calculate Pi,j. Sort the Pi,j's and select the k largest ones: Pi,j1, . . . ,Pi,jk. The improvement data consists of links to pages Sj1, . . . ,Sjk.
In another representative improvement data algorithm, improvement data for a quick navigation bar is generated. Using the notations of example 1 above calculate the links as follows: For each j, calculate Pi,j. For each 2 pages Sn and Sm of the site, let d(Sn,Sm) be the minimum number of clicks needed to get from page Sn to page Sm. If there is no link path from Sn to Sm, let d(Sn,Sm)=Z. For each subset V of size k of the pages of the site, and for each page S1, let d(V,S1)=min(d(Sn,S1)|Sn is in V). For each such subset V of size k, calculate Score(V)=Σj=1, . . .,N((d(V,Sj)̂X)*Pi,j). The improvement data consists of links to the pages of the set V, such that Score(V) is minimal. For example, if X=1, this algorithm minimizes the expected number of clicks the user with profile Ri will perform on the way to his target page.
In another representative improvement data algorithm, improvement data for a link highlighter is generated. Using the notations from above, let t be a parameter of the algorithm. Let Sk,j,i denote the quality of link Lk for users with profile Ri on page Sj. As an example, we will use the probability of a user with profile Ri clicking on link Lk on page Sj as the quality measure, Sk,i,j. To calculate the link highlights in page Sj, for a user with profile Ri: For each link Lk in page Sj, calculate Sk,j,i=Prob(the user will click on link Lk|the user is on page Sj and has profile Ri). For each link Lk in page Sj, highlight Lk if Sk,j,i>t.
In another representative improvement data algorithm, improvement data for a link highlighter is generated. On each page Sj, divide the set of links on the page to sets of associated link lists. For example, if the page consists of a main navigation bar links, a secondary navigation bar links and a list of news item links, each of these three components' links constitutes such an associated link list. Then apply the previous algorithm to each individual associated link list.
The increase in the quality (in the above example, probability) of the link due to the user's profile can be used to determine its chance of being highlighted, rather than the absolute quality. For example, setting Sk,j,i=Prob (the user will click on link Lk|the user is on page Sj and has profile Ri)/Prob(the user will click on link Lk|the user is on page Sj) instead of as above.
In another representative improvement data algorithm, improvement data for a fast forward is generated. Using the notations above, for each link Lk in page Sj and user profile Ri, a list of links Vi,j,k=Vi,k,j,1, . . . ,Vi,j,k,m to be displayed are calculated as fast forwards for link Lk on page Sj for user Ri. Let Pi,j,k,n denote the amount the user with profile Ri that clicked on link Lk on page Sj is interested in page Sn. In order to calculate this user's interest level in a page a variety of methods can be employed. For example, similar to the examples above, Pi,j,k,n can be set to be the probability of a user with profile Ri's session ending in page Sn given that he clicked on link Lk on page Sj. A user session is said to be ending in page Sn, if the last page on the site the user browsed to on the given session was Sn. Other criterions such as the user session's destination (as opposed to ending) can be used where a session's destination is the page the user intended to reach in the session, not necessarily the last page reached. Calculate Pi,j,k,n. If Pi,j,k,n>t, add page Sn to Vi,j,k (where t is a parameter of the algorithm). If length(Vi,j,k)>0 add a FF icon next to link Lk on page Sj for users with profile Ri, containing the link in Vi,j,k. Another variation is adding the fast forward only if Pi,j,k,n>t and if Prob(user will click on link Lk|user has profile Ri and is on page Sj)>T (where t and T are parameters of the algorithm).
In another representative improvement data algorithm, improvement data for a fast forward is generated. As an example extension to the algorithm above, consider the following. Let h, a monotonic increasing function from the integers to the integers, be parameter of the algorithm. Calculate Pi,j,k,n like above. For each 2 pages Sn and Sm of the site, let d(Sn,Sm)=minimum number of clicks needed to get from page Sn to page Sm. If there is no link path from Sn to Sm, let d(Sn,Sm)=Z. For each subset V of the pages of the site, and for each page S1, let d(V,S1)=min(d(Sn,S1)|Sn is in V). For each such subset V calculate Score(V)=h(size of V)+Σn=1, . . . ,N ((d(V,Sn)̂X)*Pi,j,k,n). Choose Vi,j,k such that Score(Vi,j,k) is minimal. Add a FF for link Lk with contents Vi,j,k if Score(Vi,j,k)<t and number of elements of Vi,j,k>0. Several obvious precautions need to be taken, such as not adding a fast forward to the page the link is directly linking to, or to the source page, as such a fast forwards would be redundant.
Standard techniques can be applied to remedy situations in which the calculations are inaccurate. For example, if very few users with profile R visited page S, some of the traits of profile R can be ignored. A broader profile R′ of which R is a special case can be considered.
Improvement data files sent to a client can be cached, in order to eliminate the need to re-download them from a structuring web server each time. The caching can rely on a mechanism such as hashing (e.g. etags). Alternatively, caching can be for a limited time, so as to not prevent updates from getting to the user.
In addition to caching, all of the improvement data files for the different components can be grouped together to a single file, so as to reduce the number of file requests by a client from a structuring web server. On the other hand, the improvement data of a quick navigation bar (described further below) for example, being more static, can be in a file of its own in order to enable caching for longer periods.
Finally, the structuring web server can send the data for the most frequent pages of the website (for the given user) in a single file, instead of in multiple files. A client can then request this file first. As this file will always be requested first, it will likely be cached. Only if the current webpage is not among the most popular pages of a website, a second request will be made by the client. This can save the requests for the most frequent pages altogether. This scheme can be extended as needed to allow for several nested cache layers.
The process of a client sending usage statistics and the structuring web server collecting it can be completely disabled. Instead, the system can be instructed to function from manual data, for example, data entered by the webmaster of a web server. Thus, the task of identifying an optimal structure of the site is left at the hands of a human, but the task of enforcing this updated and optimal design is still carried out automatically by the structuring web server.
The website's structure can be maintained by a human, without him having to modify any website pages. The task of deciding the optimal structure can be divided between the structuring web server and a human manager. For example, the structuring web server can work fully automatically, but allow the webmaster of the web server to manually promote selected content or links. In addition, the task of deciding the optimal structure of the site can be left at the hands of the user/surfer, supplying him with a mechanism to perform this task.
The profile concept discussed above enables special business models. For example, the following two-tiered business model. Tier one consists of tailoring a site for free (for both the users and the site owners) and in return, collecting explicit profile traits of the users that are relevant to the site. Tier two consists of employing this information to tailor ads or product recommendations. This business model allows tailoring and benefiting from the tailoring of all sites, even non-profit sites like universities or blogs.
Referring now to
In operation 555, the client 540 requests a webpage from web server 510. In operation 560, the web server 510 returns a web page and a reference to a script in the structuring web server 520 to the client 540. In operation 565, the client 540 requests the referenced script from the structuring web server 520. In operation 570, the structuring web server 520 returns a response script to the client 540. The client 540 runs the response script. The script, for example, instructs a browser running on the client 540 to alter the web page as described further below. In operation 575, the client 540 reports usage statistics to the structuring web server 520. For example, usage statistics can include information collected regarding a particular user such as frequently visited pages, time spent on pages, order of page accesses and buttons pressed. In operation 580, the structuring web server 520 returns improvement data to the client 540. For example, improvement data can be used with the script to alter the web page as described further below.
Referring now to
The link highlighter 605 highlights links identified by improvement data. If the usage data suggests that it is very likely that the user will click on a certain link, or that a certain link might be of interest to him, the data analyzer generates improvement data that instruct the link highlighter 605 to highlight the link on the relevant webpage. For instance, the link highlighter 605 can insert the HTML code “<font style=”background-color: yellow;“>” and “</font>” around the link to be highlighted in the respective webpage's HTML file. The link highlighter 605 can also add a small icon next to the link or change the background color or image of the link in order to differentiate it from other links. This change can be static, or activated by some user action, such as clicking a “highlight-links” button on a toolbar, or hovering with a mouse cursor over a certain area of the webpage. The link highlighter 605 can also create an animated change. Icons or backgrounds can vary according to the nature of the highlight. Thus, a highlight can depend on the probability of clicking the link or on the reason the link is highly probable. For example, for a link that other users have clicked frequently, the link highlighter 605 can apply a red (hot) highlight. For a link that other users have clicked infrequently, the link highlighter 605 can apply a blue (cold) highlight. Links which have low overall probability amongst other users but have a higher than the average probability for the specific user can also be highlighted.
Referring now to
Referring now to
In a representative example, the improvement data of the Internet customization system indicates that the relevant link 730 is of most interest to the user based on other users' with similar profiles link choices. After executing the link highlighter, the webpage 710 is displayed in browser 720. The webpage 710 includes irrelevant links 740 and relevant link 730. Now, relevant link 730 is highlighted with highlighting 810. In addition, the link highlighter has placed an icon 820 next to the relevant link 730 (e.g. by modifying the DOM). The link highlighter can also change the colors of the relevant link 730. Advantageously, the user can now easily identify the relevant link 730. A webmaster can also configure the system to use a highlighted version of the links which is prepared in advance so, for example, if the links are images, the webmaster creates a highlighted version of the images and the script replaces the relevant images with their highlighted version. When the system detects that a link is new in the page, it can also highlight it with a special “new link” icon. Also, when the link highlighter is applied to a page containing search results, the most appropriate search results for the user's profile and keywords are highlighted, thus substantially improving the search.
Referring now to
The structuring web server creates several lists of interesting links for each page (either in one file, or in multiple files) one for each user population. The client downloads the relevant list and performs, for example, link highlighting. A user's group associations can be stored in a local storage structure such as cookies. A structured web add-on of a browser can request a link list from the structuring web server based on the group associations. A group association can be determined by analyzing a user's activities or from explicit user input.
Link highlights can be customized based on the specific population segment that generated them. Thus, if the user is interested in subjects A and B, and a certain link is considered interesting (since for example, it has high click frequency) for the population segment of users interested in subject A, the link can be highlighted with a color signifying subject A, or an icon can be added containing an illustration relevant to subject A.
In a representative example, the improvement data of the Internet customization system indicates that the relevant link 730 is of interest to the user based on subject A. The improvement data of the Internet customization system also indicates that a second relevant link 910 is of interest to the user based on subject B. After executing the link highlighter, the webpage 710 is displayed in browser 720. The webpage 710 includes irrelevant links 740, relevant link 730, and second relevant link 910. Relevant link 730 is highlighted with highlighting 810 associated with subject A and an icon 820 associated with subject A appears next to the relevant link 730. Additionally, second relevant link 910 is highlighted with highlighting 920 associated with subject B and an icon 930 associated with subject B appears next to the second relevant link 910. Advantageously, the user can now easily identify and determine the subject matter of the relevant link 730 and the second relevant link 910.
Referring again to
The detection of the interesting content can be based on user behavior or guided by the user. For example, a user can show interest or disinterest in content clicking thumbs up/thumbs down buttons placed next to content, scrolling to the interesting content, or hovering over interesting content with the mouse.
For instance, the content highlighter 610 can insert the HTML code “<font style=”background-color: yellow;“>” and “</font>” around the content to be highlighted in the respective webpage's HTML file. The content highlighter 610 can also add a small icon next to the content or change the background color or image of the content in order to differentiate it from other content. This change can be static, or activated by some user action, such as clicking a “highlight-content” button on a toolbar, or hovering with a mouse cursor over a certain area of the webpage. The content highlighter 610 can also create an animated change. Icons or backgrounds can vary according to the nature of the highlight. A highlight can depend on the reason the content is interesting. A content portion that is likely to interest the user can be colored red. A content portion that might not be of absolute interest to the user, but is still much more interesting to the user than it is for the general population, can be colored yellow.
Referring now to
Referring now to
In a representative example, the usage data of the Internet customization system indicates that relevant content 1030 is of most interest to the user based on other users' with similar profiles content choices. After executing the content highlighter, the webpage 1010 is displayed in browser 1020. The webpage 1010 includes irrelevant content 1040 and relevant content 1030 including relevant text 1035. Now, relevant content 1030 is highlighted with highlighting 1110. Advantageously, the user can now easily identify the relevant content 1030. When the system detects that content is new in the page, it can also highlight it with a special “new content” icon. Also, when the content highlighter is applied to a page containing search results, the most appropriate search results for the user's profile and keywords are highlighted, thus substantially improving the search.
Referring again to
Alternatively, the scroll suggestion generator 615 adds a button that suggests the scroll. Referring now to
Referring again to
These bookmarks are gathered and automatically inserted to the site where they are displayed on as bar—the quick navigation bar. The quick navigation bar can be easily and automatically placed at the top of the page, at the bottom, at either side, embedded in a menu or included as a floating element. The quick navigation bar can be encoded into a webpage's HTML code. The quick navigation bar can always be kept visible, or it can be turned on by clicking a button or by hovering over an area on the page. For example, the quick navigation bar can always kept visible at the top of a window of the browser, pushing all of the webpages' content down. In another example, the content is not pushed (the quick navigation bar hides the top of the content), but the quick navigation bar is only visible when the cursor is over some area, or when an icon or a button is clicked. The bookmark links in the quick navigation bar can be intra-site links, a predefined set of sites, or extra-site links.
The bookmarks in the quick navigation bar can be formatted in various ways, for instance, using various coloring or icons. The bookmarks can have uniform coloring in order to not distract the user. This coloring can match the webpage. The bookmarks can be each colored in a unique and persistent color, thus helping the users to spot their preferred links quickly. Giving each bookmark a unique and persistent color can also help a user determine when the contents of the quick navigation bar change (e.g. when new links are added, or old ones removed) since the links can be found quickly by color and location. The bookmarks can have uniform coloring, however, particularly popular links could be colored differently. Likewise, intra-site links can have a different color (or icon) than extra-site links. As in the link highlighter 605, discussed above, if a link in the quick navigation bar is added based on a particular population segment, an icon signaling this fact can be added to the link.
In a representative example, as with the link highlighter 605, a script file can be referenced by the webpages of the site (by any one of the above mentioned methods) sending usage statistics. Usage statistics and links can also be segmented according to the user's population, as described above. Based on these statistics the Internet customization system manufactures a list of the most relevant links, for the particular user, in the entire site. The client downloads it and automatically injects the quick navigation bar to the page by modifying the DOM by inserting appropriate HTML elements and filling them with the relevant content.
The insertion of the quick navigation bar in the page, pushing all the contents down, can be done by enlarging the top-margin of the document's body, by enlarging the width of the top border of the document's body, by changing the position of the document's body or by encapsulating all of the contents of the page by an element such as a HTML tag “div” and placing that “div” in the correct place. Insertion of the quick navigation bar in the page, without pushing the contents down, can be done by placing the quick navigation bar in an element such as a “div” and giving it an “absolute-positioning” or a “static-positioning.”
In addition, the webpages on a web server can already contain placeholders for a quick navigation bar. In this case, the client does not need to inject new elements to the DOM but merely fill in the contents of existing ones. For example, in a site with built-in navigation menus, one of these menus entries can be called “quick navigation bar” and its entries will be dynamically and automatically filled by the quick navigation bar generator 620.
Referring now to
Referring now to
Referring again to
The immediate bar generator 625, on the other hand, can contain the most relevant links (as defined above) given the more current state of the surfing, such as the current webpage of the website, the recent browsing history, recent user interaction, etc. For example, if a user is surfing a certain webpage of the website and he got there through a certain sequence of actions or search terms, the immediate bar generator 625 can show the most relevant links given this current information. In contrast, the quick navigation bar generator 620 can show the most relevant links for the entire site, regardless of this current information. Alternatively, a single bar can mix the results from the immediate bar generator 625 and the quick navigation bar generator 620. Referring now to
Referring again to
Referring now to
When clicking the fast forward button a menu can open presenting to the user the title of page D 1640, the text of the link on page C 1630 leading to page D 1640, a URL of page D 1640, or any subset of the above. Clicking on a menu item will take the user directly to page D 1640. Alternatively, instead of clicking the fast forward button, the menu can be opened by hovering over the fast forward button with a cursor. Alternatively, there is no menu and a click on the fast forward button will take the user directly to page D 1640. The fast forward button can be used to jump to a page in a link chain of any length.
Referring now to
Referring now to
Referring now to
Referring now to
When calculating what pages should be included in the fast forward menu 2010, the data analyzer takes into account different factors such as the overall interest level of the link, the distance to the link (e.g. a farther link with a slightly higher interest level may be more important than a slightly less interesting link that is accessible with only two clicks) as well as other factors.
Referring again to
The personalized page generator 640 can create a personalized page for a user, which can contain all or some of the improvements. For example, the personalized page could contain a quick navigation bar, relevant links, and clippings of relevant content. Instead of sending improvement data and having a client modify the visited pages, the user visits a special page containing the improvements pre-rendered. Thus unmodified webpages do not need to be automatically modified by the client or the structuring web server. The client can still send usage statistics to the structuring web server, however, the client does not necessarily need improvement data or modified pages from the structuring web server. Additionally, the personalized page can be used together with modified webpages.
The minified page generator 645 displays a portion of another webpage. Often, a webpage of a website has a small area containing real content while most of its area is used for navigation or graphic design. For example, some webpages contain a list of news items, which constitute the real content, and many other less relevant elements. Referring to
Referring to
A minified version of a page can be created manually by the web server webmaster. A minified version of a page can also include the entirety of a relevant page (for example, using an HTML tag “iframe”); however, styling techniques can be used to only show the relevant portions.
The detection of the relevant part of a page can also be done automatically, for example by analyzing user behavior on a page, by letting the users indicate the relevant part themselves, and by aggregating data.
Referring again to
Clicking the control button 2410 opens a menu with various options such as “disable/enable Internet customization system”, “disable/enable link highlighter”, “disable/enable quick navigation bar” and “disable/enable fast forward”. In case of a client-side script, any one of the features can be disabled using DOM or style manipulations. In case of server-side improvements injection, a webpage can be regenerated on the structuring web server instead of disabling the improvements on the client. The control button menu can also present other options, such as entering or modifying information about the user's profile. The information can then used by the system to determine, for example, the user's population segment, which in turn enables segmented statistics and providing the user with improvements which are tailored to him (as described above).
Referring again to
In addition to detecting and signaling broken links, the system can also fix them. The Internet customization system can learn a correct replacement link for a broken link, for example, by analyzing the user's behavior. The broken link module 655 can present the user with the ability to reach the replacement page automatically (e.g. in a manner very similar to the fast forward). Alternatively, a web server's webmaster can indicate the replacement page manually.
Referring to
The Internet customization system can include a self-enhancement feature allowing all the improvements discussed above to be continuously enhanced. For example, recommendations (such as a relevant link suggestion) can be changed based on updated usage statistics. New recommendation can replace those recommendations determined to be unhelpful. For example, if the system adds a fast forward menu with three links, one of which was never used by the users with a specific profile, the system will learn this usage pattern and remove this link from the fast forward menu of users with this same profile in the future.
Referring to
The Internet customization system enables separation of the decisions regarding the structure of the site from those regarding the design of the site itself by modifying the pages the user sees. The user's browser no longer renders the HTML page it downloaded from the server directly, but rather a modified version with improved and more appropriate design choices for the specific user. The system thus enables delaying the decisions of which web design to use until such time as all the relevant information is available. The Internet customization system then automatically actuates the most appropriate/relevant structural choice at runtime. In addition, since the structural decisions of a website are made after pages were written, malfunctions such as broken links or out-of-date links can be completely resolved, since the structure present in the HTML itself becomes only a guideline to the final structure of the site.
The Internet customization system and method can operate with minimal or no changes to existing website pages. Hence, the Internet customization system and method can be applied to large and existing websites. In one representative embodiment, an existing web server does not need to be modified in order to implement the system. The user can install a browser plug-in that enables the functionality of the Internet customization system. Thus the Internet customization system and method can be “added” to all existing websites immediately.
Advantageously, the Internet customization system enables a website builder to postpone the time of the conception of the structure of the website to a much later time, when the website is populated with content and when the website is actually being visited. At this later time, the decisions about the optimal structure of the website can be made in a much more educated fashion. Moreover, the Internet customization system makes these decisions automatically and continuously, thus reducing the cost of the site building as well as the cost of its ongoing maintenance. Finally, since the Internet customization system can delay the web site structure decisions until the site visit time, the Internet customization system can make different choices based on a visiting surfer's profile, thus presenting each surfer with a tailored site structure.
The foregoing description of the exemplary embodiments have been presented for purposes of illustration and of description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed, and modifications and variations are possible in light of the above teachings or may be acquired from practice of the invention. For example, the described representative embodiments focused on HTML base webpages and websites. The present invention, however, is not limited to HTML files. Those skilled in the art will recognize that the device and methods of the present invention may be practiced using other network serving languages and means. Additionally, the web server can be any device that stores webpages or that links files. Whenever an action is said to be automatic, it can also be done manually. The embodiments were chosen and described in order to explain the principles of the invention and as practical applications of the invention to enable one skilled in the art to utilize the invention in various embodiments and with various modifications as suited to the particular use contemplated. It is intended that the scope of the invention be defined by the claims appended hereto and their equivalents.