Abstract:
A system and method for extending computer network-based data presentation to offline time is provided. Data, such as advertisements, news information, entertainment, etc., can be downloaded during online sessions in periods with otherwise little or no data transmission. Additionally, the downloaded data may be displayed without intruding on the user&#39;s workspace. A method according to an embodiment of the invention may run as a background process on the user&#39;s computer. When the user initiates an online session, the user&#39;s computer may automatically initiate communication with a server to start downloading data. The downloading process may be adjusted to reflect the user&#39;s online activity. For example, during periods of significant data transfer, such as during the loading of a new web page, which requires use of a significant amount of bandwidth, the downloading process, for the advertisements or the like, is significantly reduced, or even paused, until sufficient bandwidth is available.

Description:
RELATED APPLICATIONS  
       [0001]    This application claims priority from Provisional Application Ser. No. 60/220,863, filed on Jul. 26, 2000. 
     
    
     
       FIELD OF THE INVENTION  
         [0002]    This invention relates generally to data processing systems, and more specifically, to a system and method for obtaining and presenting data offline and online through customization of the operating system.  
         BACKGROUND OF THE INVENTION  
         [0003]    A personal computer generally obtains data from the Internet or other on-line source according to an online protocol that requires downloading to thepersonal computers, in real-time, data stored at a network location. For example, advertisements are downloaded to a user&#39;s computer from a network location as the ads are being displayed. This process requires network connectivity and may use system resources that are needed by other applications, thereby delaying the processing of these other applications. Further, displaying advertising information according to a conventional method of computer network-based advertising is generally intrusive to the user&#39;s workspace. For example, advertising information may be displayed via, for example, a floating bar in the user&#39;s workspace.  
           [0004]    Alternatively, ads may be buffered into local storage as they are downloaded. This method still requires online connectivity and uses system resources that may be needed by other applications to perform regular refreshing of the ads. Further, the ads are generally displayed in a manner which intrudes on the user&#39;s workspace. Also, for purposes of assessing payment, the ads downloaded and displayed must be counted—a process that further uses computer resources that may be needed by other applications.  
           [0005]    Accordingly, a need exists for a manner of computer network-based data downloading that overcomes the shortcomings of conventional methods. Namely, extending data display to offline computing time, avoiding data, such as advertisements, being downloaded with every new page view (which generally slows down online activity) and displaying advertisements in a manner that is less intrusive to the user&#39;s workspace.  
         SUMMARY OF THE INVENTION  
         [0006]    This invention provides a system and method for extending computer network-based data presentation to offline time. This invention also allows the downloading of data, such as advertisements, news information, entertainment, etc., to occur during online sessions in periods with otherwise little or no data transmission. Additionally, the downloaded data may be displayed without intruding on the user&#39;s workspace. A method according to an embodiment of the invention may run as a background process on the user&#39;s computer. When the user initiates an online session, the user&#39;s computer may automatically initiate communication with a server to start downloadingdata. The downloading process may be adjusted to reflect the user&#39;s online activity. For example, during periods of significant data transfer, such as during the loading of a new web page, which requires use of a significant amount of bandwidth, the downloading process, for the advertisements or the like, is significantly reduced, or even paused, until sufficient bandwidth is available.  
           [0007]    According to one embodiment, a method for obtaining and presenting information to a user is provided. Data is received at a user device. The data may be obtained via a downloading process that is adjusted to reflect on-line activity at the first device. The data may then be stored at the first device. The downloaded data can be presented to the user regardless of network connectivity of the user device.  
           [0008]    In a further embodiment, it is determined when data is to be downloaded to a first device. It is also detected when the first device is online. When data is to be downloaded and when the first device is on-line, a download of data is initiated at the first device. The data is downloaded based on the on-line activity of the first device. The data may then be presented to the user via the first device, regardless of network connectivity of the first device.  
           [0009]    According to another embodiment of the invention, a computer system for providing targeted information to users is provided. A server device is provided as part of the system. The server device includes means for receiving a plurality of information messages, the information messages being associated with at least one of a plurality of target audiences; a profile manager for managing user profiles, the user profiles including information to associate users with the target audiences; a content supplier providing a format of the information message for the user; an upload component storing the plurality of information messages; a server component receiving requests for information messages, the requests including data to associate the request with a user profile; and means for sending information messages in response to the requests, the information messages being determined by comparing the target audience for the information message and the user profiles.  
           [0010]    In an exemplary embodiment of the invention, each time a user goes online, the user&#39;s computer sends a message to a server, indicating a unique user ID. The user ID may be assigned to the computer after an initial system installation. The message may also include a request for new data, such as the number of ads the computer would like to receive (which, in one embodiment, corresponds to the number of ads that have been viewed). The server confirms the validity of the user ID by, for example, comparing the user ID to a user profile stored on the server. Upon completing this confirmation, the server sends to the user&#39;s computer the requested data, such as the number of ads of the type that the user&#39;s profile indicates are most suitable (“targeted ads”). The received data or ads may be stored locally on a storage device, such as a hard drive, at the user&#39;s computer.  
           [0011]    In one embodiment, when data is displayed to, or viewed by, a user it is marked accordingly, and may be overwritten by other data the next time the user goes online. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0012]    [0012]FIG. 1 depicts an exemplary computer network suitable for using the advertising system of the invention;  
         [0013]    [0013]FIG. 2 depicts an exemplary SQL database;  
         [0014]    [0014]FIG. 3 depicts an exemplary schema of the data exchange between a client and a server in the invention;  
         [0015]    [0015]FIGS. 4 and 5 depict further details of the client cache; and  
         [0016]    [0016]FIGS. 6 and 7 depict flow diagrams of the present invention. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0017]    The present invention provides a system and method for obtaining data and for presenting data to a user when the user is both on-line and off-line. Data can be received at the user&#39;s computer via a downloading process. The data may include information messages such as advertisements, news articles etc. The downloading process can be adjusted to reflect the on-line activity of the user&#39;s computer. As the data is being downloaded, it may be stored at the user&#39;s computer, for example on a hard drive. The downloaded data can then be presented to the user, regardless of the network connectivity of the user&#39;s computer.  
         [0018]    The system and method of the present invention may be implemented in a client server environment, which is well known to those skilled in the art and is not described in detail herein, and the functions may be performed via computer software. In a preferred embodiment, the user&#39;s computer may determine when information is required, and initiate a request for information from the server. The server can determine, based on a user profile for the user, which data to provide to the user&#39;s computer. The system and method of the present invention are particularly suited for use in on-line advertising and is described below in that context. However, it will be recognized by those skilled in the art that the invention can be applied to many other environments.  
         [0019]    The system and method of the invention may use various screens, including, for example, the desktop/wallpaper, startup and shutdown screens, and screen savers to display data and information to users. Existing PC functionality can be utilized to display information to a user&#39;s desktop. The data may be delivered to the user in a variety of formats, including, for example, video, or audio. In this invention, unlike in conventional online advertising systems, the user&#39;s computer may initiate the communication with the server to request, for example, advertising information. This makes it much easier for advertisements to be delivered through, for example, corporate firewalls.  
         [0020]    The data can be downloaded to the user&#39;s computer from a server. The downloaded data may be stored at the user&#39;s computer in, for example, an “ad battery”. The downloaded data may then be displayed to the user. Thus, a user need only be online for the time required to request and receive data from the server. The downloaded data can be stored locally and displayed to the user regardless of network connectivity. For example, ad screensavers may be displayed while a user is online or offline.  
         [0021]    In an exemplary embodiment, which data is presented to the user is tracked. For example, once an ad has been displayed to a user, a software program resident on the user&#39;s computer marks the ad accordingly and displays a different ad the next time. Each time a user goes online, i.e., establishes a network connection, data that has already been displayed may be replaced with new data, i.e., new ads are downloaded to the user&#39;s PC and stored in the ad battery. If the user does not go online during a specified number of PC sessions and the local supply of unseen ads is exhausted, the ads stored in the ad battery may be re-displayed to the user. These additional displays may or may not be tracked.  
         [0022]    Ads may include an ad-rating feature that allows a user to rate the ad. This feature may be in the form of, for example, selectable radio buttons marked with various rankings, e.g. poor to excellent. This rating information may be aggregated and saved by the system, and sent to the server at specified times. Users may be rewarded for rating ads.  
         [0023]    As mentioned above, if a user does not establish a network connection for, for example, two consecutive computer sessions, previously viewed ads (those ads stored in the local ad battery) may be rotated and re-displayed to the user. Because the system tracks the ads displayed, it can determine how much to charge an advertiser based on the number of clients sent the ador the number of times the ad is viewed. Each advertiser is typically charged once, for one ad display. Thus, when ads are rotated, the advertiser may not be charged for additional displays of the ads.  
         [0024]    The software resident on the user&#39;s computer may automatically be loaded at boot-up. The software can include a system tray icon that is visible to the user. This icon allows the user to change the system settings. For example, when the icon is double-clicked, a modified preference screen may appear. The screen allows the user to: turn off the program during the current user session, and temporarily or permanently disable or re-enable ad space, or data display, functionality. This preference screen may also include a history of the previous ads that were displayed, for example, the last twelve ads and html links to the advertiser for each may be displayed on this modified preference screen. A user may also temporarily disable the system via the system tray icon. If the system is temporarily disabled, no ads will be shown for the remainder of the current session, but ads will be displayed during the next boot-up. Furthermore, the wallpaper and screensavers can incorporate a “live link button” which also activates a browser and takes the user to the advertiser&#39;s site. The system may also provide additional features. For example, a user may “touch” a screensaver without removing it by holding the “Shift” key down before moving the cursor (and during the mouse movement and click).  
         [0025]    [0025]FIG. 1 depicts an exemplary computer network suitable for using the online/offline system of the present invention. The network includes, for example, a client and a server. The client may include a client cache, a system register, and a web browser, such as, Microsoft Internet Explorer™. The client may be installed on, for example, a workstation running a Microsoft Windows™ operating system. The server can serve as a conduit between information providers, such as third party advertisers, and the user&#39;s computer. That is, the server serves as the hub for communication and transactions between users and advertisers. Advertisers send ads to the server and indicate a target market for the ad. The ad may be stored at the server and sent to a user when the user&#39;s computer makes a request. Ads can be sent to any number of users, depending on, for example, the number of people the advertiser has paid to reach.  
         [0026]    The server may run on a machine running, for example, Java Servlet Engine implementing Java Servlet API 2.1. The server may also be connected to an SQL database server that has a suitable JDBC driver. This database stores user profile and resource information for users. FIG. 2 depicts such an exemplary SQL database.  
         [0027]    The server is a basic technological component and may have multiple functionality. The server may be one or more servers that are able to function together to provide a certain functionality. Specific tasks may be split between physical servers, or they may reside on the same server. According to one embodiment of the invention, the server identifies a user, via the ID, for example, and determines which data, such as ads, are available for download by the client. This may be done by classifying ads by profile groups, etc. As described above, the ads may be stored in the ad bank and the server should also determine the address from which the ads will be downloaded. This address is then provided to the client. The client can then begin the download at the earliest possible time. This data may be delivered by the same server, or a physically separate server, depending on server availability.  
         [0028]    In the disclosed embodiment, the server may include two services: a profile manager, and a content supplier. The profile manager manages user profiles. It includes various fields for collecting profile information from the user. A user&#39;s profile may include, for example, name, address, hobbies, etc. This profile information may be stored on the server and may be used when delivering ads to the client. Several clients may share the same profile. The profile manager can distinguish between clients with the same profile to track ads. Users may be divided into groups according to their user profile information. Each group may be targeted to receive specific ads. The content supplier service provides a client with different wallpaper images, screensavers, startup and shutdown screens, etc. The content supplier service may, but does not necessarily, consider profile settings when sending ads to the client.  
         [0029]    The server stores a user profile for each registered system user, and stores the ads that may be provided to a client. Communication between the client and the server occurs over a network using, for example, the HTTP and XML protocols. System features may further be accessible through a proxy server that supports the HTTP protocol. The server may be localized geographically, in a country or region. This allows for local advertising content, and localizes risks associated with a server crashing. The server may include two components: an ad upload area and an ad server area. The ad upload area stores ads which have been created and approved for client presentation. Ads may be specially “tagged” for display to specific users, according to a user&#39;s indicated preferences, or other profile information, described further below. While this tag may allow for overlap between user profiles, it may also be very specific, limiting the presentation of certain ads to specific clients. The other component of the server, the ad server, receives an ad reload request from the end user&#39;s PC and responds by sending new ads to the user. It determines which ads to send according to the user profile stored on the server.  
         [0030]    [0030]FIG. 3 depicts an exemplary schema of the data exchange between a client and a server when a network connection is detected. When the client logs in to the server, the server searches, for example, a profile manager to determine the profile of the client. When a user establishes a network connection, the client checks a cache, explained further below relative to FIGS. 4 and 5, to determine which resources need to be refreshed and initiates a communication with the server. According to the information stored about the content that has been downloaded to it, the client can determine which resource(s) have already been displayed and should be overwritten with new data.  
         [0031]    [0031]FIGS. 4 and 5 depict further details of the client cache. The client cache can maintain a separate list for different types of ads that are downloaded (e.g., wallpaper, screensaver, etc.). For each ad type, the filename of a particular ad and an indication of whether the ad has been displayed are stored. The client cache farther includes an index for each list that points to the resource that is currently in use. According to the information in the client cache, the client determines which resources, i.e., ad types, have already been displayed and should be refreshed. The client application may be, for example, native Win32, running in the system tray. In the case of, for example, screensaver ads, the system register keeps track of whether a particular screensaver ad has been displayed, or viewed. Generally, rather than maintaining a log of which ads have been displayed, it “marks” or “flags” a particular ad as having been displayed. Thus, when an ad is displayed to the user, it is indicated, or “marked,” as being displayed (or viewed). This flagging or marking may be done in code. Detailed information about which ads have been displayed may be stored at the user&#39;s computer and updated when a previously displayed ad is overwritten with a new one.  
         [0032]    [0032]FIGS. 6 and 7 depict flow diagrams of an embodiment of the present invention. A user downloads the system software to a client computer. Once the compressed, self-installing file is fully downloaded, double-clicking on it launches the installation program. A profile window is then displayed to the user, asking the user to enter certain information that will be used to develop his profile. This may include information about the user&#39;s specific preferences for receiving information. The profile information is then stored on the user&#39;s computer until the next online session (after the first re-boot) at which point it is sent to the server. Via the preference screen, a user may answer personal questions, such as age, sex, educational level, salary, hobbies, etc. The user may further indicate what type of information is preferred and which is not preferred. For example, the preference screen may allow a user to affirmatively decline particular advertisements, or types of advertisements. After the user has completed the profile window&#39;s data requests, the computer is re-booted (then or later) to complete installation of the software. During the next online session, the server generates a unique profile identification code for the user and sends a copy of the code back to the client for storage. This profile registration should execute only once, upon the initial installation of the system.  
         [0033]    The next time a user establishes a network connection, the unique user ID is provided to the server and is checked against the stored user profile, allowing for information, such as ads, to be properly targeted according to the profile. The server may also analyze the user&#39;s IP address to determine additional user information (such as geographic location, type of browser used, etc.). The stored preference information and the IP address analysis can be used to develop an accurate user profile. Users can then be grouped according to their profiles into various advertiser-requested classifications.  
         [0034]    During the next online session, the user&#39;s computer, i.e., the software application on the client device may send a login request to the server. The login request should include information that allows the profile manager to identify the user, for example, an indication of the client&#39;s unique user ID. A content information request may also be sent to the server. The content information request should include a request for data from the server and may be included with the login request. If the client does not have a user identification code, when sending the content information request to the server, a default user identification code, for example, 0 may be used. In response, the server assigns the client a user identification code. A login request may include the following:  
         [0035]    http:“\\server\servlet\profile?ProfileID=1234.  
         [0036]    In response to the request, the server replies with a login packet response. The login packet response to the client may include a content manager address and specify content periods. This reply may be in the form of XML. The content manager address indicates from where the new ads will be downloaded, and the content periods indicate the frequency with which ads may be changed. For example, the wallpaper may be changed only once, five minutes after login. Similarly, startup or shutdown screens may be changed each time they are presented. When the client receives this content manager address and content period information, it sends a content information request to a content manager. The content manager may be a server or a portion of a server dedicated to act as a “librarian” for data, such as ads. A request for a specific ad is fulfilled by the content manager, that is, a specific ad is made available for downloading by the client. The content manager can also ensure that the advertisers get only the exposure that they paid for, for example, delivery of ads to a certain number of users. When enough users view a specific ad, the content manager ensures that a different ad (that matches the user&#39;s profile) is delivered. A login response packet from the server may include the following:  
         [0037]    &lt;XML&gt; 
         [0038]    &lt;LOGIN&gt; 
         [0039]    &lt;CONTENT MANAGER&gt; 
         [0040]    &lt;CMPARM NAME=“Address” VALUE=“content Manager URL”/&gt; 
         [0041]    &lt;/CONTENT_MANAGER&gt; 
         [0042]    &lt;TIMEOUTS&gt; 
         [0043]    &lt;TIMEOUT NAME=“Relogin” VALUE=“[−1[n]”/&gt; 
         [0044]    &lt;TIMEOUT NAME=“Wallpaper” VALUE=“[−1[0]n]”/&gt; 
         [0045]    &lt;TIMEOUT NAME=“ScreenSaver” VALUE=“[−1[0]n]”/&gt; 
         [0046]    &lt;TIMEOUT NAME=“Startup” VALUE=“[−1[0]n]”/&gt; 
         [0047]    &lt;TIMEOUT NAME=“Login” VALUE=“[−1[0]n]”/&gt; 
         [0048]    &lt;/TIMEOUTS&gt; 
         [0049]    &lt;/LOGIN&gt; 
         [0050]    &lt;/XML&gt; 
         [0051]    In the above example, the following timeout values may be used: “−1”=do not perform action; “0”=request now; and “n”=number of minutes to wait. The client uses URLs from the response packet to obtain new resources. One of ordinary skill in the art will appreciate that the URLs may point to zipped files to decrease the transfer time.  
         [0052]    After a content information request is made, the content manager may respond back to the client with a response including the following:  
         [0053]    &lt;XML&gt; 
         [0054]    &lt;CONTENT [ATTRIB=“UserID”]&gt; 
         [0055]    &lt;CITEM NAME=“LoginDlg” VALUE=“valid url”/&gt; 
         [0056]    [ 
         [0057]    &lt;CITEM NAME=“Wallpaper” VALUE=“valid url”/&gt; 
         [0058]    &lt;CITEM NAME=“Startup” VALUE=“valid url”/&gt; 
         [0059]    &lt;CITEM NAME=“Screensaver” VALUE=“valid url”/&gt; 
         [0060]    ] 
         [0061]    &lt;/CONTENT?&gt; 
         [0062]    [ 
         [0063]    &lt;SYSTEM&gt; 
         [0064]    &lt;SYS NAME=“Message”&gt; 
         [0065]    Message text goes here.  
         [0066]    &lt;/SYS&gt; 
         [0067]    &lt;SYS NAME=“Action” VALUE=“relogin”&gt; 
         [0068]    &lt;ISYS&gt; 
         [0069]    &lt;/SYSTEM&gt; 
         [0070]    ] 
         [0071]    &lt;/XML&gt; 
         [0072]    During an online session, the user&#39;s computer may request data, such as ads, from the server. When the user establishes a network connection, the client checks its cache to determine which data need to be refreshed or replaced and if some of the data need to be refreshed or replaced, initiates a communication with the server. In this request, the user&#39;s computer may request a specific amount of data, for example a specific number of ads. These ads will be presented to the user during the next PC sessions. The ads may include two startup screens, four wallpaper screens, four screen savers, and two shutdown screens. Therefore, when the user next turns on the PC, one of the startup screen ads will be displayed. Immediately thereafter, the first wallpaper ad may be displayed. After a specified period of time, e.g., five minutes, the wallpaper may be switched to a second wallpaper screen, depending on the content period. During this PC session, if the computer sits idle for a specified period of time, e.g., two minutes (or another time indicated by the PC&#39;s desktop settings), an ad screensaver may be displayed. When the user shuts down the system, a shutdown ad may be displayed. One of ordinary skill in the art will appreciate that while the various ads have been given descriptive names, different ad screens may be available with different operating systems. For example, for users using a PC running Windows 2000, there will be a pre-login screen instead of the startup screen, and there will be no shutdown screen.  
         [0073]    The system may further include a process for determining whether an ad has actually been viewed. A “proven view” may be defined as any time when all programs and windows are closed during a user session, giving a clear and unobstructed view of the wallpaper. In this case, instead of ads being changed according to a pre-set time schedule, ads may be changed after a proven view.  
         [0074]    Although the foregoing description has been described with reference to a specific implementation, those skilled in the art will know of various changes in form and detail that may be made without departing from the spirit and scope of the invention. For example, ads may be delivered to users in a variety of presentation formats, including audio, video, and scent. Moreover, instead of personal computers, the data can be downloaded to PDAs, wireless phones, WAP devices, etc.