METHOD AND SYSTEM FOR TARGETING PARTICULAR INFORMATION TO SELECTED USERS OVER A
BIDIRECTIONAL COMMUNICATION SYSTEM
This application claims priority from U.S. Provisional Patent Application Serial Number 60\098,893, the disclosure of which is hereby expressly incorporated by reference.
FIELD OF THE INVENTION
The present invention generally relates to the field of data communications. More specifically, the invention is directed to a method and system for presenting user-specified information, such as advertisements and other such information, to a user over a computer network when the user accesses the network, where the particular information presented to the user is targeted to that user based on a stored profile for that user.
BACKGROUND OF THE INVENTION
Bidirectional communication systems, such as the Internet and other computer networks, bring people from all corners of the world together, providing for the exchange of ideas, information, and the like. The Internet is fast replacing other more conventional means of communication, such as the mail and telephone. In addition, an ever-increasing quantity of commerce is being transacted over the
Internet.
As is well known, the Internet is used by a number of content providers, which provide information, services, offer products for sale, and the like on their respective web sites. In addition, many of these site operators sell advertising space on their sites to third party advertisers, on which a user may
"click" (i.e. , select) in order to be directed to the advertiser's web site. Some of
these content providers are publishers of newspapers, magazines, and the like, which provide access to their publications electronically over the Internet. Other content providers include those entities engaged in electronic commerce.
Currently, when a user accesses a particular content provider or Internet service provider's (ISP) launch page, advertising which is presented to the user is typically not user-specified advertising (i.e., all users who access the site are generally presented with the same advertisements). Thus, for many of these users, the advertisements will be of no interest, and the user will not click on the associated banner. Thus, the money spent by the advertiser will in many cases be wasted, because the user has no interest in such a product or service. Such a system is inefficient.
Some Internet search engines have implemented a system and method by which advertisements are targeted to specific users based on information input by the user. For example, if a user accesses one of the search engine's web sites and enters a search query, the search engine is programmed to present the user with one or more advertisements relating to the user's search query, along with the results of the search. While such a system and method attempt to provide user-specified advertising, the system and method suffer from drawbacks. For example, the user may be seeking information for a work- or school-related project, and personally has no interest in the subject matter. Thus, such advertisements will likely be disregarded by the user, thereby failing to entice the user to click on the banner and access the advertiser's web site. Once again, a substantial portion of the advertising money spent by the advertiser to present the ad does not produce any results.
Accordingly, it will be apparent to those skilled in the art that there continues to be a need for a method and system for presenting particular advertisements and/or other information to certain users of a bidirectional communication system, which relies upon a user profile and various information (or ad) profiles to select the appropriate advertisements and/or other information to be presented to the user. The present invention addresses such needs.
SUMMARY OF THE INVENTION
According to the present invention, a method and system are provided for presenting information, for example, selected advertisements, to a user of a bidirectional communication system, such as the Internet or any other two-way network, when the user accesses the network. In one illustrative embodiment, a user who is registering for Internet service from an Internet service provider (ISP) is asked a series of questions relating to their likes and dislikes as part of the registration process. The answers are compiled to create a user profile or "mask" for that user. The user mask is compared with an ad profile or "mask" for each advertisement stored in the ISP's memory. If the ad mask and user mask indicate a match, then the advertisement is presented to the user once a TCPMP connection is established with the user, for example, when the user accesses the ISP's launch (or home) page, as the user navigates through the Internet, or some combination thereof.
Thus, the system of the present invention in one illustrative embodiment includes a central computer system comprising an interface to communicate with remote users and/or content providers over a communications network facility, and a processor programmed to periodically compile user-input information to create a user mask, to compare the user mask with information masks for various pieces of information, determine appropriate matches, and to present one or more of the information matches when the user accesses the computer system.
An illustrative method according to the present invention includes the steps of: creating and maintaining a user profile for each user of a computer network service provider; periodically comparing the user profile with one or more information profiles relating to corresponding pieces of information to determine appropriate matches; and, subsequently presenting the user with the one or more pieces of information when the user accesses the computer network.
BRIEF DESCRIPTION OF THE DRAWINGS
Other objects, features and advantages of the invention discussed in the above summary of the invention will be more clearly understood when taken together with the following detailed description of the preferred embodiments which will be understood as being illustrative only, and the accompanying drawings reflecting aspects of those embodiments, in which:
FIG. 1 is a block diagram of a system for presenting information to a user who accesses a network, according to one illustrative embodiment of the present invention; FIG. 2 is a block diagram of the system of FIG. 1 connected to plural user terminals, and to plural content providers through the Internet; and
FIG. 3 is a flow chart depicting the operational flow of the system of FIG. 1.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
Referring now to the drawings, and particularly to FIGS. 1 and 2, there is shown a system 10 for presenting targeted information to a user of a bidirectional communication network, for example, the Internet or other computer network. The system 10 includes an ad controller 12, an ad cache server 14, a compile server 15 including 1) a user information compiler 16 and 2) a user/ad mapper 18, a user database 20, and an ad database 22. While the components and the system 10 of FIG. 1 are described by way of reference to an "ad", it should be understood that the components and system are equally applicable to the delivery of various types of information in general. The system 10 is programmed to query a user for user preference related information and to store the entered information in the user database 20 or in any other suitable location. The system also receives ad profile information concerning a plurality of advertisements, and stores that information in the ad database 22. The user compiler 16 compiles the user preference information to generate an indexed file, and the user/ad mapper 18 compares the ad profile
information with the indexed file to determine the appropriate ads to present to the user. Then, when the user accesses the system, the appropriate advertisements are presented to the user, in any desired order and for any desired length of time.
The system 10 is connected to a communication network facility 24 (FIG. 2) which provides for communication via telephone lines, data lines, or a functionally equivalent link to a number of remote users, each located at a respective terminal 26, for two-way communication between the system 10 and the terminals 26. In one illustrative embodiment, the system 10 is also connected to a number of remote sites 28, for example, web sites (i.e. , advertisers) operated by various content providers, each of which includes a web server (not shown) programmed to present content to users over the Internet 30 or other suitable network, as is conventional.
The "terminals" 26 referred to herein may be computers, telephones, facsimile machines, televisions, or any other suitable device which allows for bidirectional communication over a network, and includes an interface having well known hardware and software structure such as a modem, tone decoder, networking interface, and the like, which is operative to initiate a connection via the communication network facility 24 to the system 10.
It will be apparent to those skilled in the art that the communication network facility 24 may be a telephone, facsimile, or data network system, a cellular telephone system, or any other suitable communication system. As is well known in the art, data may be transmitted over a conventional telephone network system, and data terminals can be attached to a cellular telephone for receiving and sending information. In addition, the communication network facility may include a wide area network (WAN), a local area network (LAN), local computer terminals, or other suitable computer-based networks. Thus, it will be apparent that any communications network facility which allows for the bidirectional transmission of data is suitable for use with the system 10 of the present invention.
The system 10 in one illustrative embodiment includes a private system and preferably is located at the service provider's facility or similarly secure
facilities. Alternatively, the system 10 may be part of a public network. For example, Internet service providers such as CompuServe®, America Online®, Earthlink®, and others provide access to various web sites to thereby make the data available to subscribers. Thus, it will be apparent that the system 10 of the present invention can either be implemented as a private network, or may be implemented in connection with a public network, for example, the Internet.
The system 10 may communicate with the advertisers 28 in various manners for the transfer of information from the advertisers to the system. In one illustrative embodiment, the system 10 and advertisers 28 communicate via the Internet 30, but may also transmit information in any other suitable manner. For example, an advertiser may send advertisement information on a storage medium, by mail, or the like. A system operator then uploads the information into the ad database 22 and an ad warehouse 32, which is a data store of sufficient capacity to accommodate the various advertisement banners and other information provided by the respective advertisers. The advertisements can be in the form of HTML images or any other suitable format.
The system 10 maintains the user database 20 for storing the user- supplied profile information for subsequent compiling by the user compiler 16. In one illustrative embodiment, when the user accesses the system 10 for the first time and seeks to register with the system, the system transmits a survey to the user terminal 26. The survey may contain any number of questions covering any number of topics, such as preferences for different types of food, clothing, automobiles, and the like. Preferably, the questions in the survey relate to advertisements stored in the ad warehouse. The responses to the survey questions, along with the registration information (e.g. , name, address, password, credit card information, and the like) are stored in the user database 20. In addition, the system 10 preferably stores a description of the questions in the user database as well. Such information may include how many bits are associated with each question, as is described in more detail below. It will be apparent that the survey may be periodically modified. For
example, when new advertisements are transmitted to the system 10, corresponding additional questions may be posed to the registered users, as well as to new users. Thus, an existing user may, from time to time, be asked additional questions, with their answers being appended to their user profile already stored in the user database 20.
The user compiler 16 is programmed to periodically compile the information stored in the user database 20. Preferably, the compilation is performed each day during a low-usage time for the system 10, such as overnight. In one embodiment, one bit is assigned to each yes or no question, with a " 1 " corresponding to a positive response, and a "0" corresponding to a negative response. For example, if the first question posed to the user is, "Do you like Brand X coffee" and the user answers yes, then the first bit in the user profile is a " 1 " . Preferably, the compiled information is stored as part of the user profile, or may be stored as a separate file. In addition, the survey questions may request a yes or no answer, or alternatively may provide multiple answers from which the users may choose the appropriate answer. In the case of a yes or no question, a single bit may be used to record the user's answer, with a "1" corresponding to a yes response, and a "0" corresponding to a no response. In the case of a question having multiple answers, more than one bit is used to record the user's response.
The user compiler 16 creates a binary format file (BFF) comprising a record for each user, based on the responses in the user's profile. Preferably, each record in the BFF comprises a compilation of the binary numbers used to represent the user's answers, arranged in some predetermined order, for example, based on the order in which the questions were posed to the user. In one embodiment, a record is generated for each user. Alternatively, the compiler may be programmed to generate a record for each unique set of answers to the questions, with each user being associated with one of the records in the BFF. Such association information is stored in the user's profile. Alternatively, a separate BFF may be generated for each user.
The user /ad mapper 18 is programmed to compare the compiled data in the user's profile with various ad profile information stored in the ad database 22. The ad profile information is preferably provided by the advertiser, which studies the questions in the survey and determines which one or ones should be answered in a certain way by the user. Then, an operator at the system 10 will enter identification data for an ad, along with the matched bit information for the ad (e.g., bit number 3 in the compiled data must be positive, and bit number 4 must be negative).
Thus, for example, a particular ad may require that a user answer one or more questions positively, or else the advertisement is not to be presented to that user. For example, if one of the ads is for Brand X coffee and the user answered the first question affirmatively (namely that they like Brand X coffee), then the ad for Brand X coffee should be presented to that user, and a pointer to that ad is stored in the user's profile. Conversely, if the user answered that question in the negative, then the advertisement for Brand X coffee should not be presented to the user. The set of pointers are preferably appended to the user profile, and are retrieved by the system 10 when the user accesses the system, as is described in more detail below. In the embodiment where the system 10 generates a plurality of BFF records, appropriate ad identifiers or pointers are appended to the corresponding BFF records.
Alternatively, it is contemplated that for some ads, two or more questions may have to be answered in a certain manner in order for that advertisement to be appropriate for presentation to a user. For example, if a user replies that they are looking to buy a new automobile in the next year, but are not interested in sports cars, then an ad for a sports car should not be presented to that user. Thus, the user/ad mapper must check two bits in the user profile. If the corresponding questions are numbers 5 and 7 in the survey, then the ad profile may require that bit numbers 5 and 7 both be positive. Thus the user/ad mapper will check both bits 5 and 7, and if either is negative (i.e., "0"), then no pointer for that ad will be stored in the user's profile, and the ad will not be presented to the user
when the user accesses the site.
Moreover, in the case of multiple choice questions, an advertiser may require that a string of bits match with the ad profile. For example, if the first question posed to the user is a multiple choice question, then the first X number of bits will be associated with that single question. The possible answers are each associated with a bit string, e.g., answer (a) may correspond with "000", answer (b) may correspond with "001", and so on. Thus, if an advertiser wants to present its ad to only those users who answered the first question with answer (a), the ad profile will require that bits 1 through 3 all be "0". It will be apparent that some ads may be related in some manner to many of the survey questions, but that advertisers may wish to present ads to users who answer some percentage of those questions in a certain manner. Thus, the user/ad mapper 18 may be programmed to find a suitable match where at least some percentage (less than 100%) of the bits correspond with the ad profile, for example, 70% . Thus, if the user answered at least some percentage of the questions correctly, a pointer to the ad will be appended to the appropriate BFF record or to the user profile.
It is contemplated that, from time to time, the operator of the system 10 may generate a new or revised survey that contains additional questions for users. In such an embodiment, the responses are stored by survey edition number and question number. For example, if a user answers question number 1 from survey number 1 positively, then the system stores all of that information in the user's profile. If the user is later presented with additional questions from survey number two, then the system 10 stores the survey number and question number, along with the user's response. Then, when an ad profile is created, it may look to see whether question number 1 from survey number 1 was answered affirmatively, or alternatively whether question number 5 from survey number 2 was answered in the affirmative. If either is true, then the ad is selected for presentation to the user. In this manner, the system may continually update the survey questions, without forcing the users to repeatedly answer the same questions.
The ad database 22 stores advertiser information, product profile information, and ad profile information. As described above, such information may be delivered to the system 10 in any suitable manner, such as over a computer network, or may be manually input into the system by a system operator. The ad cache server 14 is connected to the ad warehouse 32 and is programmed to retrieve the appropriate ad file or files, and is also connected to the user terminals 26 to transmit the file or files to the user terminal requesting such information. Thus, the ad cache server may be queried by one of the terminals for a particular ad (e.g., by receiving a pointer or other identifier corresponding to a particular ad), and the ad cache server accesses an association table or the like to determine the appropriate ad based on the pointer received, retrieves the corresponding ad file from the ad warehouse, and transmits the ad to the terminal for display, as is described in greater detail below.
The user database 20 and ad database 22 may take any suitable form. In one illustrative embodiment, the databases are those available from Oracle.
Preferably, the advertisement or advertisements presented to the user are presented in a "traveling" or "static" window, which remains on the screen as the user navigates through the Internet. In this manner, the advertisement does not disappear simply because the user navigates from one web site to another. In one illustrative embodiment, the traveling window is implemented by separate software maintained at the user's terminal 26, which is activated when a TCP/IP connection is established with the system 10. The system 10 includes software that is operative to size the windows for the traveling window software and for the web browser, such that each occupies a discrete portion of the user's screen. Such sizing is similar to a "tiling" program, which is well known in the art. Thus, when information is transmitted by the system 10 to the user terminal, the traveling window software displays the information on a predetermined portion of the screen. The launch page, web browser, and various web sites accessed by the user are displayed on a separate portion of the screen. Thus, when the user navigates from one web site to another, the only portion of the user's screen that changes is the
portion devoted to the web browser or the web site being accessed by the user. Thus, the targeted information may be presented to the user when they access the launch page, as they navigate through the Internet, or both.
The traveling window software also preferably transmits a periodic signal to either a state machine 31 or the ad controller 12 to alert the system 10 that the traveling ad window is still being displayed. If the user minimizes or closes the window, then no such signal is transmitted, and the ad controller may be programmed to terminate the user's connection after a predetermined period of time. In addition, the traveling window software includes a "stay-on-top" command, which causes the advertising window to continue to be displayed to a user, even if the user opens one or more additional applications.
Preferably, the ad cache server 14 transmits a signal to the ad controller 12 each time it receives a request for an ad or ads from a user terminal. The ad controller then increments one or more counters associated with the respective ads. In addition, the state machine 31 is alerted that the user terminal has requested one or more ads. The state machine stores such information along with the time of the request. Preferably, the ad controller 12 is also notified by the user terminal 26 whenever a user clicks on an ad, and increments a corresponding counter. Such information may be provided to the advertisers, used for billing purposes, and the like.
In one illustrative embodiment, the software maintained at the user terminal is designed to selectively parse the traveling window into two or more segments. Thus, the ad cache server 14 will retrieve and transmit two or more pieces of information, which are properly sized and displayed on the respective segments of the window. In this manner, two or more pieces of information may be simultaneously displayed to the user.
The ad controller 12 is the primary interface between the system 10 and user terminal 26. When a user accesses the system 10, by dialing the appropriate number or by any other suitable method and is authenticated, the user terminal is then connected to the ad controller 12. The ad controller preferably
maintains the user/ad maps generated by the user/ad mapper 18. Alternatively, the ad controller is in communication with a data store that stores those maps. Thus, when a user accesses the system 10, the terminal is programmed to transmit a login request which contains user identification data, which is compared with the user registration information to identify and authenticate the user. If the user is registered and in good standing, then the user is allowed access to the system 10, and the ad controller creates an entry in a client state table for that session. If the user is not registered, then the ad controller attempts to register the user, by requesting user information and by presenting the survey questions to the user, as is described above.
In one embodiment, the system 10 includes the network state machine 31 which periodically polls the users logged onto the network. The state machine is also connected to the ad cache server 14, and determines whether the ad cache server receives requests for ads from the various users. Preferably, the state machine makes sure that each of the user terminals has requested an ad within some selected amount of time, or has transmitted a signal that an ad is being displayed within that selected amount of time. If not, the state machine alerts the ad controller, which may either terminate the user's session, or send a message to the user's terminal that they need to open the ad window, or the session will be terminated.
In one illustrative embodiment, the system 10 includes a number of communication ports C, through CN connected to the communication network facility 24 for simultaneous, two-way communication with one or more of the user terminals 26. The respective communication ports are also connected to an interface (not shown) which is part of the system 10 and represents and incorporates well known hardware and software structures to allow for simultaneous communications with plural users. While only one system 10 is shown, it will be apparent that there may be a plurality of such systems, each of which handles communication with a number of user terminals. The special features of the system of the present invention are
implemented, in part, by software programs stored in memory of the system 10 and possibly in memory at the user terminal 26. The software programs are stored in one or more preselected data files and are accessible by the processor 20, the function of which is described in greater detail in connection with FIG. 3. The advertisers may contract with the operator of the system 10, and provide the operator of the system 10 with one or more advertising banners, along with the pointers, URL(s), or other identifiers associated with the advertisement(s). The operator of the system 10 stores those banners and identifiers for subsequent transmission to the appropriate users, as is described in greater detail below. The system 10 preferably includes ISP functions and provides
Internet access to the users. Thus, a user will access the system 10 to gain Internet access, with the system providing such access and simultaneously presenting targeted information to the user so long as the user accesses the system 10. Initially, it is contemplated that a prospective user who is interested in the ISP service will typically access a corresponding web site to download the appropriate software, or call a telephone number to request that the software be mailed to them. The user will then load the software and be connected to the system 10 via dial-up connection or the like.
Referring now to FIG. 3, the operation of the system 10 of the present invention is described in conjunction with the above structural description of the system 10 and the remote user terminals 26. As illustrated in FIG. 3, the process begins when a user at one of the remote terminals 26 accesses the system via the communication network facility 24 via a dial-up connection or the like, at step 50. As described above, the user preferably has already obtained the appropriate software, either by mail or by download. Once communication is established with the system 10, operation proceeds to step 51, and the system 10 determines whether the user is registered with the system through conventional ISP identification and authentication techniques well known to those skilled in the art. If the user is not registered with the system 10, operation flows to step 52, and the system 10 registers the user, by requesting user information and presenting a survey
to the user, and recording the user's responses. Operation then proceeds to step 53, and the user is presented with generic advertisements, because their user profile is not yet finished. The user may click on one or more of the advertisements to be directed to the corresponding web site, or may navigate through the Internet, at step 54. Preferably, the advertisements continue to be displayed on the user's terminal as the user navigates through the Internet, in a traveling or static window as is described above.
If at step 51 the system 10 determines that the user is registered with the system, then operation proceeds to step 56, and the system determines if there are new survey questions to be posed to the user, which the user did not answer when they registered with the system. If there are new questions, operation proceeds to step 58, and the new questions are posed to the user, and the user's responses are recorded, with the appropriate link to the question number and survey number. Operation then proceeds to step 60, and the ad controller accesses the user's profile or the appropriate BFF record to determine the appropriate information to present to the user. As described above, the compile server 15 performs this function to determine the piece or pieces of information to present to the user, based on the user's mask and the various ad masks. The ad controller then transmits one or more pointers, URLs, or other identifiers corresponding to the advertisements to the user's terminal 26.
In one illustrative embodiment, the ad controller 12 consults the user table which stores user profile information, including BFF identification data associating the user profile with one of the BFF records. The ad controller determines the corresponding BFF record for that user, and then accesses that BFF record to determine the appropriate ad or ads to present to the user.
At step 62, the user's terminal then transmits an advertisement request to the ad cache server 14, which contains the identifiers for the various ads. The ad cache server retrieves the ads from the ad warehouse 32 and transmits the advertisement data as a script to the user terminal 26 for display, at step 64. Alternatively, the ad controller may transmit the URLs (or any other suitable
identification data) directly to the ad cache server, which then retrieves the appropriate ad data from the ad warehouse and transmits the data to the user terminal for display. The ads may be displayed in any order, and can be presented based on the status of the respective advertisers, or in a random order, or the like. Preferably, the communications from the ad controller 12 to the user terminal 26 include a token or other session identification data. When the user logs onto the system 10, the ad controller transmits the token to the user terminal. The user terminal is programmed to disregard any transmissions that do not include the token. Thus, each transmission from the ad controller and from the ad cache server 14 include the token. In this manner, third parties are prevented from communicating with the users when they are logged onto the system.
The system 10 may maintain several variations of each ad, and can present the user with one of the variations based on the user's physical location. The system can access the user's zip code, or a suitable state machine may determine the user's location, as is well known. Then, the ad with a location- specific message is presented to the user, for example, "Buy Brand X coffee at Joe's Market on the corner of Main and First".
Preferably, the user terminal 26 maintains a cache into which the ads are stored for subsequent presentation to the user. Thus, before the user terminal queries the ad cache server 14 for one or more ads, the user terminal accesses its cache to search for one or more of the ads. If one or more of the ads are in the cache, then the user terminal retrieves the ads from the cache and does not query the ad cache server for those ads.
In one illustrative embodiment, the software at the user terminal 26 is operative to transmit a periodic message back to the ad controller to indicate to the ad controller that the advertisement is being presented to the user. In this manner, the system 10 can determine how many users are presented with each advertisement, and can monitor a user to make sure they are still viewing the advertisement. Then, at step 66, the user may navigate through the Internet 30. Preferably, the software at the user terminal maintains a dedicated window on the monitor in which the ads
are displayed, even while the user is accessing other web sites.
In one embodiment, the survey questions may be answered by the user when registering, or may be delayed to some future time. The user then gains Internet access and is presented with generic advertisements until they answer the survey questions. The system 10 may be programmed to allow the user access for some selected number of visits before the questions must be answered, or for some predetermined amount of time, or the like. After the number of visits or the amount of time elapses, the system denies the user access to the system 10, and the user must then answer the survey questions. It will be apparent that the presentation of advertisements may be continuous, or alternatively may be intermittent. For example, information may be presented for a predetermined amount of time, such as fifteen minutes. After the fifteen minutes has elapsed, no information is presented for a predetermined amount of time, such as fifteen minutes. The traveling window is preferably removed from the user terminal during this period. The process may be repeated. In another example, the information may be presented for a predetermined number of minutes each hour, with no information presented the rest of the hour, and with the process being repeated each hour. In another embodiment, once the set of ads has been displayed to the user, the ad window may disappear, the user terminal may query the ad cache server for additional ads, or the set of ads may be presented again to the user.
In one illustrative embodiment, the system 10 is designed to use push technology to interrupt the presentation of information to a user and to present a special piece of information. When the system receives the information, it transmits a message with data identifying the information, along with a token as described above, to the user terminals, which are programmed to immediately request the information from the ad cache server 14. Once the information is received, along with the token information, from the ad cache server, it is displayed on the user's terminal. When the piece of information has been presented to the user, the user terminal resumes the presentation of the ad script.
From the foregoing, it will be apparent that the system 10 of the present invention provides a convenient, efficient system for presenting selected information, for example, selected advertisements, to a user of a bidirectional communication system, based upon a stored user profile for that user. The system 10 may generate revenue for the system operator in the form of any one or more of advertising fees, registration fees, and the like.
While forms of the invention have been described, it will be apparent to those skilled in the art that various modifications and improvements may be made without departing from the spirit and scope of the invention. As such, it is not intended that the invention be limited to the illustrative embodiments set forth herein.