1. Field of the Invention
The present invention relates generally to computer systems, and more particularly but not exclusively to methods and associated systems for responding to end-user request for information in a computer network.
2. Description of the Background Art
The Internet is an example of a computer network. On the Internet, end-users on client computers may access various types of information resident in server computers. A server computer that provides information over the Internet is also referred to as a “web server” or a “web site”. A web site may provide information about various topics or offer goods and services. Some web sites include a search engine that allows an end-user to search on the Internet. Examples of such web sites include Yahoo, Google, and Alta Vista. A web site may also include a search engine for searching the web site. For example, an on-line bookstore may include a search engine for allowing a prospective buyer to look for specific novels available from the bookstore.
Just like in other medium such as radio and television, companies may advertise on the Internet. Advertising revenues may help pay for the development and maintenance of free software (i.e., a computer program) or a web site. Advertisements may be displayed as part of a web page or in a separate window. Generally speaking, the efficacy of an advertising campaign on the Internet may be measured in terms of “click-through” rate, which takes into account the number of times an advertisement has been clicked on (e.g., using a mouse) by end-users. The higher the click-through rate, the more effective the advertising. Because effective advertising results in higher revenue not only for manufacturers of products being advertised but also for companies who display the advertisements, increasing click-through rates is generally desirable.
To increase the chance of an end-user clicking on an advertisement, advertisers have developed “targeting techniques” to match advertisements with particular end-users. For example, some web sites employ cookies to keep track of end-user purchasing activity on the web site. This allows a web site to advertise to an end-user products that are related to those previously purchased by the end-user. A specific example of this targeting technique is to advertise a romance novel to an end-user who has previously purchased books in the same category. Some advertisers also develop end-user profiles that are based on demographic information. An advertiser may use an end-user profile to identify advertisements that may be of interest to a particular end-user.
The present invention relates to methods and associated systems for responding to end-user request for information in a computer network. The present invention may be employed in various applications including advertising in a computer network such as the Internet, for example.
In one embodiment, a method to be performed in a client computer includes the acts of sending a request for information from a client computer to a first server computer accessible over a computer network, receiving in the client computer a first response to the request for information, and receiving in the client computer a second response to the request for information.
In one embodiment, the first server computer may include a search engine and the first response may be a search result from the search engine. The second response may be a search result presented by a message delivery program resident in the client computer. The second response may include a message content that relates to a keyword employed by the end-user in the request for information. Because the keyword represents the end-user's interest in a topic, the chance of the end-user being interested in the message content is increased.
These and other features of the present invention will be readily apparent to persons of ordinary skill in the art upon reading the entirety of this disclosure, which includes the accompanying drawings and claims.
The use of the same reference label in different drawings indicates the same or like components.
In the present disclosure, numerous specific details are provided such as examples of systems, components, and methods to provide a thorough understanding of embodiments of the invention. Persons of ordinary skill in the art will recognize, however, that the invention can be practiced without one or more of the specific details. In other instances, well-known details are not shown or described to avoid obscuring aspects of the invention.
It is to be noted that although embodiments of the present invention are described herein in the context of the Internet, the present invention is not so limited and may be used in other data processing applications.
An embodiment of the present invention is schematically illustrated in
A search request is an express manifestation of end-user interest in something. That is, an end-user requesting information about a topic has expressed an interest in that topic. To take advantage of this, a message delivery program resident in the client computer listens for requests for information such as a search request. When the message delivery program detects that an end-user is performing a search (see arrow 23), the message delivery program responds to the search request by displaying its own search result in the client computer (see arrow 24). The search result of the message delivery program may be displayed in a window that is under a window containing the search result from the original search engine, for example. The search result of the message delivery program may include information cached in the client computer, served by a server computer (e.g., an adserver), or provided by another search engine, for example. The search result displayed by the message delivery program may contain advertisements relating to the keyword included in the end-user's search request. Because the advertisements relate to the end-user's search request, the probability that the end-user will be interested in one or more of the advertisements is thus improved. In the car example, the message delivery program may compile a list of car-related advertisements and display them to the end-user.
Preferably, the message delivery program is resident in the client computer so that it can respond to an end-user's search request even when the end-user uses different search engines. That is, unlike other targeting techniques that only work when an end-user is on a particular web site, embodiments of the present invention may work across different web sites. An end-user may obtain the message delivery program by itself or along with free or reduced-cost computer programs, services, and other products.
Referring now to
A client computer 101 is typically, but not necessarily, a personal computer such as those running the Microsoft Windows™, Apple Macintosh™, Linux, or UNIX operating systems. An end-user may employ a suitably equipped client computer 101 to get on network 100 and access computers coupled thereto. For example, a client computer 101 may be used to access web pages from a web server computer 102. It is to be noted that as used in the present disclosure, the term “computer” includes any type of data processing device including personal digital assistants, digital telephones, wireless terminals, and the like.
A web server computer 102 may be a web site containing information designed to attract end-users surfing on the Internet. A web server computer 102 may also include advertisements, downloadable computer programs, a search engine and products available for online purchase. A web server computer 102 may also be an ad server for delivering advertisements to a client computer 101.
A message server computer 103 may include the functionalities of a web server computer 102. Additionally, in one embodiment, a message server computer 103 may also include message units for delivery to a client computer 101. The message units may contain advertisements, for example. Message units are further described below. A message server computer 103 may also include downloadable computer programs and files for supporting, updating, or maintaining components on a client computer 101.
Web server computers 102 and message server computers 103 are typically, but not necessarily, server computers such as those available from Sun Microsystems, Hewlett-Packard, or International Business Machines. A client computer 101 may communicate with a web server computer 102 or a message server computer 103 using client-server protocol. It is to be noted that client-server computing is well known in the art and will not be further described here.
As shown in
In one embodiment, message delivery program 200 is downloadable from a message server computer 103. Message delivery program 200 may be downloaded in conjunction with the downloading of another computer program. For example, message delivery program 200 may be downloaded to a client computer 101 along with a utility program that is provided free of charge or at a reduced cost. The utility program may be provided to an end-user in exchange for the right to deliver messages to the end-user via message delivery program 200. In essence, revenue (e.g., advertising fees) from messages delivered to the end-user helps defray the cost of creating and maintaining the utility program.
Message delivery program 200 may include a message retriever 202, a message processor 203, a message cache 204, a context watcher 205, a hash table 206, and a search module 250. Other components such as operating system components, utility programs, application programs, and the like are not shown for clarity of illustration.
Message retriever 202 may include computer-readable program code for requesting message units from message server computer 103. As will be explained later on in connection with
Still referring to
(a) the end-user's unique identification (ID) number;
(b) the ID number of client computer 101;
(c) the local time;
(d) the domain name of the web site visited by the end-user; and
(e) a list of message units stored in message cache 204.
In one embodiment, personal information such as the actual name of the end-user, credit card information, residence address, and the like is stored solely in client computer 101 to protect the end-user's privacy.
Message server computer 103 checks if there is a corresponding message unit for each request packet received from client computer 101. If so, message server computer 103 sends the corresponding message unit to client computer 101. For example, message retriever 202 may send a request packet to message server computer 103 as an end-user navigates from “storekeeper.com” to “cars.com.” If a message unit is available for the domain “cars.com”, message server computer 103 will send that message unit to client computer 101.
Client computer 101 may also include a hash table 206. Hash table 206 may contain information for determining whether a message unit is available for a particular domain. This allows message retriever 202 to first query hash table 206 before sending a request packet to message server computer 103. If hash table 206 indicates that there is a message unit for a domain visited by the end-user, message retriever 202 may proceed to send a request packet to message server computer 103. Otherwise, message retriever 202 may not send a request packet, thereby minimizing the amount of request packets sent to and processed by message server computer 103.
Message processor 203 may include computer-readable program code for processing a message unit. Message processor 203 may process a message unit by displaying its message content. Message processor 203 may display a message content using a variety of presentation vehicles including pop-ups, pop-unders, banners, message boxes, text boxes, sliders, separate windows, windows embedded in a web page, and other mechanisms for displaying information. Message processor 203 may also process a message unit by playing its message content if the message content is audio or video, or by running its message content if the message content is computer-readable program code, for example. As an example, message processor 203 may process a message unit by displaying a pop-under (or other presentation vehicle) pointed to a web page containing a search result.
Context watcher 205 may include computer-readable program code for determining if a message unit has been triggered for processing. Context watcher 205 checks message cache 204 for rules message units whose rules have been satisfied and search message units that relate to an end-user's search request. If context watcher 205 finds such a rules message unit or a search message unit, context watcher 205 alerts message processor 203 to process the message unit.
Message delivery program 200 further includes a search module 250. In one embodiment, search module 250 includes the following components: a keyword extractor 252, a keyword file 254, and a keyword processor 255.
Keyword extractor 252 may include computer-readable program code for parsing a search request. In one embodiment, keyword extractor 252 parses a search request to extract one or more keywords from a URL displayed in the address window of a web browser in response to a search request by an end-user. Popular search engines respond to a search request by pointing the web browser employed by the end-user to a web page containing the search result. The URL of that web page may be parsed to extract the keywords chosen by the end-user for his search. For example, performing a search for “hotrod” and “car” in a fictitious search engine referred to herein as “finderskeepers.com” will result in a web browser being pointed to a web page with the following URL:
http://search.finderskeepers.com/bin/search?p=hotrod+car
The web page with the URL “http://search.finderskeepers.com/bin/search?p=hotrod+car” contains the search result for the keywords “hotrod” and “car”. Knowing the URL format employed by finderskeepers.com allows extraction of the words following “. . . /search?p=” and separated by “+”. String manipulation functions may be used to extract keywords from the URL. It is to be noted-that different search engines may employ different URL formats. Accordingly, keyword extractor 252 may first parse the URL to determine the name of the search engine, and then employ parsing rules for that search engine. In the present example, keyword extractor 252 may first parse the URL “http://search.finderskeepers.com/bin/search?p=hotrod+car” to get the name of the search engine, which is “ . . . finderskeepers.com/ . . . ”, and then apply parsing rules for finderskeepers.com. Keyword extractor 252 may take advantage of delimeters and end of string indicators employed by a particular search engine to parse a URL. In one embodiment, keyword extractor 252 includes parsing rules for popular search engines.
Referring back to
In the example of Table 1, the exclude list includes non-relevant words such as commonly used words that are too general to be useful. The exclude list may also include words that have no commercial value. For example, “Britney” may have no commercial value to most advertisers except those affiliated with or licensed by Britney the pop-star.
In the example of Table 1, the include list includes relevant words. In one embodiment, a word is considered relevant if there is a corresponding message unit for that word. For example, the word “computer” may be relevant if there is a message unit containing an advertisement for a personal computer. Similarly, the word “book” may be relevant if there is a message unit relating to books.
Still referring to
A message server computer 103 may include one or more message units 301 and a database 310. Database 310 may be a commercially available database program. Database 310 is used to keep track of message units 301 and keyword related information in message server computer 103. For example, message server computer 103 may query database 310 for all message units 301 available for a particular web site.
A message unit 301 may include a message content 302, a vehicle 303, rules 304, an expiration date 305, an advertiser ID 351, and a search field 352. Message content 302 may include computer-readable program code, text, images, audio, video, hyperlink, and other information. A message content 302 may be an advertisement or a search result (or pointers thereto) to be displayed on a computer screen, for example.
Vehicle 303 indicates the presentation vehicle to be used in presenting message content 302 to an end-user. For example, vehicle 303 may call for the use of a pop-up, pop-under, banner, message box, text box, slider, separate window, window embedded in a web page, and the like.
A message unit 301 may include a search field 352. A search field 352 may be a Boolean variable for indicating whether a message unit 301 is a rules message unit or a search message unit. In one embodiment, a message unit 301 is a rules message unit when search field 352 is set to logical FALSE; otherwise, the message unit 301 is a search message unit.
As will be explained further below, a message unit 301 may include a local field 353 for indicating whether a keyword is to be evaluated against a local include list only.
A message unit 301 may include rules 304 for specifying the conditions that need to be satisfied before the message unit is triggered for processing. Rules 304 may specify to display a message content 302 when an end-user navigates to a specific web page or as soon as the message unit 301 is received in a client computer 101. For example, a car company may contract with the operator of a message server computer 103 to deliver a message unit 301 containing an advertisement for a minivan (hereinafter, “minivan message unit”). The rules 304 of the minivan message unit may specify that the minivan advertisement is to be displayed to end-users viewing the minivan web page of “cars.com”. In this example, the minivan web page of cars.com has the URL “www.cars.com/minivans”. When an end-user visits the main page (or any web page) of “cars.com”, message retriever 202 (see
Rules 304 may also include: (a) a list of domain names at which the content of a message unit 301 is to be displayed, (b) URL sub-strings that will trigger displaying of the content of the message unit 301, and (b) time and date information. As can be appreciated, rules 304 may also be extended to take into account additional information relating to an end-user (as identified by a corresponding end-user ID) such as the end-user's frequent flyer affiliation, club memberships, type of credit card used, hobbies and interests, and basic demographic information. End-user related information may be stored in client computer 101 or database 310 of message server computer 103. End-user related information may be used for targeted advertising purposes, for example.
As shown in
A message unit 301 may include an advertiser ID 351 for identifying a particular search message unit. Note that an advertiser ID 351 does not necessarily have to be associated with an advertiser. Additionally, an advertiser ID 351 does not necessarily have to identify a message unit 301 that contains advertising. That is, an advertiser ID 351 may be used to keep track of message units 301 in general.
Other techniques for receiving and processing message units are also described in the following commonly-assigned disclosure, which is incorporated herein by reference in its entirety: U.S. application Ser. No. 10/152,204, filed on May 21, 2002, by Scott G. Eagle, David L. Goulden, Anthony G. Martin, and Eugene A. Veteska.
Beginning in step 602, one or more message units 301 are received in client computer 101 from message server computer 103. In one embodiment, a message unit 301 is received in client computer 101 in response to an end-user navigating to a particular web site. That particular web site may include a search engine, for example. Navigation to a web site that has a search engine indicates that the end-user is intending to perform a search, and thus causes delivery of search message units intended for that web site. Message retriever 202 monitors web browser 201 for the URL of web sites visited by the end-user, and accordingly asks message server computer 103 for message units available for each web site, if any. Message units 301 received from message server computer 103 may be stored in message cache 204. As mentioned, a message unit 301 may be a rules message unit or a search message unit depending on the state of its search field 352 (see
In step 604, message retriever 202 detects an end-user request for information and so informs keyword processor 255. An example end-user request for information is a search request submitted to an Internet search engine. In one embodiment, a search request is detected by monitoring an address window of a web browser (e.g., see address window 430 shown in
In step 606, keyword extractor 252 extracts one or more keywords from the end-user request for information. The keywords may be words employed in a search request submitted to a search engine. In one embodiment, keywords are extracted by parsing a URL appearing in an address window of a web browser after the submission of a search request.
In step 608, keyword processor 255 requests message server computer 103 to send a keyword file 254 to client computer 101. A keyword file 254 may be periodically downloaded from message server computer 103 to ensure that the keywords contained therein are current. Depending on the application, a keyword file 254 may also be downloaded once upon installation of message delivery program 200 in client computer 101, or from time to time but not necessarily every time an end-user navigates to a new web site.
In step 610, client computer 101 receives a keyword file 254 from message server computer 103. An include list in a keyword file 254 in client computer 101 is also referred to as a “local include list”.
In step 612, keyword processor 255 determines if a keyword extracted from a search request is in an exclude list of keyword file 254. If the keyword is in the exclude list, the keyword is not deemed relevant and accordingly ignored by keyword processor 255. Processing of the keyword continues to step 616 if the keyword is not in the exclude list.
In step 616, keyword processor 255 determines if it is supposed to limit its determination of whether the keyword is relevant or not to an include list locally available in a keyword file 254 in client computer 101 (instead of in message server computer 103). Whether or not keyword processor 255 should only consult a local include list may be determined by examining local field 353 of a search message unit 301. Limiting keyword processor 255 to a local include list advantageously minimizes traffic to message server computer 103.
In steps 616, 618, and 620, the keyword is not processed if keyword processor 255 is limited to a local include list and the keyword is not in that local include list. For example, if local field 353 of a search message unit 301 indicates that only a local include list is to be consulted and the keyword is not in the local include list, that particular search message unit 301 will not be triggered for processing.
In step 622, keyword processor 255 sends the keyword to message server computer 103 if keyword processor 255 is not limited to a local include list (step 616 to step 622). Keyword processor 255 also sends the keyword to message server computer 103 if keyword processor 255 is limited to a local include list and the keyword is in that local include list. Message server computer 103 receives the keyword and then employs database 310 (see
In step 626, context watcher 205 identifies the triggered search message units 301 and accordingly alerts message processor 203 to process them.
A triggered search message unit 301 with a displayable message content may be processed by displaying its content. A triggered search message unit 301 with an executable message content may be processed by running its content. For example, a search message unit 301 may include a hyperlink to the URL of one or more web pages designated to contain a search result for a particular keyword. As a further example, a message server computer 103, another search engine (i.e., not the “original” search engine the end-user is actively using), or both may perform a search for the keyword and post the search results on a designated web page pointed to by a search message unit 301 that has been triggered for processing. A message server computer 103 may request the other search engine to perform the search after the message server computer 103 receives the keyword from client computer 101 and deems the keyword relevant.
While specific embodiments of the present invention have been provided, it is to be understood that these embodiments are for illustration purposes and not limiting. Many additional embodiments will be apparent to persons of ordinary skill in the art reading this disclosure. Thus, the present invention is limited only by the following claims.
Number | Date | Country | |
---|---|---|---|
Parent | 10289123 | Nov 2002 | US |
Child | 11210209 | Aug 2005 | US |