US20050283469A1 - Responding to end-user request for information in a computer network - Google Patents

Responding to end-user request for information in a computer network Download PDF

Info

Publication number
US20050283469A1
US20050283469A1 US11/210,209 US21020905A US2005283469A1 US 20050283469 A1 US20050283469 A1 US 20050283469A1 US 21020905 A US21020905 A US 21020905A US 2005283469 A1 US2005283469 A1 US 2005283469A1
Authority
US
United States
Prior art keywords
message
search
keyword
computer
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US11/210,209
Inventor
Eugene Veteska
David Goulden
Anthony Martin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Gula Consulting LLC
Original Assignee
Veteska Eugene A
Goulden David L
Martin Anthony G
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Veteska Eugene A, Goulden David L, Martin Anthony G filed Critical Veteska Eugene A
Priority to US11/210,209 priority Critical patent/US20050283469A1/en
Publication of US20050283469A1 publication Critical patent/US20050283469A1/en
Assigned to CARHAMM LTD., LLC reassignment CARHAMM LTD., LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CLARIA INNOVATIONS, LLC
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9538Presentation of query results
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99936Pattern matching access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Definitions

  • 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.
  • the Internet is an example of a computer network.
  • 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.
  • an on-line bookstore may include a search engine for allowing a prospective buyer to look for specific novels available from the bookstore.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • FIG. 1 schematically illustrates an embodiment of the present invention.
  • FIG. 2 shows a schematic diagram of a computer network in accordance with an embodiment of the present invention.
  • FIG. 3 shows a schematic diagram of a client computer in accordance with an embodiment of the present invention.
  • FIG. 4A shows a web browser pointed to an Internet search engine.
  • FIG. 4B shows the web browser of FIG. 4A after a search.
  • FIG. 5 shows a schematic diagram of a message server computer in accordance with an embodiment of the present invention.
  • FIG. 6 which consists of FIGS. 6A and 6B , shows a flow diagram of a method of responding to an end-user request for information in accordance with an embodiment of the present invention.
  • FIGS. 7 and 8 show search results in accordance with embodiments of the present invention.
  • FIG. 1 An embodiment of the present invention is schematically illustrated in FIG. 1 .
  • an end-user on a client computer submits a search request to a search engine (hereinafter referred to as “original search engine”) on the Internet (see arrow 21 ).
  • the original search engine may perform an “Internet search”, or a search limited to a particular web site or domain name.
  • the search request may be a query comprising one or more keywords, for example.
  • the original search engine responds to the search request by sending a search result to the client computer (see arrow 22 ).
  • the search result may include a list of documents (e.g., web pages), links to documents, or other information relating to the keywords.
  • a specific example of the just described scenario is an end-user typing the keyword “car” in a search engine and receiving back links to web sites that talk about car clubs, exotic cars, car racing, and like information.
  • 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.
  • 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.
  • the message delivery program may compile a list of car-related advertisements and display them to the end-user.
  • 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.
  • Network 100 may include one or more client computers 101 , one or more web server computers 102 , one or more message server computers 103 , and other computers not shown. Intermediate nodes such as gateways, routers, bridges, Internet service provider networks, public-switched telephone networks, proxy servers, firewalls, and other network components are not shown for clarity.
  • network 100 includes the Internet; however, other types of computer networks may also be used.
  • Computers may be coupled to network 100 using any type of connection without detracting from the merits of the present invention.
  • a client computer 101 is typically, but not necessarily, a personal computer such as those running the Microsoft WindowsTM, Apple MacintoshTM, 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.
  • a client computer 101 may be used to access web pages from a web server computer 102 .
  • 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.
  • FIG. 3 schematically illustrates the components of a client computer 101 in accordance with an embodiment of the present invention.
  • the components of client computer 101 shown in FIG. 3 are implemented in software. It should be understood, however, that components in the present disclosure may be implemented in hardware, software, or a combination of hardware and software (e.g., firmware).
  • Software components may be in the form of computer-readable program code stored in a computer-readable storage medium such as memory, mass storage device, or removable storage device.
  • a computer-readable medium may comprise computer-readable code for performing the function of a particular component.
  • computer memory may be configured to include one or more components, which may then be run by a microprocessor. Components may be implemented separately in multiple modules or together in a single module.
  • client computer 101 may include a web browser 201 and a message delivery program 200 .
  • Web browser 201 may be a commercially available web browser or web client running on a client computer 101 .
  • web browser 201 is the Microsoft Internet ExplorerTM web browser.
  • 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.
  • 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 .
  • revenue e.g., advertising fees
  • 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 .
  • a message unit may include a message content.
  • a message content may include, without limitation, information to be displayed on a computer screen, audio to be played, or computer-readable program code (e.g., Java applet, script, HTML, hyperlink, pointer to a web page containing a search result).
  • a message unit may be a rules message unit or a search message unit.
  • a search message unit may be distinguished from a rules message unit by a field in the message unit referred to as a “search field” (see search field 352 in FIG. 5 ).
  • a rules message unit is processed when a set of rules has been satisfied, whereas a search message unit is processed when the end-user performs a search using certain keywords.
  • Message units are processed according to their message contents. For example, a message unit containing displayable message content is processed by displaying its message content on a computer screen, a message unit whose message content includes computer-readable program code is processed by running its message content, and so on.
  • message retriever 202 monitors web browser 201 for the uniform resource locator (URL) of web sites visited by an end-user surfing on the Internet. For each domain visited by an end-user, message retriever 202 may send a request packet to message server computer 103 .
  • a request packet includes:
  • 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 .
  • 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.
  • 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 .
  • 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.
  • 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:
  • search engine 252 may first parse the URL to determine the name of the search engine, and then employ parsing rules for that search engine.
  • FIG. 4A shows a web browser 201 pointed to the URL indicated in address window 430 .
  • web browser 201 is pointed to finderskeepers.com where an end-user is searching for information about hotrods and cars.
  • FIG. 4B shows web browser 201 and address window 430 after the search using the keywords “hotrod” and “car”.
  • search module 250 also includes a keyword file 254 .
  • keyword file 254 is a text file containing a list of relevant keywords referred to as “an include list” and a list of non-relevant keywords referred to as an “exclude list”. Note that keyword file 254 may have also have an include list but not an exclude list or vice versa. Keyword file 254 may be downloadable from message server computer 103 to ensure that client computer 101 always has the most current keyword file. Keywords in the include list have corresponding message units, whereas keywords in the exclude list have no corresponding message units. As will be explained later below, keywords in the include list are processed by keyword processor 255 , whereas keywords in the exclude list are not processed.
  • keyword processor 255 processes a keyword by sending the keyword to message server computer 103 to obtain further information about the keyword.
  • keywords that have no corresponding message units are identified at client computer 101 , thereby minimizing traffic to message server computer 103 .
  • traffic to message server computer 103 may be minimized by first determining if a keyword is in the include list before sending the keyword to message server computer 103 .
  • Table 1 shows the contents of an example keyword file 254 . TABLE 1 Include List Exclude List hotrod paper car the books for computer Britney cellular . . . sports . . . wine . . . . . . . .
  • 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.
  • the include list includes relevant words.
  • a word is considered relevant if there is a corresponding message unit for that word.
  • the word “computer” may be relevant if there is a message unit containing an advertisement for a personal computer.
  • the word “book” may be relevant if there is a message unit relating to books.
  • search module 250 includes keyword processor 255 .
  • Keyword processor 255 may include computer-readable program code for processing a keyword.
  • a keyword may be processed by determining if a keyword is relevant and working with message server computer 103 to identify message units 301 that relate to the keyword. Keyword processor 255 is further described in connection with FIG. 6 .
  • FIG. 5 schematically illustrates the components of a message server computer 103 in accordance with an embodiment of the present invention.
  • message server computer 103 receives request packets from a client computer 101 .
  • Each received request packet may include the domain name of the web site visited by an end-user.
  • Message server computer 103 uses the domain name to find all message units available for that web site.
  • a message unit may contain an advertisement for a car company that wants to display its advertisement to end-users visiting the “cars.com” web site.
  • the message unit containing the car company's advertisement will be sent to the requesting client computer 101 .
  • 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 .
  • 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.
  • 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.
  • 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.
  • 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 .
  • 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”).
  • 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”.
  • the minivan web page of cars.com has the URL “www.cars.com/minivans”.
  • message retriever 202 When an end-user visits the main page (or any web page) of “cars.com”, message retriever 202 (see FIG. 3 ) will send a request packet to message server computer 103 indicating that the end-user is on “cars.com”. In response, message server computer 103 will send the minivan message unit to client computer 101 .
  • context watcher 205 When the end-user navigates to the URL “www.cars.com/minivans”, context watcher 205 will detect that the minivan message unit has been triggered for display (i.e., rules 304 of the minivan message unit have been satisfied). Context watcher 205 will accordingly inform message processor 203 , which will then process the minivan message unit by displaying its message content.
  • 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.
  • 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.
  • a message unit 301 may also include an expiration date 305 .
  • Expiration date 305 indicates the latest date and time the message unit 301 can still be displayed.
  • Expired message units 301 do not have to be processed and may be removed from client computer 101 .
  • 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.
  • FIG. 6 which consists of FIGS. 6A and 6B , shows a flow diagram of a method 600 of responding to end-user request for information in accordance with an embodiment of the present invention.
  • the steps of method 600 are described herein using the aforementioned components of client computer 101 and message server computer 103 as an example. However, it should be understood that method 600 is not so limited and may also be implemented using other components.
  • 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 .
  • 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 FIG. 5 ).
  • 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.
  • a search request is detected by monitoring an address window of a web browser (e.g., see address window 430 shown in FIG. 4A ) for a URL with the string “search” in it (e.g., “ . . . search.domain_name/ . . . ”) or a domain name of a known search engine.
  • 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.
  • keywords are extracted by parsing a URL appearing in an address window of a web browser after the submission of a search request.
  • 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.
  • 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.
  • 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”.
  • 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.
  • 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 .
  • 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.
  • 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 FIG. 5 ) to identify search message units 301 in client computer 101 that relate to the keyword and accordingly may need to be processed
  • client computer 101 receives a keyword ID and a list of advertiser IDs from message server computer 103 , if any. The list of advertiser IDs identify search message units 301 that relate to the keyword.
  • the advertiser ID for that search message unit 301 is sent by message server computer 103 to client computer 101 .
  • the keyword ID is an arbitrarily assigned identification for the keyword.
  • the keyword ID may be used for statistical and logging purposes (e.g., how many times the word “car” appeared in a search request). Search message units 301 in client computer 101 whose advertiser IDs match those in the list of advertiser IDs received from message computer 103 are deemed triggered for processing.
  • 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.
  • 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.
  • 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.
  • FIG. 7 shows a search result 710 in accordance with an embodiment of the present invention.
  • Search result 710 includes a window 711 containing items 712 (i.e., 712 A, 712 B, 712 C, . . . ).
  • Each item 712 may be the message content of a triggered search message unit 301 .
  • item 712 A may be from the message content of a triggered search message unit that relates to the keywords “money” and “cash”.
  • the contents of window 711 may also be from a web page pointed to by a hyperlink in a message content of a triggered search message unit 301 ; the web page pointed to by the hyperlink may contain the results of a search performed by another search engine.
  • FIG. 8 shows a search result 810 in accordance with an embodiment of the present invention.
  • Search result 810 includes a browser window 811 containing items 812 (i.e., 812 A, 812 B, 812 C, . . . ).
  • Each item 812 may be the message content of a triggered search message unit 301 .
  • item 812 A may be from the message content of a triggered search message unit 301 that relates to the keyword “computer.”
  • items 812 may also be from a search result of another search engine.
  • Browser window 811 further includes a text box 813 containing the keyword “computer”, which in this example was the keyword typed by an end-user in the original search engine (not shown) (i.e., the search engine the end-user is actively using).
  • Keyword processor 255 may receive the keyword “computer” from keyword extractor 252 , and then paste the keyword in text box 813 .
  • Search result 710 of FIG. 7 or search result 810 of FIG. 8 may be displayed on a computer screen under a browser window displaying search results from the original search engine, for example.

Abstract

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. 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.

Description

    BACKGROUND OF THE INVENTION
  • 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.
  • SUMMARY
  • 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.
  • DESCRIPTION OF THE DRAWINGS
  • FIG. 1 schematically illustrates an embodiment of the present invention.
  • FIG. 2 shows a schematic diagram of a computer network in accordance with an embodiment of the present invention.
  • FIG. 3 shows a schematic diagram of a client computer in accordance with an embodiment of the present invention.
  • FIG. 4A shows a web browser pointed to an Internet search engine.
  • FIG. 4B shows the web browser of FIG. 4A after a search.
  • FIG. 5 shows a schematic diagram of a message server computer in accordance with an embodiment of the present invention.
  • FIG. 6, which consists of FIGS. 6A and 6B, shows a flow diagram of a method of responding to an end-user request for information in accordance with an embodiment of the present invention.
  • FIGS. 7 and 8 show search results in accordance with embodiments of the present invention.
  • The use of the same reference label in different drawings indicates the same or like components.
  • DETAILED DESCRIPTION
  • 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 FIG. 1. In FIG. 1, an end-user on a client computer submits a search request to a search engine (hereinafter referred to as “original search engine”) on the Internet (see arrow 21). The original search engine may perform an “Internet search”, or a search limited to a particular web site or domain name. The search request may be a query comprising one or more keywords, for example. The original search engine responds to the search request by sending a search result to the client computer (see arrow 22). The search result may include a list of documents (e.g., web pages), links to documents, or other information relating to the keywords. A specific example of the just described scenario is an end-user typing the keyword “car” in a search engine and receiving back links to web sites that talk about car clubs, exotic cars, car racing, and like information.
  • 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 FIG. 2, there is shown a schematic diagram of a computer network 100 in accordance with an embodiment of the present invention. Network 100 may include one or more client computers 101, one or more web server computers 102, one or more message server computers 103, and other computers not shown. Intermediate nodes such as gateways, routers, bridges, Internet service provider networks, public-switched telephone networks, proxy servers, firewalls, and other network components are not shown for clarity. In the example of FIG. 2, network 100 includes the Internet; however, other types of computer networks may also be used. Computers may be coupled to network 100 using any type of connection without detracting from the merits of the present invention.
  • 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.
  • FIG. 3 schematically illustrates the components of a client computer 101 in accordance with an embodiment of the present invention. In one embodiment, the components of client computer 101 shown in FIG. 3 are implemented in software. It should be understood, however, that components in the present disclosure may be implemented in hardware, software, or a combination of hardware and software (e.g., firmware). Software components may be in the form of computer-readable program code stored in a computer-readable storage medium such as memory, mass storage device, or removable storage device. For example, a computer-readable medium may comprise computer-readable code for performing the function of a particular component. Likewise, computer memory may be configured to include one or more components, which may then be run by a microprocessor. Components may be implemented separately in multiple modules or together in a single module.
  • As shown in FIG. 3, client computer 101 may include a web browser 201 and a message delivery program 200. Web browser 201 may be a commercially available web browser or web client running on a client computer 101. In one embodiment, web browser 201 is the Microsoft Internet Explorer™ web browser.
  • 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 FIG. 5, a message unit may include a message content. A message content may include, without limitation, information to be displayed on a computer screen, audio to be played, or computer-readable program code (e.g., Java applet, script, HTML, hyperlink, pointer to a web page containing a search result). In one embodiment, a message unit may be a rules message unit or a search message unit. A search message unit may be distinguished from a rules message unit by a field in the message unit referred to as a “search field” (see search field 352 in FIG. 5). A rules message unit is processed when a set of rules has been satisfied, whereas a search message unit is processed when the end-user performs a search using certain keywords. Message units are processed according to their message contents. For example, a message unit containing displayable message content is processed by displaying its message content on a computer screen, a message unit whose message content includes computer-readable program code is processed by running its message content, and so on.
  • Still referring to FIG. 3, message retriever 202 monitors web browser 201 for the uniform resource locator (URL) of web sites visited by an end-user surfing on the Internet. For each domain visited by an end-user, message retriever 202 may send a request packet to message server computer 103. In one embodiment, a request packet includes:
  • (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.
  • FIG. 4A shows a web browser 201 pointed to the URL indicated in address window 430. In the example of FIG. 4A, web browser 201 is pointed to finderskeepers.com where an end-user is searching for information about hotrods and cars. FIG. 4B shows web browser 201 and address window 430 after the search using the keywords “hotrod” and “car”.
  • Referring back to FIG. 3, search module 250 also includes a keyword file 254. In one embodiment, keyword file 254 is a text file containing a list of relevant keywords referred to as “an include list” and a list of non-relevant keywords referred to as an “exclude list”. Note that keyword file 254 may have also have an include list but not an exclude list or vice versa. Keyword file 254 may be downloadable from message server computer 103 to ensure that client computer 101 always has the most current keyword file. Keywords in the include list have corresponding message units, whereas keywords in the exclude list have no corresponding message units. As will be explained later below, keywords in the include list are processed by keyword processor 255, whereas keywords in the exclude list are not processed. In one embodiment, keyword processor 255 processes a keyword by sending the keyword to message server computer 103 to obtain further information about the keyword. By first examining the exclude list before sending keywords to message server computer 103, keywords that have no corresponding message units are identified at client computer 101, thereby minimizing traffic to message server computer 103. Likewise, traffic to message server computer 103 may be minimized by first determining if a keyword is in the include list before sending the keyword to message server computer 103. Table 1 shows the contents of an example keyword file 254.
    TABLE 1
    Include List Exclude List
    hotrod paper
    car the
    books for
    computer Britney
    cellular . . .
    sports . . .
    wine . . .
    . . . . . .
  • 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 FIG. 3, search module 250 includes keyword processor 255. Keyword processor 255 may include computer-readable program code for processing a keyword. In one embodiment, a keyword may be processed by determining if a keyword is relevant and working with message server computer 103 to identify message units 301 that relate to the keyword. Keyword processor 255 is further described in connection with FIG. 6.
  • FIG. 5 schematically illustrates the components of a message server computer 103 in accordance with an embodiment of the present invention. As mentioned, message server computer 103 receives request packets from a client computer 101. Each received request packet may include the domain name of the web site visited by an end-user. Message server computer 103 uses the domain name to find all message units available for that web site. For example, a message unit may contain an advertisement for a car company that wants to display its advertisement to end-users visiting the “cars.com” web site. When a request packet indicates that an end-user is on “cars.com”, the message unit containing the car company's advertisement will be sent to the requesting client computer 101.
  • 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 FIG. 3) will send a request packet to message server computer 103 indicating that the end-user is on “cars.com”. In response, message server computer 103 will send the minivan message unit to client computer 101. When the end-user navigates to the URL “www.cars.com/minivans”, context watcher 205 will detect that the minivan message unit has been triggered for display (i.e., rules 304 of the minivan message unit have been satisfied). Context watcher 205 will accordingly inform message processor 203, which will then process the minivan message unit by displaying its message content.
  • 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 FIG. 5, a message unit 301 may also include an expiration date 305. Expiration date 305 indicates the latest date and time the message unit 301 can still be displayed. Expired message units 301 do not have to be processed and may be removed from client computer 101.
  • 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.
  • FIG. 6, which consists of FIGS. 6A and 6B, shows a flow diagram of a method 600 of responding to end-user request for information in accordance with an embodiment of the present invention. The steps of method 600 are described herein using the aforementioned components of client computer 101 and message server computer 103 as an example. However, it should be understood that method 600 is not so limited and may also be implemented using other components.
  • 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 FIG. 5).
  • 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 FIG. 4A) for a URL with the string “search” in it (e.g., “ . . . search.domain_name/ . . . ”) or a domain name of a known search engine. It is to be noted that the mechanics of monitoring an end-user's browsing activity, such as determining where an end-user is navigating to, what an end-user is typing on a web page, when an end-user activates a mouse or keyboard, and the like, is, in general, known in the art and is not further described here.
  • 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 FIG. 5) to identify search message units 301 in client computer 101 that relate to the keyword and accordingly may need to be processed In step 624, client computer 101 receives a keyword ID and a list of advertiser IDs from message server computer 103, if any. The list of advertiser IDs identify search message units 301 that relate to the keyword. For example, if the keyword is “car” and there is a search message unit 301 containing an advertisement for a car company who is interested in search requests with the word “car” in it, the advertiser ID for that search message unit 301 is sent by message server computer 103 to client computer 101. The keyword ID is an arbitrarily assigned identification for the keyword. The keyword ID may be used for statistical and logging purposes (e.g., how many times the word “car” appeared in a search request). Search message units 301 in client computer 101 whose advertiser IDs match those in the list of advertiser IDs received from message computer 103 are deemed triggered for processing.
  • 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.
  • FIG. 7 shows a search result 710 in accordance with an embodiment of the present invention. Search result 710 includes a window 711 containing items 712 (i.e., 712A, 712B, 712C, . . . ). Each item 712 may be the message content of a triggered search message unit 301. For example, item 712A may be from the message content of a triggered search message unit that relates to the keywords “money” and “cash”. As another example, the contents of window 711 may also be from a web page pointed to by a hyperlink in a message content of a triggered search message unit 301; the web page pointed to by the hyperlink may contain the results of a search performed by another search engine.
  • FIG. 8 shows a search result 810 in accordance with an embodiment of the present invention. Search result 810 includes a browser window 811 containing items 812 (i.e., 812A, 812B, 812C, . . . ). Each item 812 may be the message content of a triggered search message unit 301. For example, item 812A may be from the message content of a triggered search message unit 301 that relates to the keyword “computer.” As discussed above, items 812 may also be from a search result of another search engine. Browser window 811 further includes a text box 813 containing the keyword “computer”, which in this example was the keyword typed by an end-user in the original search engine (not shown) (i.e., the search engine the end-user is actively using). Keyword processor 255 may receive the keyword “computer” from keyword extractor 252, and then paste the keyword in text box 813. Search result 710 of FIG. 7 or search result 810 of FIG. 8 may be displayed on a computer screen under a browser window displaying search results from the original search engine, for example.
  • 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.

Claims (2)

1-24. (canceled)
25. A method of data communication between a client computer and a server computer, the method comprising:
sending a message unit from the server computer to the client computer, the message unit comprising a message content, a vehicle field indicating a presentation vehicle for displaying the message content, an expiration date indicating a time period the message unit is valid, a local field indicating whether a keyword for a search request is to be evaluated against a local include list only, and a search field indicating whether or not the message unit is related to a search request, wherein the message unit is responsive to a search request transmitted from the client computer to the server computer.
US11/210,209 2002-11-05 2005-08-22 Responding to end-user request for information in a computer network Abandoned US20050283469A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/210,209 US20050283469A1 (en) 2002-11-05 2005-08-22 Responding to end-user request for information in a computer network

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/289,123 US7512603B1 (en) 2002-11-05 2002-11-05 Responding to end-user request for information in a computer network
US11/210,209 US20050283469A1 (en) 2002-11-05 2005-08-22 Responding to end-user request for information in a computer network

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US10/289,123 Continuation US7512603B1 (en) 2002-11-05 2002-11-05 Responding to end-user request for information in a computer network

Publications (1)

Publication Number Publication Date
US20050283469A1 true US20050283469A1 (en) 2005-12-22

Family

ID=35481827

Family Applications (2)

Application Number Title Priority Date Filing Date
US10/289,123 Active 2025-12-20 US7512603B1 (en) 2002-11-05 2002-11-05 Responding to end-user request for information in a computer network
US11/210,209 Abandoned US20050283469A1 (en) 2002-11-05 2005-08-22 Responding to end-user request for information in a computer network

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US10/289,123 Active 2025-12-20 US7512603B1 (en) 2002-11-05 2002-11-05 Responding to end-user request for information in a computer network

Country Status (1)

Country Link
US (2) US7512603B1 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060136524A1 (en) * 2004-12-20 2006-06-22 Claria Corporation Method and device for backing up cookies
US20060271389A1 (en) * 2005-05-31 2006-11-30 Microsoft Corporation Pay per percentage of impressions
US20080005264A1 (en) * 2006-06-28 2008-01-03 Microsoft Corporation Anonymous and secure network-based interaction
US20080183742A1 (en) * 2007-01-25 2008-07-31 Shyam Kapur System and method for the retrieval and display of supplemental content
US20080196098A1 (en) * 2004-12-31 2008-08-14 Cottrell Lance M System For Protecting Identity in a Network Environment
US20080313307A1 (en) * 2007-06-12 2008-12-18 Technorati, Inc. Url-based keyword advertising
US20090276713A1 (en) * 2008-05-01 2009-11-05 Eddy Michael P Network accessible content management methods, systems and apparatuses
US8255413B2 (en) 2004-08-19 2012-08-28 Carhamm Ltd., Llc Method and apparatus for responding to request for information-personalization
US20210235269A1 (en) * 2016-04-19 2021-07-29 Nokia Solutions And Networks Oy Network authorization assistance

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7475404B2 (en) 2000-05-18 2009-01-06 Maquis Techtrix Llc System and method for implementing click-through for browser executed software including ad proxy and proxy cookie caching
US8086697B2 (en) 2005-06-28 2011-12-27 Claria Innovations, Llc Techniques for displaying impressions in documents delivered over a computer network
US7603341B2 (en) 2002-11-05 2009-10-13 Claria Corporation Updating the content of a presentation vehicle in a computer network
US10742433B2 (en) 2003-06-16 2020-08-11 Meetup, Inc. Web-based interactive meeting facility, such as for progressive announcements
US9117220B2 (en) * 2003-06-16 2015-08-25 Meetup, Inc. Web-based interactive meeting facility with revenue generation through sponsorship
US7664770B2 (en) * 2003-10-06 2010-02-16 Lycos, Inc. Smart browser panes
US8170912B2 (en) 2003-11-25 2012-05-01 Carhamm Ltd., Llc Database structure and front end
US8078602B2 (en) 2004-12-17 2011-12-13 Claria Innovations, Llc Search engine for a computer network
US7693863B2 (en) 2004-12-20 2010-04-06 Claria Corporation Method and device for publishing cross-network user behavioral data
US8645941B2 (en) 2005-03-07 2014-02-04 Carhamm Ltd., Llc Method for attributing and allocating revenue related to embedded software
US8073866B2 (en) 2005-03-17 2011-12-06 Claria Innovations, Llc Method for providing content to an internet user based on the user's demonstrated content preferences
US20070168465A1 (en) * 2005-12-22 2007-07-19 Toppenberg Larry W Web Page Optimization Systems
US8620952B2 (en) 2007-01-03 2013-12-31 Carhamm Ltd., Llc System for database reporting
US7970891B1 (en) * 2007-01-17 2011-06-28 Google Inc. Tracking links in web browsers
US8078468B2 (en) * 2007-05-21 2011-12-13 Sony Ericsson Mobile Communications Ab Speech recognition for identifying advertisements and/or web pages
US20090106237A1 (en) * 2007-10-12 2009-04-23 Cableorganizer.Com Inc. System and method for dynamically customizing web page content
US8138930B1 (en) * 2008-01-22 2012-03-20 Google Inc. Advertising based on environmental conditions

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040098449A1 (en) * 2000-01-20 2004-05-20 Shai Bar-Lavi System and method for disseminating information over a communication network according to predefined consumer profiles
US20040162759A1 (en) * 2002-09-03 2004-08-19 Daniel Willis Advertising on video event display systems
US20050027821A1 (en) * 2002-08-12 2005-02-03 David S. Morganstein System and methods for direct targeted media advertising over peer-to-peer networks
US20060053230A1 (en) * 1998-05-04 2006-03-09 Montero Frank J Method of contextually determining missing components of an incomplete uniform resource locator

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5446919A (en) 1990-02-20 1995-08-29 Wilkins; Jeff K. Communication system and method with demographically or psychographically defined audiences
US5898434A (en) 1991-05-15 1999-04-27 Apple Computer, Inc. User interface system having programmable user interface elements
EP0605945B1 (en) 1992-12-15 1997-12-29 Sun Microsystems, Inc. Method and apparatus for presenting information in a display system using transparent windows
US5956030A (en) 1993-06-11 1999-09-21 Apple Computer, Inc. Computer system with graphical user interface including windows having an identifier within a control region on the display
US5642484A (en) 1994-05-13 1997-06-24 Captive Communications, Inc. Pump top advertisement distribution and display system with performance and sales information feedback
US6604103B1 (en) * 1994-09-02 2003-08-05 Mark A. Wolfe System and method for information retrieval employing a preloading procedure
EP0792493B1 (en) 1994-11-08 1999-08-11 Vermeer Technologies, Inc. An online service development tool with fee setting capabilities
US6026368A (en) 1995-07-17 2000-02-15 24/7 Media, Inc. On-line interactive system and method for providing content and advertising information to a targeted set of viewers
US5823879A (en) 1996-01-19 1998-10-20 Sheldon F. Goldberg Network gaming system
US5794259A (en) 1996-07-25 1998-08-11 Lextron Systems, Inc Apparatus and methods to enhance web browsing on the internet
US5933811A (en) 1996-08-20 1999-08-03 Paul D. Angles System and method for delivering customized advertisements within interactive communication systems
US6253188B1 (en) 1996-09-20 2001-06-26 Thomson Newspapers, Inc. Automated interactive classified ad system for the internet
US5854897A (en) 1996-12-27 1998-12-29 Quantum Systems, Inc. Network communications marketing system
US6285987B1 (en) 1997-01-22 2001-09-04 Engage, Inc. Internet advertising system
US6144944A (en) 1997-04-24 2000-11-07 Imgis, Inc. Computer system for efficiently selecting and providing information
US5937037A (en) 1998-01-28 1999-08-10 Broadpoint Communications, Inc. Communications system for delivering promotional messages
US6073105A (en) 1997-06-13 2000-06-06 Tele-Publishing, Inc. Interactive personals online network method and apparatus
US6029141A (en) 1997-06-27 2000-02-22 Amazon.Com, Inc. Internet-based customer referral system
JP3000972B2 (en) 1997-08-18 2000-01-17 日本電気株式会社 Information providing apparatus and machine-readable recording medium recording program
US6119098A (en) 1997-10-14 2000-09-12 Patrice D. Guyot System and method for targeting and distributing advertisements over a distributed network
US6222520B1 (en) 1997-12-31 2001-04-24 At&T Corp. Information display for a visual communication device
US6421675B1 (en) 1998-03-16 2002-07-16 S. L. I. Systems, Inc. Search engine
JP4064060B2 (en) 1998-05-15 2008-03-19 ユニキャスト・コミュニケーションズ・コーポレイション Technology for implementing network-distributed interstitial web advertisements that are initiated by the browser and invisible to the user using ad tags embedded in reference web pages
US6141010A (en) 1998-07-17 2000-10-31 B. E. Technology, Llc Computer interface method and apparatus with targeted advertising
US6324569B1 (en) 1998-09-23 2001-11-27 John W. L. Ogilvie Self-removing email verified or designated as such by a message distributor for the convenience of a recipient
US6297819B1 (en) 1998-11-16 2001-10-02 Essential Surfing Gear, Inc. Parallel web sites
US6084628A (en) 1998-12-18 2000-07-04 Telefonaktiebolaget Lm Ericsson (Publ) System and method of providing targeted advertising during video telephone calls
US6370527B1 (en) * 1998-12-29 2002-04-09 At&T Corp. Method and apparatus for searching distributed networks using a plurality of search devices
JP2000242392A (en) 1999-02-12 2000-09-08 Dbm Korea:Kk Computer system for dynamic information display and method thereof
US6321209B1 (en) 1999-02-18 2001-11-20 Wired Solutions, Llc System and method for providing a dynamic advertising content window within a window based content manifestation environment provided in a browser
US6314457B1 (en) 1999-04-21 2001-11-06 Airclic, Inc. Method for managing printed medium activated revenue sharing domain name system schemas
WO2000068757A2 (en) * 1999-05-07 2000-11-16 Carlos Cardona System and method for database retrieval, indexing and statistical analysis
US6269361B1 (en) 1999-05-28 2001-07-31 Goto.Com System and method for influencing a position on a search result list generated by a computer network search engine
US6502076B1 (en) 1999-06-01 2002-12-31 Ncr Corporation System and methods for determining and displaying product promotions
US6976053B1 (en) * 1999-10-14 2005-12-13 Arcessa, Inc. Method for using agents to create a computer index corresponding to the contents of networked computers
EP1228471A4 (en) 1999-11-11 2006-02-08 United Virtualities Inc Computerized advertising method and system
US6546388B1 (en) * 2000-01-14 2003-04-08 International Business Machines Corporation Metadata search results ranking system
US6401075B1 (en) 2000-02-14 2002-06-04 Global Network, Inc. Methods of placing, purchasing and monitoring internet advertising
US6594654B1 (en) 2000-03-03 2003-07-15 Aly A. Salam Systems and methods for continuously accumulating research information via a computer network
KR100618997B1 (en) 2000-04-10 2006-08-31 삼성전자주식회사 Home page advertising method
US20020010626A1 (en) 2000-05-22 2002-01-24 Eyal Agmoni Internert advertising and information delivery system
WO2001093157A1 (en) 2000-05-26 2001-12-06 Exitexchange Corporation Post-session internet advertising system
AU2002220172A1 (en) * 2000-11-15 2002-05-27 David M. Holbrook Apparatus and method for organizing and/or presenting data
AU2002254476A1 (en) 2001-03-30 2002-10-15 Fpba Group, Llc Network banner advertisement system and method
US8635531B2 (en) * 2002-02-21 2014-01-21 Ricoh Company, Ltd. Techniques for displaying information stored in multiple multimedia documents
US7283992B2 (en) * 2001-11-30 2007-10-16 Microsoft Corporation Media agent to suggest contextually related media content
US8086559B2 (en) 2002-09-24 2011-12-27 Google, Inc. Serving content-relevant advertisements with client-side device support
US6829599B2 (en) * 2002-10-02 2004-12-07 Xerox Corporation System and method for improving answer relevance in meta-search engines
US7581164B2 (en) 2003-01-06 2009-08-25 Apple Inc. User interface for accessing presentations

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060053230A1 (en) * 1998-05-04 2006-03-09 Montero Frank J Method of contextually determining missing components of an incomplete uniform resource locator
US20040098449A1 (en) * 2000-01-20 2004-05-20 Shai Bar-Lavi System and method for disseminating information over a communication network according to predefined consumer profiles
US20050027821A1 (en) * 2002-08-12 2005-02-03 David S. Morganstein System and methods for direct targeted media advertising over peer-to-peer networks
US20040162759A1 (en) * 2002-09-03 2004-08-19 Daniel Willis Advertising on video event display systems

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8255413B2 (en) 2004-08-19 2012-08-28 Carhamm Ltd., Llc Method and apparatus for responding to request for information-personalization
US20060136524A1 (en) * 2004-12-20 2006-06-22 Claria Corporation Method and device for backing up cookies
US20080196098A1 (en) * 2004-12-31 2008-08-14 Cottrell Lance M System For Protecting Identity in a Network Environment
US8375434B2 (en) 2004-12-31 2013-02-12 Ntrepid Corporation System for protecting identity in a network environment
US20060271389A1 (en) * 2005-05-31 2006-11-30 Microsoft Corporation Pay per percentage of impressions
US20080005264A1 (en) * 2006-06-28 2008-01-03 Microsoft Corporation Anonymous and secure network-based interaction
US8458349B2 (en) 2006-06-28 2013-06-04 Microsoft Corporation Anonymous and secure network-based interaction
US7984169B2 (en) * 2006-06-28 2011-07-19 Microsoft Corporation Anonymous and secure network-based interaction
US20110238829A1 (en) * 2006-06-28 2011-09-29 Microsoft Corporation Anonymous and secure network-based interaction
US20080183742A1 (en) * 2007-01-25 2008-07-31 Shyam Kapur System and method for the retrieval and display of supplemental content
US8983923B2 (en) * 2007-01-25 2015-03-17 Yahoo! Inc. System and method for the retrieval and display of supplemental content
US20080313307A1 (en) * 2007-06-12 2008-12-18 Technorati, Inc. Url-based keyword advertising
US20090276713A1 (en) * 2008-05-01 2009-11-05 Eddy Michael P Network accessible content management methods, systems and apparatuses
US20210235269A1 (en) * 2016-04-19 2021-07-29 Nokia Solutions And Networks Oy Network authorization assistance

Also Published As

Publication number Publication date
US7512603B1 (en) 2009-03-31

Similar Documents

Publication Publication Date Title
US8316003B2 (en) Updating content of presentation vehicle in a computer network
US20050283469A1 (en) Responding to end-user request for information in a computer network
US20050086105A1 (en) Optimization of advertising campaigns on computer networks
EP1561171B1 (en) System and method for delivery of information based on web page content
US7693863B2 (en) Method and device for publishing cross-network user behavioral data
US20050086219A1 (en) Generation of keywords for searching in a computer network
US20050086109A1 (en) Methods and apparatus for posting messages on documents delivered over a computer network
US20050055269A1 (en) Systems and methods for determining user actions
EP1742177A1 (en) Categorization of web sites and web documents
JP2007521561A (en) Statistical information generation in computer networks
JP2008501162A (en) System and method for responding to a search request in a computer network
US7483878B2 (en) Generation and presentation of search results using addressing information

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: CARHAMM LTD., LLC, DELAWARE

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CLARIA INNOVATIONS, LLC;REEL/FRAME:027715/0739

Effective date: 20111121