Nothing Special   »   [go: up one dir, main page]

WO2001043009A1 - Method for distributing advertisements to e-mail clients - Google Patents

Method for distributing advertisements to e-mail clients Download PDF

Info

Publication number
WO2001043009A1
WO2001043009A1 PCT/US2000/018713 US0018713W WO0143009A1 WO 2001043009 A1 WO2001043009 A1 WO 2001043009A1 US 0018713 W US0018713 W US 0018713W WO 0143009 A1 WO0143009 A1 WO 0143009A1
Authority
WO
WIPO (PCT)
Prior art keywords
software
set forth
function
advertisement
user
Prior art date
Application number
PCT/US2000/018713
Other languages
French (fr)
Other versions
WO2001043009A9 (en
Inventor
Paul E. Jacobs
Franklin P. Antonio
Steven Dorner
John W. Noerenberg
Jeffrey K. Belk
Benjamin P. Ogdon
Jeffrey D. Beckley
Alan Bird
John D. Boyd
John S. Purlia
Wiliam J. Rhodes
David J. Ross
Matthew J. Dudziak
Original Assignee
Qualcomm Incorporated
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 Qualcomm Incorporated filed Critical Qualcomm Incorporated
Priority to AU60806/00A priority Critical patent/AU6080600A/en
Priority to JP2001544224A priority patent/JP2003529821A/en
Publication of WO2001043009A1 publication Critical patent/WO2001043009A1/en
Publication of WO2001043009A9 publication Critical patent/WO2001043009A9/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/18Commands or executable codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/107Computer-aided management of electronic mailing [e-mailing]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/06Message adaptation to terminal or network requirements
    • H04L51/063Content adaptation, e.g. replacement of unsuitable content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/42Mailbox-related aspects, e.g. synchronisation of mailboxes

Definitions

  • the present invention relates generally to the field of electronic mail ("e-mail") software and systems. More particularly, the present invention is related to advertiser-supported e-mail software and a method and system for delivering advertisements to client computers having this advertiser-supported e-mail software installed thereon.
  • e-mail electronic mail
  • E-mail Electronic mail
  • a client device e.g., a personal computer (PC)
  • PC personal computer
  • Access to the communications network can be provided by a communications network service provider, e.g., an Internet Service Provider (ISP) and /or a proprietary network e-mail service provider, with whom the user establishes one or more e-mail accounts, each identified by a unique e-mail address, e.g., president® whitehouse. o v .
  • ISP Internet Service Provider
  • a proprietary network e-mail service provider with whom the user establishes one or more e-mail accounts, each identified by a unique e-mail address, e.g., president® whitehouse.
  • the e-mail software e.g., the e-mail client, enables a user of the client device to compose e-mail messages, to send e-mail messages to other client devices via the communications network, and to read e-mail messages received from other client devices via the communications network.
  • a user can send e-mail messages to multiple recipients at a time, which capability is sometimes referred to using a mailing list or, in extreme cases, bulk mailing.
  • the typical e-mail client supports Post Office Protocol Version 3 (POP3), Simple Mail Transfer Protocol
  • SMS Internet Mail Access Protocol
  • IMAP4 Internet Mail Access Protocol
  • Multipurpose Multipurpose
  • Each ISP and each proprietary network e-mail service provider independently operates and controls an e-mail communication system (or, simply, "e-mail system").
  • e-mail system or, simply, "e-mail system”
  • These independently-operated e-mail systems are bi-directional store-and-forward communication systems that are interconnected to one another via the Internet.
  • Each e-mail system generally includes a number of e-mail servers that store inbound and outbound e-mail messages and then forward them, route them, or simply make them available to the users/intended recipients. Different e-mail systems are operated and controlled by independent control entities.
  • e-mail server or server cluster
  • outgoing e-mail server i.e., both the incoming and outgoing e-mail servers under the control of a single entity.
  • Most e- mail clients other than proprietary e-mail systems such as AOL and JUNO, can be configured to receive e-mail from an incoming e-mail server (cluster) controlled by a first entity and an outgoing email server (cluster) controlled by a second, totally independent entity. It will be appreciated that most casual email users download from and upload to respective servers operated by a single entity.
  • the e-mail software is activated. Upon being activated, the e-mail software:
  • a connection or communications session effects a connection or communications session with the host ISP or e-mail service provider via a prescribed communication link by invoking a prescribed communications mechanism, e.g., a dial-up modem, an ISDN connection, a DSL or ADSL connection, etc.;
  • a prescribed communications mechanism e.g., a dial-up modem, an ISDN connection, a DSL or ADSL connection, etc.
  • electronically transmits or transports any e-mail messages desired to be sent to the e-mail server system operated by the host ISP or e-mail service provider, e.g., via an SMTP server;
  • Exemplary e-mail software is the commercially available e-mail software marketed by the present assignee, QUALCOMM INCORPORATED, under the registered trademarks EUDORA PRO® and EUDORA LIGHT® (hereinafter sometimes referred to generically as "Eudora").
  • EUDORA PRO e-mail software provides the user with a "full feature set”
  • EUDORA LIGHT e-mail software provides the user with a "reduced feature set” that is a subset of the "full feature set” provided by the EUDORA PRO e-mail software.
  • the EUDORA PRO e- mail software (the previous version of which is referred to as "EP4" in this document) must be paid for by the user (or by someone else on behalf of the user), and can thus be regarded as "Payware”, whereas the EUDORA LIGHT e-mail software is provided free of charge to registered users, and thus, can be regarded as "Freeware.”
  • Each of the client devices that has any version of Eudora installed thereon can be regarded as a "Eudora client.”
  • Eudora client Presently, there is a very large installed base of Eudora clients.
  • the present assignee, QUALCOMM INCORPORATED has recently released a new version of its popular EUDORA e-mail software that is popularly known as EUDORA Adware (hereinafter sometimes referred to simply as "Adware").
  • This new Adware version of Eudora is contained within, i.e., is an integral part of, a new Eudora software product that contains the previously-referenced Payware and Freeware versions of Eudora.
  • each version of Eudora contained within this Eudora product release constitutes a separate operating mode of a single software product.
  • the Adware Version of Eudora Pro® can be activated or switched between modes either automatically, in accordance with prescribed criteria or conditions, or manually, in accordance with prescribed user actions, e.g., registration, payment, selection, etc.
  • This new Adware version of Eudora and the multi-moded Eudora e-mail software product that contains the same were motivated by a desire on the part of the present assignee to provide users with the "full feature set" afforded by the Payware version of Eudora free of charge to the users, by means of distributing advertisements paid for by advertisers to Eudora clients, thereby effectively shifting the source of payment/ revenue from the users to the advertisers.
  • this new Eudora software product can be regarded as "advertiser-supported” or “advertiser-subsidized” or simply “sponsored” software.
  • ISPs Internet service providers
  • e-mail service providers charge users a flat monthly subscription fee, although some providers still charge users based on usage, e.g., additional charges for on-line time beyond a prescribed level.
  • ISPs Internet service providers
  • e-mail service providers charge users a flat monthly subscription fee, although some providers still charge users based on usage, e.g., additional charges for on-line time beyond a prescribed level.
  • a few companies have addressed the needs of this market segment by providing free e-mail service to users /subscribers who agree to receive advertisements along with their received e- mail messages. In this way, the advertisers support or sponsor the free e-mail service.
  • the advertisements were stored on the subscriber's computer for viewing while the subscriber was off-line reading the received e-mail messages.
  • FreeMark referred to the appended advertisements as "postage stamps".
  • each message received by the subscriber was depicted as an envelope bearing a postage stamp; the postage stamp was the advertisement.
  • JUNO Juno Online Services
  • a plurality of advertisements are downloaded to subscribers when they connect to the proprietary JUNO e-mail server system to send and /or receive e-mail messages, with the advertisements being stored locally on the subscriber's computer for display when the subscriber is off-line composing or reading e-mail messages, i.e., when the subscriber activates Juno e-mail software previously installed on the subscriber's computer.
  • the locally stored advertisements are displayed under the control of a display scheduler resident on the subscriber's computer, to thereby enable the advertisements to be rotated or changed in a dynamic manner. This results in a continuously-changing display of advertisements being presented to the subscriber.
  • both the advertisements and the e-mail messages are stored on a single e-mail system (e.g., JUNO stores both on a single, unique server which is assigned (bound) to the user when he/she first signs up for service), and are distributed to subscribers under the direction of a common control entity that is controlling all part of the e-mail system.
  • JUNO stores both on a single, unique server which is assigned (bound) to the user when he/she first signs up for service
  • This may be a desirable system architecture for providing free e-mail service, it is not a suitable system architecture for a system whose purpose is to distribute advertiser-supported e-mail software that is e-mail system-independent, i.e., which is not tied to a particular proprietary e-mail service provider but, rather, supports public standards, e.g., POP3, SMTP, IMAP4, etc.
  • the free e-mail system architecture is not suitable for the many people who maintain multiple e-mail accounts, e.g., business and personal e-mail accounts.
  • the present inventors were motivated by a desire to provide a system and method for distributing advertisements to Eudora clients in order to generate advertising revenues that would allow a fully-featured version of the Eudora e-mail software to be widely distributed free of charge to end-users. Moreover, the present inventors were motivated by a desire to provide e-mail software that is both universal and e- mail system-independent, i.e., it is not tied to any particular proprietary e-mail service or service provider.
  • the present inventors have developed a novel multi-moded Eudora e-mail software product that contains the Payware, Freeware and Adware, and have also devised a novel system and method for distributing advertisements to clients equipped with this new software product.
  • the purpose and architecture of this novel system are radically different than that of the proprietary FreeMark and JUNO e-mail systems.
  • the multi-moded Eudora e-mail software product, and the novel system and method for distributing advertisements to clients equipped with this new software product embraces a number of different inventions that will become fully apparent from the following disclosure and the documents referenced therein.
  • the present invention encompasses e-mail software which incorporates an automatic advertisement download function for automatically downloading advertisements to be displayed when the e-mail software is activated, for the purpose of subsidizing the full e-mail software product (e.g., to provide a "Freeware" version of the e-mail software product to end-users), wherein the e-mail software is e-mail system-independent.
  • the e-mail software is a standalone product which is universal, i.e., works in conjunction with virtually any e-mail service provider or e-mail system, including those service which comply with open standards.
  • the present invention also encompasses a system and method for automatically distributing advertisements to a multiplicity of client devices which have this e-mail software installed thereon.
  • the present invention provides an e-mail client for receiving and sending e-mail messages to at least one of a plurality of e-mail servers operated by respective e-mail operators, wherein the e-mail client receives at least one ad from an ad server operated by a control entity different than the control entity operating the one or more e-mail systems.
  • the present invention provides a recording medium storing e-mail client software for instantiating an e-mail client which receives e-mail messages from and sends e-mail messages to at least one of a plurality of e-mail servers operated by their respective e-mail operators, wherein the e-mail client automatically receives ads from an ad server which operates independent of the e-mail servers.
  • the present invention encompasses a method of operating an e-mail client, provided by an ad server operator, compatible with a plurality of independently operated e-mail servers, including ones based on open e- mail standards.
  • the method includes steps for periodically at least one of sending and receiving e-mail from selected ones of the e-mail servers, periodically receiving ads from the ad server operator, and displaying the received ads responsive to instructions provided by the ad server operator.
  • the present invention provides an e-mail system including an incoming e-mail server storing incoming e-mail messages addressed to a plurality of users, an outgoing e-mail server for forwarding or routing outgoing e-mail messages generated by the users, and an ad server operating independently of the e-mail server, and a plurality of e-mail clients operated by respective users.
  • each of the e-mail clients checks for respective e-mail messages stored on the incoming e-mail server, transmits any outgoing e-mail messages stored on the e-mail client to the outgoing e-mail server, and downloads available ads from the ad server while the e-mail client is online.
  • the present invention encompasses software for use on a client device which is configured for communications with a multiplicity of other client devices via a communications network.
  • the client device provides an installer function for installing the software on the client device, a communications function which effects a send e-mail communication link between the client device and an e-mail service provider server system via the communications network whenever the user desires to send e- mail messages, a receive e-mail communication link between the client device and the e-mail service provider system whenever the user desires to check for received e-mail messages; and an advertisement download communication link between the client device and an advertisement distribution server system via the communications system, at selected advertisement download times.
  • the client device provides an e-mail composition function for enabling a user of the client device to compose e-mail messages, an e-mail send function which enables the user to send e-mail messages to other client devices via the send e- mail communication link, an e-mail receive function that enables the user to receive e-mail messages from other client devices via the receive e-mail communication link, and an advertisement download function that downloads advertisements distributed by the advertisement distribution server system via the advertisement download communication link.
  • the e-mail service provider server system and the advertisement distribution server system are separately controlled according to the present invention.
  • ASIC Application Specific Integrated Circuit
  • Fig. 1 is a high-level diagram of a computer system including a plurality of client devices connected to a plurality of independently-operated server devices via a network, which computer system is suitable for implementing various functions according to the present invention
  • Fig. 2 is a high-level diagram of a representative one of the client devices illustrated in Fig. 1;
  • Figs. 3A and 3B illustrate alternative and non-limiting placement of ads in the main navigation screen of an exemplary e-mail software application according to the present invention
  • Fig. 4A depicts state transitions when a version of the software is installed by one of a new user, an old user, and an EP4 user;
  • Fig. 4B illustrates a dialog box associated with the state flow diagram illustrated in Fig. 4A;
  • Fig. 5A illustrates an exemplary state flow diagram of a process by which the Ad user becomes a registered Ad user while Figs. 5B through 5G illustrate several dialog boxes associated with Fig. 5A;
  • Fig. 6A illustrates an exemplary state flow diagram of a process by which a Free user can become a registered Free user while Fig. 6B illustrates an additional dialog box associated with Fig. 6A;
  • Fig. 7A illustrates an exemplary state flow diagram of a process by which all users are reminded to update the software according to the present invention while Fig. 7B depicts an exemplary dialog box corresponding to an Update Nag;
  • Fig. 8 illustrates an exemplary state flow diagram of a process by which a Box user can become a Paid user
  • Fig. 9 illustrates an exemplary state flow diagram of a process by which the Paid User becomes an Unpaid user
  • Fig. 10 illustrates an exemplary Nag Window display timeline for MacOS versions of the Eudora e-mail software according to an exemplary embodiment of the present invention
  • Fig. 11 illustrates a Nag Schedule employed by the software according to the present invention
  • Fig. 12 A is a simulated screen capture of a link history window employed in an exemplary software embodiment of the present invention while Fig. 12B is a dialog box reminding the user that the e-mail client according to the present invention is off-line;
  • Fig. 13A illustrates the assumptions used in determining the impact of ad transmission on e-mail program operations while Fig. 13B is a table listing the bandwidth requirements in terms of subscriber base versus the number of new ads to be downloaded each day;
  • Fig. 14 is a state flow diagram of an exemplary ad fetch process according to the present invention.
  • Figs. 15A - 15H collectively illustrate an algorithm controlling ad scheduling in an exemplary embodiment according to the present invention
  • Figs- 16A and 16B illustrate parameter variations in alternative modes of ad display possible in an exemplary embodiment according to the present invention
  • Figs. 17A through 17C illustrate additional dialog boxes which advantageously can be generated by the e-mail client software according to one aspect of the present invention
  • Fig. 18A illustrates an exemplary dialog box associated with auditing the operation of the Adware software according to the present invention while Figs. 18B through 18E list useful parameters for auditing the software's performance
  • Fig. 19 is a table summarizing the features of a plurality of web pages that advantageously can be employed in conjunction with an exemplary e-mail system according to one aspect of the present invention
  • Fig. 20 is a class diagram illustrating the mapping of XML code to objects and the task flow when another exemplary embodiment according to the present invention is operating in accordance with doPost methodology;
  • Figs. 21A and 21B collectively constitute a pseudo code listing which can be employed by the server 302 in Fig. 1 in generating a PlayList in accordance with the present invention
  • Fig. 22 is another class diagram illustrating handling of requests and writes between a server and at least one of the client computers depicted in Fig. 1;
  • Fig. 23 illustrates database accesses in accordance with another aspect of the present invention.
  • Fig. 1 illustrates an exemplary system configuration 10 which is suitable for carrying out the functions according to representative embodiments of the present invention.
  • the representative embodiment will be generally described with respect to an electronic mail (e-mail) system where a number of users can create, send, receive and read e-mail messages, the present invention is not so limited.
  • the present invention is equally applicable to a personal digital assistant (PDA) incorporating specialized software for receiving stock quotations via a wireless network.
  • PDA personal digital assistant
  • the principles of the present invention should not be regarded as limited solely to e-mail systems; the principles of the present invention apply to on-line services where a provider, e.g., a software provider, desires to make its software available to users using a variety of payment options for a core set of software functions.
  • a provider e.g., a software provider
  • the system 10 includes a plurality of client computers 100a, 100b, ..., lOOn, where n denotes any positive integer.
  • each of the client computers generally denoted 100 can be either a workstation or a personal computer executing a client program according to the present invention.
  • the client computers 100a, 100b, ..., lOOn advantageously can be connected to a plurality of servers 301 - 304, which servers will be described in greater detail below, via a network 200, e.g., the Internet.
  • the network 200 can be one of a local area network (LAN), a wide area network (WAN), an Intranet, or a wireless network, or some combination thereof.
  • LAN local area network
  • WAN wide area network
  • Intranet or a wireless network, or some combination thereof.
  • Fig. 2 illustrates in further detail the hardware configuration of an exemplary one of the client computers 100a, 100b, ..., lOOn illustrated in Fig. 1.
  • the client computer 100a includes a central processing unit 209 for executing computer programs (including the client program according to one exemplary embodiment of the present invention) and managing and controlling the operation of the client computer 100a.
  • a storage device 205 such as a floppy disk drive, is coupled to the central processing unit 209 for, e.g., reading and writing data and computer programs to and from removable storage media such as floppy disks.
  • Storage device 206 coupled to the central processing unit 209, also provides a mechanism for storing computer programs and data.
  • Storage device 206 is preferably a hard disk having a high storage capacity.
  • a dynamic memory device 207 such as a RAM, is also coupled to the central processing unit 209. It will be noted that storage devices 205 and 206, as well as dynamic memory device 207, are non-limiting examples of a memory, which term was defined previously.
  • the client computer 100a includes typical input/output devices, such as, for example, a keyboard 203, a mouse 204, a monitor 208, and a communications device 201. It will be appreciated that the communications device advantageously can be a modem, an ethernet interface card, etc.
  • each of the client computers 100a, 100b, ..., lOOn can selectively communicate with any of the servers, e.g., servers 301 - 304, via the network 200.
  • each of the servers performs a specialized function.
  • server 301 performs a registration function, i.e., accepts registration information from each client computer (as discussed in greater detail below), server 302 provides PlayLists to the client computers 100a, 100b, ..., lOOn, server 303 provides the advertisements designated in the PlayLists, and server 304 acts as a conventional e-mail system server system, i.e., provides both the incoming e-mail server and the outgoing e-mail server.
  • server 301 and 302 need actually be under the direct control of the software provider, e.g., QUALCOMM INCORPORATED in the preferred embodiment, although server 303 advantageously may be under the control of the software provider as well.
  • the reference to software should not be construed as limited to disk based software; the term "software” should be broadly interpreted as instructions carried out by a processor, whether these instructions are read from a dynamic memory or stored as firmware in an read only memory (ROM) or other variants of such a device.
  • the "software” advantageously can be provided as a single binary (per client device) file containing the software, e.g., the Eudora software, which can be employed by all users. This binary file will operate in one of three major modes of operation: Payware; Freeware; and Adware. In the Payware mode of operation, the user must pay the software provider to use the software.
  • Freeware is free for all to use, but has fewer features than either Payware or Adware.
  • Payware users will prove their payment by a registration code that the software provider will provide to them at time of payment. This code will be self-validating, and contain enough data to identify what version(s) the user is entitled to operate. It should be noted that users of the Payware version of Eudora will be entitled to all versions of Eudora that are produced during the calendar year following their payment.
  • the software preferably polls a predetermined site, e.g., a site maintained by QUALCOMM INCORPORATED, on a periodic basis in order to determine if an update for the software is available; if an update is available, the software advantageously can present the user with a small web page of options for obtaining the software update, as discussed in greater detail below.
  • a predetermined site e.g., a site maintained by QUALCOMM INCORPORATED
  • Adware has all the features of Payware, but does not require payment from the user. What Adware does require is that the user display and view ads, which the user will download from the software provider's site and/or one or more sites designated by the software provider. It will also be noted that the initial state of the software is Adware.
  • each client computer downloads ads from the ad server 303 unobtrusively and without drawing significant bandwidth, as discussed in greater detail below.
  • the ads advantageously can be displayed in a manner that doesn't significantly detract from the use of the software, e.g., Eudora.
  • Figs. 3A and 3B illustrate advertisements integrated into the main screen of the exemplary Eudora e-mail software.
  • the "software” advantageously can be provided as a single binary file containing the software, e.g., the Eudora software, which can be installed (if required) and employed by all users.
  • This binary file will operate in one of three major modes of operation: Payware; Freeware; and Adware.
  • Fig. 4 depicts state transitions when a version of the software is installed by one of a new user, an old user, and an EP4 user.
  • the software provider doesn't give the user the options to pay for the full feature set or to accept the software with a reduced feature set in the intro dialog. While the software provider will explain those options, e.g., via a dialog box similar to that illustrated in Fig. 4B, as well as the fact that the user can obtain these alternative versions of the software feature set by going through the Help menu, the software defaults to the Adware version.
  • the Code Generator referred to in Fig. 4A advantageously is instantiated by the installer module of the binary file, not in the Eudora e-mail program itself. If the user is using the software's 4.x -> 4.3 update function, the software searches for a copy of EP4 and, on finding a copy of the software, the Code Generator permits the user to generate a RegCode file. If the user is running the installer out of the box, the installer permits RegCode generation without looking for a copy of EP4 first.
  • the RegCode file so generated is special in that it contains a line saying "Eudora-Needs-Registration: YES.”
  • the Eudora e-mail software will notice this line of text, put the user into the unregistered state, and then nag the user to register the software. Once the user registers, the same registration code will be re-transmitted to the user, and the Eudora e-mail software will silently accept it (since it will be the same as the current code), and turn off the need to register flag in the e-mail software.
  • Fig. 5A illustrates a state flow diagram of the process by which the Adware user becomes a registered Adware user.
  • the registration process necessitates interaction between client computer 100a and a registration server 301, which are connected to one another via network 200.
  • the Adware user indicated in Fig. 4 A registers with the software provider through several alternative mechanisms. For example, the Ad user may wish to register, and simply activates the "HELP" pulldown menu, which is available from the tool bar illustrated at the top of Fig. 3A, and selects the Payment & Registration option, as depicted in Fig. 5B.
  • the Adware user may receive a Nag box, i.e., a Nag dialog box, generated by the software at a predetermined time, as discussed more fully below.
  • the Ad user may receive a registration via e-mail, i.e., a registration code generated by server 301 and transmitted to the client computer 100a by way of e-mail server 304.
  • the Payment & Registration Window provides several selection buttons, which allow the Ad user to register the Adware, pay for the software, list all versions available to the user, customize or modify the ad stream by providing demographic information, enter a received registration code, and downgrade to the reduced feature set offered to Freeware users.
  • Figs. 5C - 5G It should be mentioned that the user can enter a registration code to become one of a registered Adware user, a registered Freeware user, and a registered Payware user.
  • Fig. 5F It will be appreciated that the software operates in accordance with the same state flow diagram for Registered Adware Users, except that the Registered Adware User is not subjected to the Registration Nag.
  • the software provider advantageously can use a registration scheme with a self-validating registration code, so that databases do not need to be used to validate registrations.
  • the algorithm for verification is intended to satisfy several conflicting constraints, i.e., it needs to be secure, yet easy to implement and not unduly burdensome for the user.
  • the Eudora e-mail software checks its registration code at startup for validity. If the registration code is invalid, the user should be considered unregistered. If the user is a paid mode user, this will involve a switch to Sponsored mode, about which the user should be warned using a dialog box (not shown). This alert will be followed by an opportunity to reenter the code.
  • the necessary inputs to generate the registration code are as follows:
  • the software provider takes the inputs listed above, checksums them, mixes the inputs (including the RegName) and the checksum together in according to any one of a variety of algorithms, and encodes the result as a 16-bit number string. It will also be appreciated that the encoding and bit-mixing can be reversed and then, together with the RegName, the checksum can be used to verify the validity of the registration code.
  • the software provider will store registration codes separately for Freeware (Eudora Light), Adware (Sponsored) and Payware (Eudora Pro) software modes. Acceptance of a registrations code for one mode of operation does not imply that the registration codes for the other modes should be destroyed.
  • the values should be copied into the preferences register or associated lookup table of the e-mail client, if these preferences are found and valid. It should also be mentioned that the software provider will allow a special- case MIME part to be mailed to the Eudora e-mail client. The user receiving this part will automatically be asked to verify and enter the information. He/she can also execute the attachment again later. However, he/she cannot forward the attachment to anyone else using the Eudora e-mail client, because a special Content-Type attribute ("regCode") is required to activate the part, and the Eudora e-mail client can't send those.
  • RegCode Content-Type attribute
  • the format of the MIME part (and the RegCode file) is that of a text file containing RFC822-header-style fields. It has a registered MIME type of application/ vnd.eudora. data.
  • the fields included in the part are:
  • Eudora-File-Type field must be present.
  • the other fields listed above may or may not be present.
  • the registration code is self-validating, since one part is a function of the other.
  • there is another sense of “validation” to be considered i.e., whether or not the registration code is "valid” for use with a particular version of Eudora. This is accomplished by comparing the ExpMonth in the registration code with a BuildMonth field the software provider will put into the application (in a place that cannot be overwritten by plug-ins, settings, etc.). If the ExpMonth and the BuildMonth correspond, the registration is deemed valid by the e- mail client.
  • Fig. 6A illustrates a state flow diagram of the process by which a Freeware user can become a Registered Free User. It will be appreciated that the state flow diagrams of Figs. 5A and 6A are similar in many respects. However, the state flow diagram of Fig. 6A allows for an additional Nag dialog box, i.e., the so-called Feature
  • Fig. 8 illustrates an exemplary state flow diagram of the process by which a Box user can become a Paid user, i.e., a Payware user.
  • a Box user can become a Paid user, i.e., a Payware user.
  • the only Nag the software provider presents specifically to the Box users is the Registration Nag.
  • the Box user is converted into a normal Paid user.
  • the payment date for the Box user is set to a specific value by the software provider, so that the software provider can control what versions of the software the Box user will receive, e.g., the period of time for which the user will receive updates from the software provider for free going forward.
  • Nag Windows are modeless windows. The user can close them using close boxes, or dismiss them by taking one of their action items, or simply leave them open and let them drift wherever they will in the window list. Due to implementation constraints, Windows Nag Windows will be slightly different in behavior than MacOS Nag Windows, which are discussed below. The Nag Windows are floating windows; the software provider expects that the user will probably dismiss the Nag Window in fairly short order. It will be appreciated that the Nag Windows will not, however, stop background tasks from executing.
  • Nag Windows will be opened on top of all other windows, and no automatically opened windows, including, for example "Tip of the Day” and other dialog boxes and excluding other Nag Windows, will ever be placed above them until the user has manually brought another, non-Nag Window above them.
  • MDI Multiple Document Interface
  • MDI interface is a standard Windows interface used by many popular Windows applications and utilities, such as the Windows Program Manager, and the Windows File Manager; the MDI interface is also part of the Common User Access (CUA) standard set by IBM.
  • CUA Common User Access
  • Fig. 10 illustrates a flow chart for Nag Window display in MacOS versions of the Eudora e-mail software according to an exemplary embodiment of the present invention.
  • the software presents just the In mailbox, as denoted by the symbol (1), i.e., time (1).
  • the Eudora e-mail software determines that it needs to nag the user, and places the Nag atop the mailbox, as denoted by the symbol (2).
  • Some mail arrives in the "Fresh Meat" mailbox. Ordinarily, this would open on top.
  • the "Fresh Meat” instead opens below the Nag, as denoted by symbol (3).
  • the user manually brings Fresh Meat to the front, as denoted by symbol (4).
  • the Nag is no longer new, and More Meat can be opened on top in the normal manner, as denoted by the symbol (5).
  • Nag Windows in any of the Windows environments is, in general, considerably simpler. Nag Windows simply float outside the MDI box, above other floating windows, until the user closes them.
  • the exception to this rule is the Update Nag, which acts like a MacOS Nag Window, if the user assumes that the entire Macintosh diagram takes place inside an MDI box. Note particularly that this indicates that the Update Nag may be maximized in the Windows environment.
  • each schedule is a set of numbers representing (save for the last) the number of days since a given date (the Nag base).
  • the software provider further must keep track of the last time the user was nagged (the last lag). Note that both the Nag base and last Nag should be tracked separately for each type of Nag; the software provider must not mix values for Registration Nags and Update Nags, for example.
  • the last number of the Nag Schedule is a repeat interval. Once the other Nags are all exhausted, the user is nagged each time this last number of days passes.
  • a Nag Schedule is to view the schedule as a timeline, as illustrated in Fig. 11. This particular timeline is for a Nag Schedule of [0,4,9,12,3]. Note that the Nags which will occur at the 15 and 18 day points are there because of the final number, the repeat interval (of 3 days). Thus, in Fig. 11, the user is due to be nagged if there is a Nag day greater than the last Nag and less than or equal to the current day. If more than one Nag day has passed, the user is still nagged only once.
  • the Eudora e-mail software advantageously includes a software subroutine which determines whether any Nags are due at application startup and at the completion of each mail check. With respect to the latter case, the software checks the modification date on the Update Page once per week during a mail check. If the Update Page has been modified during the past week, the software provider will download update information during the mail check, and nag the user to update his/her software, e.g., the Eudora e-mail software. See Fig. 7B. Finally, it will be noted that when a user's state changes so that an open Nag is no longer relevant, that Nag is closed and no longer displayed.
  • the major client issues involving ads are how the software displays the ads, when the software displays the ads, how the software obtains the ads, how the software provider obtains and transmits demographic information, and how the software provider verifies that ads are actually being displayed.
  • the main window of the Eudora e-mail software shows a squarish ad and three ad buttons in opposite corners of the main window.
  • this particular squarish ad isl44 pixels high by 128 pixels wide; the software will accommodate ads as large as 144 pixels by 144 pixels.
  • the area of the window usable by the mailboxes has been reduced approximately 38%; however, it will also be appreciated that the content area has been left untouched.
  • Fig. 3B illustrates an alternative main window where a small graphic or placard is employed, e.g., in the lower right corner, to indicate that the main window is sponsored.
  • the ad will consist of an image file, e.g., a GIF file, a PNG file, a JPEG file, etc., of not more than 15K, and not more thanl44 pixels tall by 144 pixels wide.
  • this image file will employ the Web Safe Color Palette.
  • This palette which is sometimes to as the Browser-Safe Palette, contains only 216 colors out of a possible 256 colors definable by 8-bits. The remaining 40 colors vary on Macs and PCs. By eliminating the 40 variable colors, this palette is optimized for cross-platform use.
  • the image file advantageously will be associated with a single uniform resource name (URN) to which users who click on the ad will be directed.
  • URN uniform resource name
  • Each advertiser will also specify the desired scheduling information for the ad, as discussed in greater detail below.
  • the advertiser may wrap the ad in HTML.
  • the software provider advantageously can also employ HTML-wrapped ads, since this will allow the software provider to include ad parameters as META tags in the HTML page, specify the link address, etc.
  • Toolbar icons will be requested in GIF format as well, but will actually be delivered to the client in a composite format and transformed into standard icons.
  • placards for sponsors of the Freeware version illustrated in Fig. 3B should be no more than 31 pixels tall, and on the order of 88 pixels wide, though the precise width can be varied at runtime.
  • the software provider when the user clicks on an ad, the software provider will normally take the user to the software provider's click-through counter and then redirect the user's browser to the link listed with the ad.
  • the click-through counter advantageously can be one of the software provider's servers, e.g., one of servers 302 and 303. It will be appreciated that this will require that the software provider will compose a URN which includes a server name, some tracking information, and the ultimate destination URN, and then the server will redirect the user's browser to the destination URN.
  • the software could initiate an online session.
  • the software could simply flag the link using the link history facility. See Fig. 12, which depicts a window/menu that the software maintains, similar to the history lists maintained by most browsers.
  • the software advantageously adds the link to the link history window, and flags this link so that the user knows he/she had wanted, but was unable, to visit that site during a previous e-mail session.
  • the software advantageously may be constructed to permit the user's browser respond to the click- through.
  • the software provider may permit transmission of the link to the browser for subsequent handling by the browser when it is online, i.e., the software can allow the user to tell the software provider to send the link to the user's browser the next time he/she is online.
  • the software provider will, in an exemplary and non-limiting case, mandate that the following standard for all advertisements submitted by advertisers:
  • URN A single URN of not more than 900 characters. There are suspected limits of IK on URN size. Limiting the customer's URN to 900 characters will allow the software provider to annotate the URN and still stay within the IK limit.
  • Toolbar buttons i.e., the buttons in the upper right-hand corner of Fig. 3A have the same requirement as standard ads, except for the following: ( Both 16x16 and 32x32 sizes required. These are the sizes the client supports, the software provider needs them both.
  • the spot has the same requirement as standard ads, except for the following:
  • the software performs a check to determine that the ad is both onscreen and uncovered. If the screen state does not satisfy both of these criteria, the software will either nag the user to uncover the ad or automatically re-order the windows so that the ad is uncovered. If the user persists in covering the ad for a predetermined period of time, the software will automatically devolve to freeware mode.
  • the software provider is clearly motivated to ensure that all Eudora users are actually looking at the ads. Stated another way, displaying an ad on the screen of the client computer 100a, for example, while the user is in another room does not justify the expense of the ad for the advertiser. For that reason, the software includes functions which permit measurement of the actual time that the user is in front of the computer while the ad is present.
  • the best thing the software can do to measure user attention is to monitor for user input to the client computer 100a, thus verifying the user's presence in front of the display device 208.
  • the primary user input devices to the client computer 100a are the mouse 204 and the keyboard 203
  • the e-mail client will monitor for both mouse and keyboard operation by the user when the Adware version of the Eudora e-mail client is frontmost, and periodically report this activity back to, for example, the software provider.
  • the user will be considered "present and accounted for” if the mouse moves significantly, if a mouse button states change, or if keys are pressed or released.
  • the software will consider a period before and after such an event as "face time" for the ad.
  • the software measures the period and refers to the total length of this period as kFacelnterval. There is no need to be overly precise about this value, e.g., a kFacelnterval of sixty (60) seconds, which begins with a user event, is employed in the exemplary, non-limiting case being discussed.
  • the general methodology for obtaining ads for display is to connect to a QUALCOMM INCORPORATED site during a mail check, or some other time when the software senses a live network connection, and download ads into a local cache. It will be appreciated that the act of downloading the ad can be the trigger for billing the advertiser, in order to avoid the necessity of collecting billing information from individual clients. In contrast, proprietary systems such as that provided by JUNO, upload ad display data to the designated e- mail server whenever the user accesses his/her e-mail account for any reason.
  • Fig. 13A is a table listing the assumptions used in determining the impact of ad transmission on e- mail program operations; Fig.
  • FIG. 13B is a table listing the bandwidth requirements in terms of the subscriber base versus of the number of new ads to be downloaded each day to the subscribers. The implications of these calculations are as follows. Given that the goal is for an average turnover of an ad is, for example, three days, the top line in the table illustrated in Fig. 13B would be the one used by the software provider. The worst-case, i.e., maximum bandwidth, scenario would be to turn over, for example, 25 ads a day. These values are highlighted in the table of Fig. 13B.
  • the software provider advantageously employs a PlayList.
  • the PlayList is in its essence a list of URNs from which to fetch the actual ads as well as a set of attribute-value pairs, on a per-ad basis. The exact format of the PlayList is discussed in greater detail shortly. PlayLists will specify the complete set of ads the client should have, along with parameters for displaying those ads, as discussed immediately below. It should be noted that ads may appear in a PlayList but not be scheduled for display for a long time (or even at all). The presence of such ads in the PlayList will cause the client to retrieve the ads for storage on the client for future display.
  • the general requirements for the PlayList are as follows:
  • the request for a PlayList will contain information to help the PlayList server determine what ads a copy of Eudora is required to fetch.
  • the PlayList can also contain parameters for Eudora as a whole, including the ability to modify how often New PlayLists are checked for. 3) PlayLists are allowed to specify whether or not they should replace all older PlayLists or merely be merged with them. It should be mentioned that the merge function will allow a more web-like advertising model, e.g., a model employing a rotating ad pool, should the software provider choose to employ such a model.
  • Fig. 14 is a state flow diagram of an exemplary ad fetch process according to the present invention, and Fig. 1.
  • the client software running on client computer 100a identifies itself to the PlayList server 302, e.g., ads.eudora.com.
  • the client software e.g., the Eudora software
  • the ads.eudora.com server responds with either an indication that the current PlayList is still valid, uses an Hyper Text Transfer Protocol (HTTP) redirect to send the client to a different PlayList server, e.g., another PlayList server 302', or responds directly with the New PlayList from PlayList server 302. See Fig. 14.
  • HTTP Hyper Text Transfer Protocol
  • the client software compares the New PlayList with its current set of ads, and begins fetching ads not resident in the e- mail client's ad cache from one of more ad servers, e.g., the ad server 303 illustrated in Fig. 1, according to URNs included in the PlayList.
  • the client software also deletes ads not currently appearing in the PlayList.
  • the client software performs a check for a New PlayList every three days. It should be mentioned that the 3 day interval between PlayList checks is arbitrary and applicable only to the exemplary preferred embodiments of the present invention being discussed. It should also be mentioned that the ads preferably will be fetched as needed to fill the PlayList, possibly over many mail checks.
  • the ad fetch process will be limited to one minute per mail check, irrespective of the tasking of either the e-mail client software or the client computer 100a.
  • the client software will disconnect from the ad server 303. This will often mean that the e-mail client software has not filled the PlayList when the ad fetch operation is terminated. This is acceptable.
  • the software will utilize the available ads while the remaining ads are being downloaded.
  • the software provider advantageously can provide for multiple servers on a peer with ads.eudora.com server 303. It will be appreciated that these servers will provide extra ads for some Eudora user communities, e.g., all of the users at a company serviced by one ISP, etc. Stated another way, an ISP which provides additional services such as local and long distance telephone access may wish to cross promote these services to its own customer base. Thus, the ISP advantageously can contract for such localized promotion.
  • the PlayLists transmitted to the ISP's branded Adware e-mail clients would be linked to an ad server 303" maintained by the ISP in that instance.
  • the PlayLists provide certain global inputs to the ad scheduling algorithm, including the parameters listed in the table immediately following.
  • the software also keeps track of and reports these values to the software provider for every ad:
  • the software provider implements three major states of the ad scheduler, the regularState, the runoutState, and the rerunState.
  • the regularState the e-mail client software advantageously is showing regular ads and accounting for them. It will be appreciated that this is what actually generates charges for the bulk of the ads displayed on the e-mail client.
  • the runoutState is selected when the e-mail client software has shown enough regular ads to fill the assigned faceTimeQuota, and the ad cache includes one or more runout ads available for showing.
  • the e-mail client software has exhausted both its regular ad quota and the runout ads, i.e., the e-mail client software is now reshowing the regular ads, but the software provider is not charging for them.
  • the software provider advantageously can provide a custom installer to various ISPs, book publishers, etc., that will label or brand the copies of Eudora that they have distributed.
  • the software provider will then credit these distributors with a percentage of the ad revenue generated by the clients they distribute. It will be appreciated that these credits may be offset by cross promotional activities associated with each branded version of the Adware e-mail client, for the reasons previously discussed.
  • the PlayList is a way to control the fetching and display of ads in software, e.g., in the Eudora e-mail client.
  • the primary benefits associated with the PlayList are the separation of ad parameters from ad images, insulation of the Eudora client from intimate knowledge of ad image servers, and centralized server intelligence in ad distribution, without requiring user registration or centralized user databases.
  • PlayLists are extremely malleable objects.
  • the PlayLists can exert varying degrees of control over how the Eudora client behaves, from specifying the exact set of ads Eudora runs to simply transmitting abstract URNs which will choose their own ads.
  • PlayLists are used to their fullest advantage, they will give the software provider a powerful tool in controlling ad display in software such as Eudora; if PlayLists are later deemed irrelevant, the PlayLists cost the software provider one extra, brief network connection per day.
  • the client computer 100a connects to a PlayList server 302 (which may redirect to a different server 302') via a network 200. Then, the PlayList server 302 returns a PlayList to the client computer 100a via the network 200. Subsequently, the e-mail client software on the client computer fetches the ads specified in the PlayList.
  • the PlayList Request which is sent by the Eudora client to the PlayList server 302 in order to initiate the ad fetch process, is not a simple burst of binary code.
  • the PlayList Request is a block of extensible markup language (XML) code employed to provide the server 302 with sufficient information to build or select the proper New PlayList for the user.
  • the information in the PlayList Request is shown in the following table.
  • PlayList server 302 preferably ignores requests that fail checksum verification.
  • the server 302 replies with a PlayList Response.
  • the PlayList Response is divided into two major sections; the Clientlnfo section, which updates general client behavior regarding ads, i.e., speed with which the ads turn over, and the New PlayList itself, which describes the ads the client should fetch.
  • the PlayList Server e.g., server 302
  • every PlayList Response is checksummed with MD5, just as the PlayList Request is.
  • the MD5 digest is encoded in hexadecimal and put in a "CheckSum" header in the PlayList Response.
  • the e-mail clients ignore PlayLists that fail checksum verification.
  • the e-mail client sometimes becomes, for lack of a better term, befuddled due to old client bugs, server bugs, etc.
  • the bad data inherited by even an updated client is too garbled for the system to function properly.
  • the client could be programmed to detect this condition, it is preferable to leave the task, i.e., error detection, to the server, which can be changed more easily.
  • the PlayList server 302 responds with just a single command: reset. No Clientlnfo should follow, no PlayList should follow, just the reset command.
  • the client On receiving the reset command, the client discards its accumulated ad databases and records, including PlayLists, faceTime history, ad history, ad caches, etc. Everything is reset to the pristine condition that the e-mail client software had before the Adware software was run for the very first time. It should be mentioned that Link History is exempted from the reset command, both for reasons of practicality and because it is so user-visible. The only other item of ad data that reset does not affect is the ad failure counter, which should be retained across a reset. The client should then recognize that it has no PlayList, and make another request to the PlayList Server for the needed PlayList.
  • the Clientlnfo section updates various client parameters. The parameters are listed immediately below.
  • the Clientlnfo section is a powerful feature of PlayLists. It allows the software provider to control the application in a global way, including segueing smoothly from one ad model to another. It will be appreciated that if this were the only benefit the software provider derived from PlayLists, it alone would make implementation of PlayLists worthwhile.
  • the PlayList Response is divided into two major sections; the Clientlnfo section, which updates general client behaviors, and the New PlayList itself, which describes the ads the client should fetch.
  • the New PlayList itself has one global value, PlayListlD.
  • This id is the id value that the client returns to the PlayList server the next time the client computer 100a connects to the PlayList server 302. It will be appreciated that this PlayListlD advantageously can be included in the PlayList Request, or can be separately uploaded to the PlayList server in a myriad of forms, e.g., as a cookie.
  • the remainder of the PlayList is a list of ads.
  • the parameters include the scheduling parameters, which are described in detail above, and ad information, which includes the information listed immediately below.
  • PlayList permits the client software to pull ads from many different servers.
  • the software provider could, for example, run its own servers in parallel with those belonging to DoubleClick, and take ads from each server, or some of the servers, based on the PlayList.
  • checksum attribute on the src tag If present, its value is a hexadecimal-encoded MD5 digest of the ad data. The client may check this checksum against the ad data.
  • IsButton Is this "ad” a toolbar button? If so, it will be scheduled separately from the main ads.
  • the only scheduling parameters that are meaningful for toolbar buttons are startDT and endDT.
  • IsSponsor Is this "ad” a sponsor placard? If so, it will be scheduled separately from the main ads.
  • URN The Uniform Resource Name of the server (e.g., a Web site address) to which the user is directed when he/she clicks on the ad.
  • URN Uniform Resource Name
  • URN indicates a generic set of all names /addresses that are short strings that refer to resources available via the Internet.
  • URN encompasses both a Uniform Resource Locator (URL), which is subset of URN schemes that have explicit instructions on how to access a particular resource on the Internet, and a Uniform Resource Identifier (URI), which is another subset of URNs. It will be appreciated that the URL and URI subsets may overlap.
  • URL Uniform Resource Locator
  • URI Uniform Resource Identifier
  • PlayLists permit the software provider to switch between ad models midstream, should the software provider decide to do so.
  • several ad models will be discussed with respect to Figs. 16A and 16B in an effort to illustrate how PlayLists would be used for each ad model. It will be appreciated that this will demonstrate the essential neutrality of the PlayList concept to the ad model.
  • Fig. 16A illustrates the ad model associated with persistent ads while Fig. 16B depicts the parameters associated with a short-lived ad model.
  • One thing to notice here is how few of the parameters from any of the sections appear in the chart. It will be appreciated that varying as few as five parameters advantageously causes the Adware to shift between these two distinct ad modes. That's because they are largely not relevant to the choice of ad model.
  • the parameters will either be used or not, irrespective of the ad model.
  • the software provider can implement blank space after an ad in any model, and the software provider can eschew blank space after an ad in any model. Most of the parameters fall into this it-just-doesn't- matter category.
  • the software provider accepts many ads; either from many advertisers or only a few advertisers. Ads do not persist for many days; they're used up and discarded at a relatively rapid rate.
  • PlayLists will be used additively. Each time the client runs low on ads, it will ask for another PlayList which will describe a few more ads to mix with the clients' existing ads. When ads exceed their allotted time, the ads are discarded.
  • the PlayList server really only serves to transmit parameters for ads. However, that is acceptable, since the parameters have to be transmitted somehow, after all.
  • the software provider wants to mix ad models, e.g., desires to provide a mix of long-running ads and short-lived ads. How this situation is handled depends on the stoichiometry. If the cache is or will be filled with mostly persistent ads and only a few short-lived ones, the software provider can merely increase the reqlnterval and use PlayLists as in the Persistent Ad Model. In other words, the software provider merely picks a few random ads to go on each PlayList, and picks a few more random ads to go on the next PlayList, which the client will fetch the next day. If, on the other hand, the cache will contain mostly short-lived ads and only a few persistent ads, the computer system 10 will use multiple PlayLists. One PlayList will list the persistent ads, as discussed above; the remaining facetime will be filled using PlayLists of short-lived ads.
  • PlayLists can be used to support widely differing ad models.
  • the reason PlayLists can do this is that they're really only an extra level of server control and in between Eudora and its ads.
  • the software provider will distinguish between these two situations by asking a simple question, i.e., is the user sending or receiving mail? If the answer is yes, the software provider will assume that the blocking of ads is something the software provider needs to address. The way the software provider addresses this issue is with an escalating series of Ad Failure Nags. These will continue for two weeks or until the software receives ads. For every two days the software does receive ads, the software will decrement the Ad Failure Nag timer by one day. If the timer runs out, the software will display an apology to the user, revert to the Freeware version, and mark the user's software as owned by a Deadbeat User.
  • Deadbeat Users will only be allowed to return to Adware if the ad server can be connected to at the time the user attempts to return to Adware. See Figs. 17A -17C. It should be noted that if the software provider should ever decide to retire Eudora and wish to let people use it without ads, the software provider can simply publish a permanent registration code.
  • the e-mail client advantageously includes several more sophisticated functions for determining that an ad failure condition requires the employment of the Ad Failure Nag discussed above.
  • the client device can identify an ad download failure condition when a corresponding ad download function has failed to downloads during a predetermined period of time.
  • the e-mail client device can identify an ad display failure condition when a corresponding ad display function has failed to display ads for a predetermined time period, e.g., the time(s) specified in the New PlayList received from the PlayList server and /or the current PlayList(s) stored for use by the e-mail client device. Either condition invokes the Ad Failure Nag function discussed above.
  • An exemplary audit scheme contains the following features: ( Keep a rotating log of ad displays. This log will be rolled over once per week. The log will record ad-related events—when an ad was displayed, when it was removed, and when it was clicked on—in addition to other events, like cumulative face time in Eudora, cumulative run time, etc. ( At random, ask the user for permission to transmit the log.
  • the log will be formatted in ASCII, placed in an outgoing message, and queued. The user will be given the opportunity to inspect and, if he/she desires, cancel the log collection. See Fig. 18A.
  • Figs. 5A, 6A, 7A, 8 and 9 referred to a plurality of web pages, i.e., HTML pages that can be accessed and retrieved from one of the software provider's servers, e.g., registration server 301. See Fig. 1.
  • the software provider's servers e.g., registration server 301.
  • Fig. 1 The general purposes of these pages and the URNs which the software uses to access these pages will now be described in greater detail below.
  • the client it will be appreciated that it will be helpful for the client to give the server information to help the server direct the user to the proper location or to assist the user by prefilling certain items on Web page based forms. That is the function of the query part of the URNs.
  • the elements that might go in query parts are listed below. It will be noted that the query parts are divided into two groups. The first group includes items which are considered personal, and great care should be taken to transmit them only when appropriate; the second group includes items which are not considered to be privacy-sensitive.
  • the "action" value determines what function the user wishes to perform.
  • the software provider then appends various other query parts to the URN, suitably %-escaped, i.e., separated by a percentage (%) or ampersand (&) symbol (for example), according to the chart illustrated in Fig. 19.
  • %-escaped i.e., separated by a percentage (%) or ampersand (&) symbol (for example)
  • & ampersand
  • the PLS is a server side program which services HTTP requests and returns HTTP responses. It will be appreciated that each request launches a different thread, and that the data format of communications between the client and the PLS is XML-encoded in the exemplary embodiment.
  • the PLS advantageously can be instantiated using the following Java ® packages.
  • XP XP is an XML 1.0 parser written in The PLS uses the XP Java. The parser checks a given XML parser for: document for well-formedness and 1. parsing the client validity. Additional information is request to ensure that available from it is valid. http://www.jclark.com/xml/xp/. 2. parsing the PlayList Response to ensure that it is valid
  • SAX SAX Simple API for XML
  • the PLS uses the SAX standard interface for event-based interface both in the XML parsing, the parser reads the XML request and the XML document line by line and XML response. In the initiates events that contain request, the PLS information about the line that was "looks" for specific just read. The PLS listens to particular tags to build the events of interest and extract the data request object. In the from the XML document in that way. response, the PLS Additional information is available sends events to from generate the PlayList http://www.megginson.com/SAX/ XML response.
  • JDBC JDBC Connectivity
  • the PLS parses the XML request and builds objects that represents the client update request. It will be noted that data access is performed using SAX.
  • the PLS stores the client request information in a so-called ClientUpdate table (not shown).
  • the PlayList Request can be received from a plurality of e-mail clients residing on the client computers generally denoted lOOn through any given day.
  • Servlet advantageously can employ both SQL queries and programming filtering. It will also be appreciated that these processes are synchronized in order to prevent conflicts when accessing the database.
  • Appropriate pseudo code of generating a PlayList is depicted in Figs. 21A and 21B.
  • the first block of pseudo code in Fig. 21A generates an ad list. It will be appreciated that the ad list generated by the first block of pseudo code holds all the image ads that are active and can be delivered within a predetermined time frame.
  • the second block of pseudo code listed in Fig. 21A calculates the time needed to deliver the ads.
  • the third block of pseudo code which is illustrated in Fig.
  • the generated PlayList determines additional ads which can be used to fill the available facetime. In other words, if the e-mail client software has remaining time to fill, the generated PlayList will automatically fill the available time with runout ads, i.e., find a run out ad which is not in the ads history and which also fits into the Goal show time left.
  • the package XP Writer provides a set of methods for creating specific kinds of nodes in the output XML code, i.e., file.
  • the following is a short list of methods PLS employs in generating the XML output. ( Starts an element - start-tag
  • the PLS stores the information generated in response to a request in two tables, a PlayList general response table, which holds the client info section and PlayList general information, and a PlayList specific response, which holds the entry section. It will be appreciated that the PLS advantageously can use the prepared statement API to optimize performance in response to a query.
  • FIG. 20 that figure illustrates a class diagram which advantageously describes the representation and rendering of the PlayList, as will as the PlayList Response. It will be appreciated that this class diagram includes repeated XML Write method calls; these method calls are employed by PLS to generate the XML tags associated with the PlayList.
  • Fig. 22 that figure illustrates the major PlayList Servlet Classes, which collectively define the PlayList Servlet. More specifically, the PlayList Request class handles the request and subsequently maps the XML request to the ClientUpdate object while the PlayListResponse class handles the response and writes the clientUpdateResponse back to the client. In addition, the PlayListsGenerate class generates the PlayLists while the DBManager class handles the Data Base connection pool. Additional details are readily apparent from Fig. 22. It will be appreciated from Fig. 23 that all of the storage operations employing the database advantageously can be threaded. As mentioned above, all actions with respect to the database are performed the MM.MySQL package.
  • one exemplary embodiment of the present invention encompasses software for converting a general purpose computer into a specialized PlayList server for supplying a PlayList Response to a client device for exchanging information with an information server system over a communications network and storing ads. More specifically, the software instantiates a PlayList Response generation function for generating a PlayList Response identifying a plurality of selected ads to be presented by the client device, and a first communications function that completes a PlayList Response send communication link with the client device via the communications network over which the PlayList Response is transmitted to the client device, wherein the information server system and the PlayList server are independently controlled.
  • the PlayList directs the presentation, e.g., display, of ads on the client device, e.g., an e-mail client
  • the ads advantageously may be delivered to or retrieved by the client device in any number of ways in this preferred embodiment.
  • the PlayList Request preferably includes ad identifiers and ad presentation instructions; corresponding uniform resource names (URNs) can be included but may be omitted.
  • the present invention encompasses software for converting a general purpose computer into a specialized PlayList server for supplying a PlayList Response to a client device exchanging information with an information server system and receiving ads from an ad server over a communications network.
  • the software advantageously includes a PlayList Response generation function for generating a PlayList Response identifying a plurality of selected ads to be presented by the client device, and a first communications function that effects a PlayList Response send communication link with the client device via the communications network over which the PlayList Response is transmitted to the client device.
  • the information server system and the PlayList server are independently controlled.
  • this exemplary and non-limiting embodiment of the present invention contemplates a specific communications channel between the client device and a dedicated ad server (system) for delivery of ads defined by the PlayList.
  • the PlayList Request employed by this exemplary embodiment includes both information dictating presentation of the ads and /or operation of the client device with respect to ad presentation functions, and the name and URN for ads included in a New PlayList.
  • the present invention provides software for converting a general purpose computer into a specialized PlayList server for supplying a PlayList Response to a client device exchanging information with an information server system and receiving ads from an ad server over a communications network, including:
  • PlayList Response generation function for generating a PlayList Response identifying a plurality of selected ads to be presented by the client device
  • PlayList Request parsing function for extracting selected information from the PlayList Request
  • PlayList generation function receiving an output of the database driver function for generating a PlayList for inclusion in the PlayList Response
  • the PlayList Request parsing function includes an extensible markup language (XML) parsing function for verifying the wellformedness of the PlayList Request, a PlayList analysis function receiving the PlayList Request after verification by the XML parsing function for generating an object, and a database driver function receiving the object for building a query from the object and applying the query to a PlayList server database.
  • XML extensible markup language
  • PlayList Response generation function is initiated by receipt of a PlayList Request, which, in an exemplary case, includes the name of the current PlayList(s) employed by the client device providing the PlayList Request.
  • a PlayList Request which, in an exemplary case, includes the name of the current PlayList(s) employed by the client device providing the PlayList Request.
  • the discussion of this specific aspect of the present invention, i.e., the PlayList server can best be understood from the point of view of a system including only one client device; the actual implementation of the, for example, e-mail client device contemplates the use of thousands of client devices.
  • the PlayList Request advantageously can include information regarding the currently running PlayList(s) on the client device, and user data fields that store data regarding the progress made by the client device in presenting, e.g., displaying, the ads stored by the client device.
  • An exemplary and non-limiting list of the information that can be provided to the PlayList server via the PlayList Request includes: ( a first user data field identifying a current PlayList;
  • a list of the ad identifiers corresponding to advertisements that have been displayed in the prescribed most recent time interval.
  • the PlayList Request parsing function can extract selected information from the PlayList Request and employ the selected information and other information, e.g., information provided by the entity controlling the PlayList server, in generating the PlayList Response.
  • the PlayList Request may include all or a subset of the information listed immediately above; the PlayList Request parsing function extracts information contained in at least one of the user data fields.
  • the receipt of the PlayList Request by the PlayList server initiates generation of the PlayList Response.
  • the PlayList Response generation function In response to the PlayList Request, the PlayList Response generation function generates one of an action command and the PlayList Response. With respect to the former, the PlayList Response generation function advantageously can generate the action command in response to receipt of a garbled PlayList Request. This can be generally thought of as an error code directing the client device to send a New PlayList Request. It will be appreciated that the action command can include an associated error message, which is presentable to the user by the client device. Alternatively, the action command may cause the client device to delete all of the ads received and /or stored by the client device responsive to a command issued to the PlayList server by an entity controlling the PlayList server.
  • the entity controlling the PlayList server e.g., the software provider
  • specific PlayList Requests e.g., PlayList Requests generated by a particular software version, of all PlayList Requests.
  • the PlayList Response advantageously includes both client information, information regarding how the client device, e.g., a PDA device, is to present, e.g., display, the selected ads, i.e., the ads that during the time period following receipt of the PlayList Response by the client device, and a New PlayList.
  • client information can, in an exemplary case:
  • the client information includes a minimum time period during which the client device presents the current ads before the client device presents the expired ads.
  • the client information may also establish a maximum time period during which the client device is permitted to present the expired ads.
  • the PlayList Response advantageously may include commands or selected parameters which direct the client device to either concatenate the New PlayList to the current PlayList(s) or discard the current PlayList(s) in favor of the New PlayList. The command, or the selected parameters, controlling this facet of the client device operation is executed upon receipt of the PlayList Response by the client device over the effected communications link.
  • the New PlayList included in the PlayList Response includes a name and a corresponding Uniform Resource Name (URN) for each of the selected ads.
  • URN Uniform Resource Name
  • the URN can correspond to one of a storage location of the respective named ad on an ad server or a location on the ad server redirecting the client device to a location on another storage device for the respective named ad.
  • the URN specifies a location on the ad server redirecting the client device to an ad storage location collocated on the ad server for the respective named ad.
  • the New PlayList may also include information identifying an ad type, i.e., postage stamp ad, toolbar ad, or placard ad, for each one of the respective selected ads.
  • the PlayList server instantiated by software stored on the server computer 302 advantageously responds to a PlayList Request written, i.e., coded, in extensible markup language (XML).
  • XML extensible markup language
  • the PlayList Request advantageously can have an associated document type definition (DTD).
  • the PlayList server should have the DTD available, i.e., available to the PlayList Request parsing function.
  • the DTD for each of different types of client devices, e.g., e-mail client device or PDA, is stored by the PlayList server.
  • the PlayList Request need only include a DTD tag, which identifies the particular DTD to be employed by the PlayList Request parsing function.
  • the DTD advantageously can be embedded in the PlayList Request. In either case, both the PlayList server and the client device implicitly use the same DTD.
  • the software provider should make provisions with respect to ad security. There are really two security issues to consider. One is whether or not the client is getting valid ads (call this client security), and the second is whether or not a valid client is fetching ads (call this server security). Client security is of relatively small importance. If a given person manages to trick Eudora into displaying some ads other than those transmitted by the software provider, it probably doesn't matter a great deal. This is not to say that it could not become problematic if large numbers of clients at one or more sites began doing it; however, a carefully worded license agreement should make at least large sites avoid actions which would cause this particular problem.
  • PlayLists and ads advantageously can be checksummed with MD5 (or another mechanism), and the checksums recorded in the PlayList. Then the client can checksum the PlayList and ads using the same secret seed, and compare its checksums to those in the PlayList. If it fails to get the proper ads, this will be treated as a failure to get ads at all.
  • Server-side security is potentially a much bigger problem.
  • the software provider intends to charge advertisers for ads, based on the understanding that the software provider's users will actually see the ads the software provider is charging for. To do this with confidence, the software provider should ascertain that it is actually Eudora that is downloading the ads, and not some rogue process written to fetch many ads. Why would someone bother to fetch ads? While the software provider can't discount the "because they can" motivation of the amateur hacker, the real issue is the ad revenue, i.e., ad bounty. Because every ad fetch can generate revenue for a third party, there is a very significant financial incentive for that third party to cause a lot of ad fetches.
  • Statistical analysis has some significant benefits, but also significant drawbacks.
  • the benefits include minimal work in the client (and hence no vulnerability to disassembly, etc.), no run-time burdens on either the client or the server, i.e., everything can be done "after the fact" during accounting runs, easily changeable from the software provider's end, ability to be applied retroactively, etc.
  • the drawbacks to statistical analysis include that statistical analysis will never be entirely certain, and that the software provider may not collect the proper statistics, etc.
  • the software provider Before the software provider gathers or transmits any data that might identify the user to the advertiser, the software provider should obtain the user's explicit (See Fig. 18 A) or near-explicit permission.
  • the term near- explicit is employed to denote that the software provider may, for example, put a special privacy warning in the web page where the user registers a software program such as Eudora. Here, the user is clearly taking an action to submit data to the software provider; as such, explicit permission shouldn't be needed.
  • the software provider should go out of its way to identify areas where an unreasonable user might be able to claim that he/she didn't know he/she was giving information to the software provider, and ask for explicit permission there, even if it seems relatively obvious to the software provider.
  • the software provider should maintain payment information separate from registration information, and both types of information should be maintained separate from demographic information, etc. While it may be very helpful to correlate databases, the software provider faces potential crucifixion if the databases are actually correlated. Moreover, since the software provider can still deliver very targeted advertising without database correlation, the software provider should maintain separate databases.
  • the present invention encompasses a multi-moded software product, e.g., e-mail software, which includes three "self-contained” different versions (or, “modes"), including a "first full feature set” version which is activated when the software product is paid for by the user (i.e., a "Payware version”), a "second full feature set” version which is activated when the user agrees (e.g., either by default or by explicit agreement) to accept advertisements delivered to the client device in order to subsidize the software product (i.e., an "Adware” version), and a "reduced feature set” version which is activated when the software product is not paid for (i.e., a "freeware” version) and the "second full feature set” version is not activated.
  • a multi-moded software product e.g., e-mail software
  • three “self-contained” different versions or, "modes”
  • a first full feature set” version which is activated when the software product is
  • the present invention also encompasses a system and method for automatically distributing advertisements to a multiplicity of client devices that have such multi-moded software installed thereon.
  • the first and second full feature sets are identical with respect to e-mail support features; it will also be appreciate that the second full feature set includes PlayList and ad fetching and display features which are dormant in the first full feature set.
  • the present invention further encompasses multi-moded software as set forth above, wherein the multi-moded software includes a mode switching function which automatically switches from the "Adware" version to the "freeware” version upon detecting a prescribed condition (e.g., based upon monitored user activity level, and/or less than a prescribed number of ads having been downloaded, i.e., "deadbeat user” criterion).
  • a prescribed condition e.g., based upon monitored user activity level, and/or less than a prescribed number of ads having been downloaded, i.e., "deadbeat user” criterion.
  • the present invention also encompasses a system and method for automatically distributing advertisements to a multiplicity of client devices that have such multi-moded software installed thereon.
  • the present invention further encompasses multi-moded software as set forth above, wherein the multi- moded software includes a mode switching function which automatically switches from the "Adware" version to the "freeware” version upon detecting occurrence of a prescribed "ad failure condition", e.g., less than a prescribed number of ads having been received and /or displayed by the client device within a prescribed time period, and an "Ad Failure Nag” function which monitors "time since last Nag” and which generates an "Ad Failure Nag” according to a "Nag Schedule” which is dynamically varied based on the monitored "time since last Nag” information and /or based on cumulative ad download /display statistics or information.
  • a prescribed "ad failure condition” e.g., less than a prescribed number of ads having been received and /or displayed by the client device within a prescribed time period
  • an "Ad Failure Nag” function which monitors "time since last Nag” and which generates an "Ad Failure Nag” according to a "Nag
  • the present invention also encompasses a system (and method) for automatically distributing advertisements to a multiplicity of client devices that have this multi-moded software product installed thereon.
  • the present invention further encompasses multi-moded software as set forth above, wherein the multi-moded software includes a Nag function which generates different types of Nags dependent upon the current mode of the software product which is currently activated, and/or based upon time since the last Nag was generated, and/or based on cumulative ad download /display statistics or information, and/or based on other monitored conditions.
  • the different types of Nags could include a "Registration Nag", a "Payware Nag”, an "Adware Nag”, an "Update Nag”, and an "Ad Failure Nag”.
  • the present invention also encompasses a system (and method) for automatically distributing advertisements to a multiplicity of client devices that have this multi-moded software product installed thereon.
  • the present invention encompasses a software product (e.g., e-mail software) that incorporates an automatic advertisement download function for automatically downloading advertisements to be displayed when the software is activated, and a control function for monitoring user activity levels and for controlling the display of downloaded advertisements at the client device based upon the monitored user activity levels (e.g., based upon "discrete” and/or "cumulative" ad display parameters).
  • a software product e.g., e-mail software
  • an automatic advertisement download function for automatically downloading advertisements to be displayed when the software is activated
  • a control function for monitoring user activity levels and for controlling the display of downloaded advertisements at the client device based upon the monitored user activity levels (e.g., based upon "discrete” and/or "cumulative" ad display parameters).
  • the present invention also encompasses a system and method for automatically distributing advertisements to a multiplicity of client devices that have this software product installed thereon.
  • the present invention also encompasses an e-mail software product that incorporates a control function for automatically downloading advertisements from a remote server system which is separate and independent from the e-mail server system, as well as the system and method for automatically distributing the advertisements to client devices which have this e-mail software product installed thereon.
  • the system includes an ad server system that manages, administers, and controls the distribution of advertisements, and which is controlled by a control entity (e.g., one operated by the present assignee, QUALCOMM INCORPORATED) which is separate and independent from the control entity which controls the e-mail server system which provides e-mail services to any particular client device which has this e-mail software product installed thereon.
  • ad server system and the e-mail server system are operated independently, i.e., under the control of separate and independent control entities.
  • the present invention also encompasses a software product, e.g., e-mail software, which incorporates an automatic advertisement files download function for automatically downloading advertisements from a remote server system to a client device on which the software product is installed, and a control function for locally controlling the display of downloaded advertisements at the client device based upon ad parameters included in the downloaded advertisement files, e.g., including (for each ad), various combinations and sub-combinations of the following ad parameters, namely, the maximum ad display time, or face time, for any given display of that particular ad, the maximum total /cumulative ad display time, or face time, for that particular ad, the maximum number of times to display that particular ad per day, the date/time before which that particular ad should not run, and the date /time after which that particular ad should not run.
  • the present invention also encompasses a system and method for automatically distributing advertisements to a multiplicity of client devices that have this software product installed thereon.
  • the present invention also encompasses a software product, e.g., e-mail software, which incorporates an automatic advertisement download function which fetches a PlayList from a remote server system (e.g., a PlayList server system) which specifies the advertisements to be fetched by the client device on which the software product is installed and the source addresses (e.g., URNs) of the ad servers on which the specified advertisements are stored, fetches the advertisements specified in the fetched PlayList, and stores the fetched advertisements on the client device.
  • a software product e.g., e-mail software
  • a remote server system e.g., a PlayList server system
  • URNs source addresses
  • the present invention further encompasses a system and method for distributing advertisements to client devices which have this software product installed thereon, including a PlayList server (or PlayList server system) which, in response to a PlayList Request from a particular client device that includes a client PlayList identifier, compares a client PlayList identified by the client PlayList identifier with a current PlayList (which may optionally be customized to that particular client device) stored on the PlayList server, and then sends back to the client device a New PlayList which specifies the new advertisements to be fetched by the client device, and the source addresses of the ad servers on which the specified new advertisements are stored.
  • a PlayList server or PlayList server system
  • the above-described automatic advertisement download function of the software product installed on the client device can delete (discard) all or PlayList server-specified ones of the advertisements which are currently stored on the client device, e.g., those which are not specified in the current PlayList; and /or the above-described automatic advertisement download function of the software product installed on the client device can merge the New PlayList with the current client PlayList.
  • the present invention also encompasses several variations and details of implementation of this novel PlayList/ ad fetch process utilized in the Eudora Adware scheme.
  • the present invention encompasses a software product, e.g., e-mail software, which incorporates a custom installer which identifies the specific software product distributor that distributed that software product.
  • the present invention further encompasses a software product, e.g., e-mail software, which incorporates an automatic advertisement download function for automatically downloading advertisements from a remote server system to a client device on which the software product is installed, and a custom installer which identifies the specific software product distributor which distributed that software product, for the purpose of facilitating apportionment of advertising revenue the software product vendor receives from advertisers to specific software product distributors.
  • a software product e.g., e-mail software, which incorporates an automatic advertisement download function for automatically downloading advertisements from a remote server system to a client device on which the software product is installed, and a custom installer which identifies the specific software product distributor which distributed that software product, for the purpose of facilitating apportionment of advertising revenue the software product vendor receives from advertisers to specific software product distributors.
  • the present invention also encompasses a system (and method) for automatically distributing advertisements to a multiplicity of client devices which have this software product installed thereon, wherein the system includes a centralized control facility which receives software product distributor ID information from the client devices and uses this software product distributor ID information to facilitate apportionment of advertising revenue the software product vendor receives from advertisers to specific software product distributors.
  • a central database function which identifies (e.g., by means of cross-referencing and/or correlation tables) the software product distributor ID for each software product distributed by the software vendor, e.g., based on a serial number or reference code associated with each copy of the software product, can be utilized.
  • the present invention encompasses a software product, e.g., e- mail software, that incorporates an automatic advertisement download function for automatically downloading advertisements from a remote server system to a client device on which the software product is installed, and a control function which utilizes a built-in "deadman timer" to impose a time limit for each particular advertisement download session, e.g., the client device will be disconnected from the remote server system upon expiration of the time limit imposed by the "deadman timer".
  • the present invention also encompasses a system (and method) for automatically distributing advertisements to a multiplicity of client devices that have this software product installed thereon.
  • the present invention can be characterized as a software product, e.g., e-mail software, that incorporates an automatic advertisement download function for automatically downloading advertisements from a remote server system to a client device on which the software product is installed, and an instrumentation and auditing module having various novel features /functions, e.g., maintaining a rotating log of ad-related statistics and /or performing random and /or statistically-based ad effectiveness audits with user permission.
  • a software product e.g., e-mail software
  • an automatic advertisement download function for automatically downloading advertisements from a remote server system to a client device on which the software product is installed
  • an instrumentation and auditing module having various novel features /functions, e.g., maintaining a rotating log of ad-related statistics and /or performing random and /or statistically-based ad effectiveness audits with user permission.
  • the present invention also encompasses a system (and method) for automatically distributing advertisements to a multiplicity of client devices that have this software product installed thereon, wherein the system includes a centralized control facility for obtaining ad-related statistical information from selected client devices, in a random or statistical manner, e.g., for the purpose of monitoring the integrity and/or effectiveness of the advertisement distribution system.
  • the present invention encompasses a software product, e.g., e-mail software, that incorporates an automatic advertisement download function for automatically downloading advertisements from a remote server system to a client device on which the software product is installed, and a "link history" function which enables the user to review previously-viewed advertisements, e.g., by providing a graphical user interface (GUI) which includes a link history window that lists links the user has previously visited and ads that have been previously displayed to the user, along with some status information on each.
  • GUI graphical user interface
  • a mechanism will be provided to enable the user to select an ad listed in the link history window for display, e.g., by single-clicking the appropriate ad link, and to enable the user to visit the source Web site of any given ad listed in the link history window, e.g., by double- clicking the appropriate ad link.
  • the present invention also encompasses a system (and method) for automatically distributing advertisements to a multiplicity of client devices that have this software product installed thereon.
  • the present invention encompasses a software product, e.g., e- mail software, which incorporates a "Nag” function that monitors "time since last Nag” and that "nags” the user according to a "Nag Schedule” which is dynamically varied based on the monitored "time since last Nag” information.
  • a software product e.g., e- mail software
  • e-mail software which incorporates a "Nag” function that monitors "time since last Nag” and that "nags” the user according to a "Nag Schedule” which is dynamically varied based on the monitored "time since last Nag” information.
  • the present invention encompasses a software product, e.g., e-mail software, that incorporates a download function that downloads separate file portions representing a single image during separate communication sessions with a remote server (e.g., separate file portions of an advertisement file, e.g., a GIF file).
  • a remote server e.g., separate file portions of an advertisement file, e.g., a GIF file.
  • the present invention further encompasses a system (and method) for automatically distributing advertisements to a multiplicity of client devices that have this software product installed thereon.

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Finance (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Development Economics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Game Theory and Decision Science (AREA)
  • Data Mining & Analysis (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Software for use on a client device, which is configured for communications with a multiplicity of other client devices via a communications network, provides an installer function for installing the software on the client device, a communications function that effects a send e-mail communication link between the client device and an e-mail service provider server system via the communications network whenever the user desires to send e-mail messages, a receive e-mail communication link between the client device and the e-mail service provider system whenever the user desires to check for received e-mail messages; and an advertisement download communication link between the client device and an advertisement distribution server system via the communications system, at selected advertisement download times. It should be noted that, in all cases, the e-mail service provider server system and the advertisement distribution server system are separately controlled.

Description

METHOD FOR DISTRIBUTING ADVERTISEMENTS TO E-MAIL CLIENTS
COPYRIGHT NOTICE
A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by any one of the patent document or patent disclosure as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
BACKGROUND OF THE INVENTION
The present invention relates generally to the field of electronic mail ("e-mail") software and systems. More particularly, the present invention is related to advertiser-supported e-mail software and a method and system for delivering advertisements to client computers having this advertiser-supported e-mail software installed thereon.
This application is based on Provisional Patent Application No. 60/ 169,622, which was filed on December 8, 1999. This Provisional Patent Application is incorporated herein by reference in its entirety.
Electronic mail ("e-mail") has become a ubiquitous form of communication in recent years. In general, e-mail works as follows. E-mail software is installed on a client device, e.g., a personal computer (PC), equipped or configured for communications with a multiplicity of other client devices via a communications network. Access to the communications network can be provided by a communications network service provider, e.g., an Internet Service Provider (ISP) and /or a proprietary network e-mail service provider, with whom the user establishes one or more e-mail accounts, each identified by a unique e-mail address, e.g., president® whitehouse. o v . The e-mail software, e.g., the e-mail client, enables a user of the client device to compose e-mail messages, to send e-mail messages to other client devices via the communications network, and to read e-mail messages received from other client devices via the communications network. A user can send e-mail messages to multiple recipients at a time, which capability is sometimes referred to using a mailing list or, in extreme cases, bulk mailing. The typical e-mail client supports Post Office Protocol Version 3 (POP3), Simple Mail Transfer Protocol
(SMTP), Internet Mail Access Protocol, Version 4 (IMAP4), and/or Multipurpose
Internet Mail Extensions (MIME). Each ISP and each proprietary network e-mail service provider independently operates and controls an e-mail communication system (or, simply, "e-mail system"). These independently-operated e-mail systems are bi-directional store-and-forward communication systems that are interconnected to one another via the Internet. Each e-mail system generally includes a number of e-mail servers that store inbound and outbound e-mail messages and then forward them, route them, or simply make them available to the users/intended recipients. Different e-mail systems are operated and controlled by independent control entities. With the advent of the Internet, the user is not restricted to a single system providing both an incoming e-mail server (or server cluster) and an outgoing e-mail server (cluster), i.e., both the incoming and outgoing e-mail servers under the control of a single entity. Most e- mail clients, other than proprietary e-mail systems such as AOL and JUNO, can be configured to receive e-mail from an incoming e-mail server (cluster) controlled by a first entity and an outgoing email server (cluster) controlled by a second, totally independent entity. It will be appreciated that most casual email users download from and upload to respective servers operated by a single entity. Generally, when a user desires to send e-mail messages, or to check for received messages (which operations can occur automatically according to a prescribed schedule), the e-mail software is activated. Upon being activated, the e-mail software:
( effects a connection or communications session with the host ISP or e-mail service provider via a prescribed communication link by invoking a prescribed communications mechanism, e.g., a dial-up modem, an ISDN connection, a DSL or ADSL connection, etc.;
< electronically transmits or transports any e-mail messages desired to be sent to the e-mail server system operated by the host ISP or e-mail service provider, e.g., via an SMTP server;
( receives any inbound e-mail messages forwarded to the client device by the host ISP or e-mail service provider, e.g., via a POP3 or IMAP4 server; and ( stores any received e-mail messages in a prescribed memory location within the client device, e.g., at either the default location established by the e-mail client or a user- selected location.
Exemplary e-mail software is the commercially available e-mail software marketed by the present assignee, QUALCOMM INCORPORATED, under the registered trademarks EUDORA PRO® and EUDORA LIGHT® (hereinafter sometimes referred to generically as "Eudora"). In general, the EUDORA PRO e-mail software provides the user with a "full feature set," and the EUDORA LIGHT e-mail software provides the user with a "reduced feature set" that is a subset of the "full feature set" provided by the EUDORA PRO e-mail software. The EUDORA PRO e- mail software (the previous version of which is referred to as "EP4" in this document) must be paid for by the user (or by someone else on behalf of the user), and can thus be regarded as "Payware", whereas the EUDORA LIGHT e-mail software is provided free of charge to registered users, and thus, can be regarded as "Freeware." Each of the client devices that has any version of Eudora installed thereon can be regarded as a "Eudora client." Presently, there is a very large installed base of Eudora clients.
The present assignee, QUALCOMM INCORPORATED, has recently released a new version of its popular EUDORA e-mail software that is popularly known as EUDORA Adware (hereinafter sometimes referred to simply as "Adware"). This new Adware version of Eudora is contained within, i.e., is an integral part of, a new Eudora software product that contains the previously-referenced Payware and Freeware versions of Eudora. In general, each version of Eudora contained within this Eudora product release constitutes a separate operating mode of a single software product. Advantageously, the Adware Version of Eudora Pro® can be activated or switched between modes either automatically, in accordance with prescribed criteria or conditions, or manually, in accordance with prescribed user actions, e.g., registration, payment, selection, etc. This new Adware version of Eudora and the multi-moded Eudora e-mail software product that contains the same were motivated by a desire on the part of the present assignee to provide users with the "full feature set" afforded by the Payware version of Eudora free of charge to the users, by means of distributing advertisements paid for by advertisers to Eudora clients, thereby effectively shifting the source of payment/ revenue from the users to the advertisers. Thus, this new Eudora software product can be regarded as "advertiser-supported" or "advertiser-subsidized" or simply "sponsored" software.
Most Internet service providers (ISPs) and e-mail service providers charge users a flat monthly subscription fee, although some providers still charge users based on usage, e.g., additional charges for on-line time beyond a prescribed level. However, there exists a population of users who desire to have basic e-mail service, but who do not require or want to pay for Internet access. A few companies have addressed the needs of this market segment by providing free e-mail service to users /subscribers who agree to receive advertisements along with their received e- mail messages. In this way, the advertisers support or sponsor the free e-mail service.
Based upon the relevant literature, it appears that the first company to propose and offer such a free e-mail service was FreeMark Communications (a.k.a. "ProductView Interactive"). The FreeMark system and method for providing free e- mail service is disclosed in PCT published patent application International Publication Number WO 96/24213, having a priority date of February 1, 1995, based on U.S. Application Serial Number 08/382,118, naming as inventors Marv Goldschmitt and Robert A. Young. The disclosure of this published PCT patent application is expressly incorporated herein by reference. In short, this free e-mail system was subsidized by advertisers that appended advertisements as attachments, e.g., graphical interchange format (GIF) image file attachments, to e-mail messages transmitted to subscribers. The advertisements were stored on the subscriber's computer for viewing while the subscriber was off-line reading the received e-mail messages. In some of their promotional literature, FreeMark referred to the appended advertisements as "postage stamps". In FreeMark's literature, each message received by the subscriber was depicted as an envelope bearing a postage stamp; the postage stamp was the advertisement.
Subsequently, a company by the name of Juno Online Services, L.P. (hereinafter simply "JUNO") introduced a free e-mail service. The JUNO system and method for providing free e-mail service is disclosed in U.S. Patent Number 5,809,242, which issued to Marsh et al. on December 8, 1998, the disclosure of which is also expressly incorporated herein by reference. With the proprietary JUNO e-mail system, a plurality of advertisements are downloaded to subscribers when they connect to the proprietary JUNO e-mail server system to send and /or receive e-mail messages, with the advertisements being stored locally on the subscriber's computer for display when the subscriber is off-line composing or reading e-mail messages, i.e., when the subscriber activates Juno e-mail software previously installed on the subscriber's computer. The locally stored advertisements are displayed under the control of a display scheduler resident on the subscriber's computer, to thereby enable the advertisements to be rotated or changed in a dynamic manner. This results in a continuously-changing display of advertisements being presented to the subscriber. Various other aspects and features of the proprietary JUNO e-mail system are disclosed in U.S. Patent Number 5,838,790, which issued to McAuliffe et al on November 17, 1998, and in U.S. Patent Number 5,848,397, which issued to Marsh et al on December 8, 1998; the disclosures of both of these patents are also expressly incorporated herein by reference. With both the FreeMark and JUNO proprietary free e-mail systems, both the advertisements and the e-mail messages are stored on a single e-mail system (e.g., JUNO stores both on a single, unique server which is assigned (bound) to the user when he/she first signs up for service), and are distributed to subscribers under the direction of a common control entity that is controlling all part of the e-mail system. While this may be a desirable system architecture for providing free e-mail service, it is not a suitable system architecture for a system whose purpose is to distribute advertiser-supported e-mail software that is e-mail system-independent, i.e., which is not tied to a particular proprietary e-mail service provider but, rather, supports public standards, e.g., POP3, SMTP, IMAP4, etc. Moreover, the free e-mail system architecture is not suitable for the many people who maintain multiple e-mail accounts, e.g., business and personal e-mail accounts. As mentioned previously, the present inventors were motivated by a desire to provide a system and method for distributing advertisements to Eudora clients in order to generate advertising revenues that would allow a fully-featured version of the Eudora e-mail software to be widely distributed free of charge to end-users. Moreover, the present inventors were motivated by a desire to provide e-mail software that is both universal and e- mail system-independent, i.e., it is not tied to any particular proprietary e-mail service or service provider.
Accordingly, the present inventors have developed a novel multi-moded Eudora e-mail software product that contains the Payware, Freeware and Adware, and have also devised a novel system and method for distributing advertisements to clients equipped with this new software product. As will become fully apparent hereinafter, the purpose and architecture of this novel system are radically different than that of the proprietary FreeMark and JUNO e-mail systems. In this regard, the multi-moded Eudora e-mail software product, and the novel system and method for distributing advertisements to clients equipped with this new software product, embraces a number of different inventions that will become fully apparent from the following disclosure and the documents referenced therein.
SUMMARY OF THE INVENTION Based on the above and foregoing, it can be appreciated that there presently exists a need in the art for a subsidized e-mail client which overcomes the above- described deficiencies. The present invention was motivated by a desire to overcome the drawbacks and shortcomings of the presently available technology, and thereby fulfill this need in the art. In one of its aspects, the present invention encompasses e-mail software which incorporates an automatic advertisement download function for automatically downloading advertisements to be displayed when the e-mail software is activated, for the purpose of subsidizing the full e-mail software product (e.g., to provide a "Freeware" version of the e-mail software product to end-users), wherein the e-mail software is e-mail system-independent. Preferably, the e-mail software is a standalone product which is universal, i.e., works in conjunction with virtually any e-mail service provider or e-mail system, including those service which comply with open standards. The present invention also encompasses a system and method for automatically distributing advertisements to a multiplicity of client devices which have this e-mail software installed thereon.
According to one aspect, the present invention provides an e-mail client for receiving and sending e-mail messages to at least one of a plurality of e-mail servers operated by respective e-mail operators, wherein the e-mail client receives at least one ad from an ad server operated by a control entity different than the control entity operating the one or more e-mail systems.
According to another aspect, the present invention provides a recording medium storing e-mail client software for instantiating an e-mail client which receives e-mail messages from and sends e-mail messages to at least one of a plurality of e-mail servers operated by their respective e-mail operators, wherein the e-mail client automatically receives ads from an ad server which operates independent of the e-mail servers. According to still another aspect, the present invention encompasses a method of operating an e-mail client, provided by an ad server operator, compatible with a plurality of independently operated e-mail servers, including ones based on open e- mail standards. Preferably, the method includes steps for periodically at least one of sending and receiving e-mail from selected ones of the e-mail servers, periodically receiving ads from the ad server operator, and displaying the received ads responsive to instructions provided by the ad server operator.
According to a still further aspect, the present invention provides an e-mail system including an incoming e-mail server storing incoming e-mail messages addressed to a plurality of users, an outgoing e-mail server for forwarding or routing outgoing e-mail messages generated by the users, and an ad server operating independently of the e-mail server, and a plurality of e-mail clients operated by respective users. Preferably, each of the e-mail clients checks for respective e-mail messages stored on the incoming e-mail server, transmits any outgoing e-mail messages stored on the e-mail client to the outgoing e-mail server, and downloads available ads from the ad server while the e-mail client is online.
According to another aspect, the present invention encompasses software for use on a client device which is configured for communications with a multiplicity of other client devices via a communications network. Preferably, the client device provides an installer function for installing the software on the client device, a communications function which effects a send e-mail communication link between the client device and an e-mail service provider server system via the communications network whenever the user desires to send e- mail messages, a receive e-mail communication link between the client device and the e-mail service provider system whenever the user desires to check for received e-mail messages; and an advertisement download communication link between the client device and an advertisement distribution server system via the communications system, at selected advertisement download times. In addition, the client device provides an e-mail composition function for enabling a user of the client device to compose e-mail messages, an e-mail send function which enables the user to send e-mail messages to other client devices via the send e- mail communication link, an e-mail receive function that enables the user to receive e-mail messages from other client devices via the receive e-mail communication link, and an advertisement download function that downloads advertisements distributed by the advertisement distribution server system via the advertisement download communication link. It should be noted that, in all cases, the e-mail service provider server system and the advertisement distribution server system are separately controlled according to the present invention.
Many other features, aspects, uses, applications, advantages, modifications, variations, and alternative embodiments of the foregoing inventive concepts will become apparent from the technical documentation that follows. This technical documentation constitutes an integral part of this application for all purposes. Moreover, additional inventive concepts that have not been discussed above are disclosed in this technical documentation, and it is intended that this application cover such additional inventive concepts.
Furthermore, certain terms that have been used in the foregoing and following descriptions of the present invention are defined as follows:
Figure imgf000009_0001
Figure imgf000010_0001
Figure imgf000011_0001
Application Specific Integrated Circuit (ASIC) can be considered to incorporate instructions for instantiating a client device, an ASIC is also considered to be within the scope of the term "memory."
BRIEF DESCRIPTION OF THE DRAWINGS
These and various other features and aspects of the present invention will be readily understood with reference to the following detailed description taken in conjunction with the accompanying drawings, in which like or similar numbers are used throughout, and in which:
Fig. 1 is a high-level diagram of a computer system including a plurality of client devices connected to a plurality of independently-operated server devices via a network, which computer system is suitable for implementing various functions according to the present invention;
Fig. 2 is a high-level diagram of a representative one of the client devices illustrated in Fig. 1;
Figs. 3A and 3B illustrate alternative and non-limiting placement of ads in the main navigation screen of an exemplary e-mail software application according to the present invention;
Fig. 4A depicts state transitions when a version of the software is installed by one of a new user, an old user, and an EP4 user;
Fig. 4B illustrates a dialog box associated with the state flow diagram illustrated in Fig. 4A;
Fig. 5A illustrates an exemplary state flow diagram of a process by which the Ad user becomes a registered Ad user while Figs. 5B through 5G illustrate several dialog boxes associated with Fig. 5A;
Fig. 6A illustrates an exemplary state flow diagram of a process by which a Free user can become a registered Free user while Fig. 6B illustrates an additional dialog box associated with Fig. 6A; Fig. 7A illustrates an exemplary state flow diagram of a process by which all users are reminded to update the software according to the present invention while Fig. 7B depicts an exemplary dialog box corresponding to an Update Nag;
Fig. 8 illustrates an exemplary state flow diagram of a process by which a Box user can become a Paid user;
Fig. 9 illustrates an exemplary state flow diagram of a process by which the Paid User becomes an Unpaid user;
Fig. 10 illustrates an exemplary Nag Window display timeline for MacOS versions of the Eudora e-mail software according to an exemplary embodiment of the present invention;
Fig. 11 illustrates a Nag Schedule employed by the software according to the present invention;
Fig. 12 A is a simulated screen capture of a link history window employed in an exemplary software embodiment of the present invention while Fig. 12B is a dialog box reminding the user that the e-mail client according to the present invention is off-line;
Fig. 13A illustrates the assumptions used in determining the impact of ad transmission on e-mail program operations while Fig. 13B is a table listing the bandwidth requirements in terms of subscriber base versus the number of new ads to be downloaded each day;
Fig. 14 is a state flow diagram of an exemplary ad fetch process according to the present invention;
Figs. 15A - 15H collectively illustrate an algorithm controlling ad scheduling in an exemplary embodiment according to the present invention; Figs- 16A and 16B illustrate parameter variations in alternative modes of ad display possible in an exemplary embodiment according to the present invention;
Figs. 17A through 17C illustrate additional dialog boxes which advantageously can be generated by the e-mail client software according to one aspect of the present invention; Fig. 18A illustrates an exemplary dialog box associated with auditing the operation of the Adware software according to the present invention while Figs. 18B through 18E list useful parameters for auditing the software's performance; Fig. 19 is a table summarizing the features of a plurality of web pages that advantageously can be employed in conjunction with an exemplary e-mail system according to one aspect of the present invention;
Fig. 20 is a class diagram illustrating the mapping of XML code to objects and the task flow when another exemplary embodiment according to the present invention is operating in accordance with doPost methodology;
Figs. 21A and 21B collectively constitute a pseudo code listing which can be employed by the server 302 in Fig. 1 in generating a PlayList in accordance with the present invention; Fig. 22 is another class diagram illustrating handling of requests and writes between a server and at least one of the client computers depicted in Fig. 1; and
Fig. 23 illustrates database accesses in accordance with another aspect of the present invention.
DETAILED DESCRIPTION OF THE PREFERRED
EMBODIMENTS
Illustrative embodiments and exemplary applications will now be described with reference to the accompanying drawings to disclose the advantageous teachings of the present invention. While the present invention is described herein with reference to illustrative embodiments for particular applications, it should be understood that the invention is not limited thereto. Those having ordinary skill in the art and access to the teachings provided herein will recognize additional modifications, applications, and embodiments within the scope thereof and additional fields in which the present invention would be of significant utility.
Referring now to specific drawings, Fig. 1 illustrates an exemplary system configuration 10 which is suitable for carrying out the functions according to representative embodiments of the present invention. Although the representative embodiment will be generally described with respect to an electronic mail (e-mail) system where a number of users can create, send, receive and read e-mail messages, the present invention is not so limited. For example, the present invention is equally applicable to a personal digital assistant (PDA) incorporating specialized software for receiving stock quotations via a wireless network. Thus, the principles of the present invention should not be regarded as limited solely to e-mail systems; the principles of the present invention apply to on-line services where a provider, e.g., a software provider, desires to make its software available to users using a variety of payment options for a core set of software functions.
As shown in Fig. 1, the system 10 includes a plurality of client computers 100a, 100b, ..., lOOn, where n denotes any positive integer. Preferably, each of the client computers generally denoted 100 can be either a workstation or a personal computer executing a client program according to the present invention. In an exemplary case, the client computers 100a, 100b, ..., lOOn advantageously can be connected to a plurality of servers 301 - 304, which servers will be described in greater detail below, via a network 200, e.g., the Internet. Alternatively, the network 200 can be one of a local area network (LAN), a wide area network (WAN), an Intranet, or a wireless network, or some combination thereof. It will be appreciated that Fig. 1 illustrates a non-limiting exemplary system; and number of clients can be connected to any number of servers.
Fig. 2 illustrates in further detail the hardware configuration of an exemplary one of the client computers 100a, 100b, ..., lOOn illustrated in Fig. 1. In the representative embodiment, the client computer 100a includes a central processing unit 209 for executing computer programs (including the client program according to one exemplary embodiment of the present invention) and managing and controlling the operation of the client computer 100a. A storage device 205, such as a floppy disk drive, is coupled to the central processing unit 209 for, e.g., reading and writing data and computer programs to and from removable storage media such as floppy disks. Storage device 206, coupled to the central processing unit 209, also provides a mechanism for storing computer programs and data. Storage device 206 is preferably a hard disk having a high storage capacity. A dynamic memory device 207 such as a RAM, is also coupled to the central processing unit 209. It will be noted that storage devices 205 and 206, as well as dynamic memory device 207, are non-limiting examples of a memory, which term was defined previously. The client computer 100a includes typical input/output devices, such as, for example, a keyboard 203, a mouse 204, a monitor 208, and a communications device 201. It will be appreciated that the communications device advantageously can be a modem, an ethernet interface card, etc.
Referring again to Fig. 1, each of the client computers 100a, 100b, ..., lOOn can selectively communicate with any of the servers, e.g., servers 301 - 304, via the network 200. In the computer system 10 depicted in Fig. 1, each of the servers performs a specialized function. In an exemplary case, server 301 performs a registration function, i.e., accepts registration information from each client computer (as discussed in greater detail below), server 302 provides PlayLists to the client computers 100a, 100b, ..., lOOn, server 303 provides the advertisements designated in the PlayLists, and server 304 acts as a conventional e-mail system server system, i.e., provides both the incoming e-mail server and the outgoing e-mail server. It should be mentioned that only servers 301 and 302 need actually be under the direct control of the software provider, e.g., QUALCOMM INCORPORATED in the preferred embodiment, although server 303 advantageously may be under the control of the software provider as well. It should also be mentioned that the reference to software should not be construed as limited to disk based software; the term "software" should be broadly interpreted as instructions carried out by a processor, whether these instructions are read from a dynamic memory or stored as firmware in an read only memory (ROM) or other variants of such a device. According to one aspect of the present invention, the "software" advantageously can be provided as a single binary (per client device) file containing the software, e.g., the Eudora software, which can be employed by all users. This binary file will operate in one of three major modes of operation: Payware; Freeware; and Adware. In the Payware mode of operation, the user must pay the software provider to use the software. Freeware is free for all to use, but has fewer features than either Payware or Adware. Preferably, Payware users will prove their payment by a registration code that the software provider will provide to them at time of payment. This code will be self-validating, and contain enough data to identify what version(s) the user is entitled to operate. It should be noted that users of the Payware version of Eudora will be entitled to all versions of Eudora that are produced during the calendar year following their payment. The software preferably polls a predetermined site, e.g., a site maintained by QUALCOMM INCORPORATED, on a periodic basis in order to determine if an update for the software is available; if an update is available, the software advantageously can present the user with a small web page of options for obtaining the software update, as discussed in greater detail below.
It will be noted that Adware has all the features of Payware, but does not require payment from the user. What Adware does require is that the user display and view ads, which the user will download from the software provider's site and/or one or more sites designated by the software provider. It will also be noted that the initial state of the software is Adware.
In an exemplary preferred embodiment, each client computer downloads ads from the ad server 303 unobtrusively and without drawing significant bandwidth, as discussed in greater detail below. Moreover, the ads advantageously can be displayed in a manner that doesn't significantly detract from the use of the software, e.g., Eudora. Figs. 3A and 3B illustrate advertisements integrated into the main screen of the exemplary Eudora e-mail software.
Some of the terminology employed in describing the functions and novel features of exemplary embodiments of the present invention was presented above. Additional terminology which facilitates a full understanding of the present invention in terms of the Eudora software is presented immediately below.
Figure imgf000017_0001
Figure imgf000018_0001
Figure imgf000019_0001
Figure imgf000020_0001
Figure imgf000021_0001
As mentioned above, the "software" advantageously can be provided as a single binary file containing the software, e.g., the Eudora software, which can be installed (if required) and employed by all users. This binary file will operate in one of three major modes of operation: Payware; Freeware; and Adware. The installation and operation of various functions of the software program according to the present invention will now be described in greater detail while referring to several state flow diagrams, which state diagrams illustrate the major user states and the transitions among them. In the flow state diagrams, the following conventions will be observed: ( Raised grey squares are conceptual names for buttons in dialogs.
( A few paths are labeled with menu items. These items can be used to bring up the window in question directly, without waiting for nags.
( In principle, any dialog or nag can be cancelled, leaving the user back in the initial state. ( Web pages cannot change user state or generate more dialogs; hence, all web pages lead back to the user's initial state.
With the conventions noted above, the installation of the Eudora e-mail software will now be described while referring to Fig. 4, which depicts state transitions when a version of the software is installed by one of a new user, an old user, and an EP4 user. It will be noted that the software provider doesn't give the user the options to pay for the full feature set or to accept the software with a reduced feature set in the intro dialog. While the software provider will explain those options, e.g., via a dialog box similar to that illustrated in Fig. 4B, as well as the fact that the user can obtain these alternative versions of the software feature set by going through the Help menu, the software defaults to the Adware version.
The path taken by EP4 users and box purchasers illustrated in Fig. 4A merits some elaboration. The Code Generator referred to in Fig. 4A advantageously is instantiated by the installer module of the binary file, not in the Eudora e-mail program itself. If the user is using the software's 4.x -> 4.3 update function, the software searches for a copy of EP4 and, on finding a copy of the software, the Code Generator permits the user to generate a RegCode file. If the user is running the installer out of the box, the installer permits RegCode generation without looking for a copy of EP4 first. It should be mentioned that the RegCode file so generated is special in that it contains a line saying "Eudora-Needs-Registration: YES." The Eudora e-mail software will notice this line of text, put the user into the unregistered state, and then nag the user to register the software. Once the user registers, the same registration code will be re-transmitted to the user, and the Eudora e-mail software will silently accept it (since it will be the same as the current code), and turn off the need to register flag in the e-mail software.
Fig. 5A illustrates a state flow diagram of the process by which the Adware user becomes a registered Adware user. It will be appreciated that, in the illustrated exemplary case, the registration process necessitates interaction between client computer 100a and a registration server 301, which are connected to one another via network 200. In Fig. 5 A, the Adware user indicated in Fig. 4 A registers with the software provider through several alternative mechanisms. For example, the Ad user may wish to register, and simply activates the "HELP" pulldown menu, which is available from the tool bar illustrated at the top of Fig. 3A, and selects the Payment & Registration option, as depicted in Fig. 5B. Alternatively, the Adware user may receive a Nag box, i.e., a Nag dialog box, generated by the software at a predetermined time, as discussed more fully below. Finally, the Ad user may receive a registration via e-mail, i.e., a registration code generated by server 301 and transmitted to the client computer 100a by way of e-mail server 304.
As shown in Fig. 5B, the Payment & Registration Window provides several selection buttons, which allow the Ad user to register the Adware, pay for the software, list all versions available to the user, customize or modify the ad stream by providing demographic information, enter a received registration code, and downgrade to the reduced feature set offered to Freeware users. See Figs. 5C - 5G. It should be mentioned that the user can enter a registration code to become one of a registered Adware user, a registered Freeware user, and a registered Payware user. See Fig. 5F. It will be appreciated that the software operates in accordance with the same state flow diagram for Registered Adware Users, except that the Registered Adware User is not subjected to the Registration Nag.
The software provider advantageously can use a registration scheme with a self-validating registration code, so that databases do not need to be used to validate registrations. The algorithm for verification is intended to satisfy several conflicting constraints, i.e., it needs to be secure, yet easy to implement and not unduly burdensome for the user. The Eudora e-mail software checks its registration code at startup for validity. If the registration code is invalid, the user should be considered unregistered. If the user is a paid mode user, this will involve a switch to Sponsored mode, about which the user should be warned using a dialog box (not shown). This alert will be followed by an opportunity to reenter the code. The necessary inputs to generate the registration code are as follows:
Figure imgf000024_0001
It will be appreciated that a plurality of RegCode algorithms advantageously can be employed in generating a self-validating registration code. In brief, the software provider takes the inputs listed above, checksums them, mixes the inputs (including the RegName) and the checksum together in according to any one of a variety of algorithms, and encodes the result as a 16-bit number string. It will also be appreciated that the encoding and bit-mixing can be reversed and then, together with the RegName, the checksum can be used to verify the validity of the registration code.
It should be noted that the software provider will store registration codes separately for Freeware (Eudora Light), Adware (Sponsored) and Payware (Eudora Pro) software modes. Acceptance of a registrations code for one mode of operation does not imply that the registration codes for the other modes should be destroyed.
Once the registration code has been generated, the user must somehow enter the valid RegCode into the Eudora e-mail client. This can be accomplished in one of three ways:
( Manually. Users can type or paste values into the Enter Code dialog box.
See Fig. 5F. { Windows Registry. At Eudora startup, the software will look for the Re gC o d e in the W i n d o w s r e g i s tr y ( e . g . , Software\Qualcomm\Eudora\Check, FName, LName, RCode). The values should be copied into the preferences register or associated lookup table of the e-mail client, if these preferences are found and valid. ( RegCode File. At Eudora startup, the software will look for a file in the application software folder named "RegCode.dat," in an exemplary case. The values should be copied into the preferences register or associated lookup table of the e-mail client, if these preferences are found and valid. It should also be mentioned that the software provider will allow a special- case MIME part to be mailed to the Eudora e-mail client. The user receiving this part will automatically be asked to verify and enter the information. He/she can also execute the attachment again later. However, he/she cannot forward the attachment to anyone else using the Eudora e-mail client, because a special Content-Type attribute ("regCode") is required to activate the part, and the Eudora e-mail client can't send those.
The format of the MIME part (and the RegCode file) is that of a text file containing RFC822-header-style fields. It has a registered MIME type of application/ vnd.eudora. data. The fields included in the part are:
Figure imgf000026_0001
It should be noted that the Eudora-File-Type field must be present. The other fields listed above may or may not be present.
It will be appreciated from the discussion above that RegCodes mailed to the user should be validated prior to use. In order to be used, a RegCode should meet the following tests:
( Validity - An invalid RegCode should be ignored. ( Directness - The mailed-to field of the RegCode should contain an address for one of the user's personalities or be in the user's "me" nickname. ( Applicability - A new RegCode should not automatically override an existing valid RegCode. The only exceptions to this policy are that a Payware mode RegCode should override a Freeware or Adware RegCode, and a Payware mode RegCode that is the same as the user's existing Payware mode RegCode can be used to disable the "Eudora-Needs-Registration" Nag. Once the RegCode has been determined to meet the above tests, the user should be asked to accept the code. An exemplary acceptance dialog box is illustrated in Fig. 5F.
As mentioned above, the registration code is self-validating, since one part is a function of the other. However, there is another sense of "validation" to be considered, i.e., whether or not the registration code is "valid" for use with a particular version of Eudora. This is accomplished by comparing the ExpMonth in the registration code with a BuildMonth field the software provider will put into the application (in a place that cannot be overwritten by plug-ins, settings, etc.). If the ExpMonth and the BuildMonth correspond, the registration is deemed valid by the e- mail client.
Fig. 6A illustrates a state flow diagram of the process by which a Freeware user can become a Registered Free User. It will be appreciated that the state flow diagrams of Figs. 5A and 6A are similar in many respects. However, the state flow diagram of Fig. 6A allows for an additional Nag dialog box, i.e., the so-called Feature
Nag dialog box pictured in Fig. 6B, to remind both the Free User and the Registered
Free User of the enhanced features available to Adware and Payware users. With respect to Freeware Users and Registered Freeware Users, it will be appreciated that the Registered Freeware Users will not receive the Registration Nag dialog box. It will be appreciated that the state flow diagram illustrated in Fig. 6A is very similar to that applicable to the Adware Users (Fig. 5A), with the exception that Freeware Users are given the option to try the full features rather than enter their demographic information.
It should also be mentioned at this point that all users will receive an Update Nag dialog box (not shown) at a predetermined interval. Eudora checks the Update Page once per week during an e-mail session. If the Update page has changed, the user is nagged to update the Eudora e-mail software. Even if the page hasn't changed, the user is nagged on a 30-day schedule to check for updates, to ensure that he/she has the latest software version. See the state flow diagram of Fig. 7A. The Update Nag presents the user with versions to which he/she is entitled to upgrade (if any). See Fig. 7B. The Nag itself is an HTML document with links to versions of the Eudora e-mail software for the user to download.
Fig. 8 illustrates an exemplary state flow diagram of the process by which a Box user can become a Paid user, i.e., a Payware user. It will be appreciated that the only Nag the software provider presents specifically to the Box users is the Registration Nag. Once a Box user registers, the Box user is converted into a normal Paid user. It should be mentioned however that the payment date for the Box user is set to a specific value by the software provider, so that the software provider can control what versions of the software the Box user will receive, e.g., the period of time for which the user will receive updates from the software provider for free going forward.
Having introduced the concept of nagging, this would be a convenient point to discuss various features of nagging implemented in the software according to the present invention. Two major issue are (1) how the software provider nags the user, and (2) when the software provider nags the user.
Ideally, Nag Windows are modeless windows. The user can close them using close boxes, or dismiss them by taking one of their action items, or simply leave them open and let them drift wherever they will in the window list. Due to implementation constraints, Windows Nag Windows will be slightly different in behavior than MacOS Nag Windows, which are discussed below. The Nag Windows are floating windows; the software provider expects that the user will probably dismiss the Nag Window in fairly short order. It will be appreciated that the Nag Windows will not, however, stop background tasks from executing.
It should be mentioned that there is at most one Nag Window of each variety open at a time; old windows of the same variety advantageously will be recycled. That is, if a given Nag Window is still open the next time the user is due to be nagged, that window will be reused and brought back to the top of the window stack. It should also be mentioned that all Nags applicable to the user should be available to the user by selection from the Help menu, so that the user who dismisses one of the Nag Windows inadvertently can deliberately nag him/her-self if he/she wishes, although such manual Nag invocations do not reset the Nag's timer. Preferably, Nag Windows will be opened on top of all other windows, and no automatically opened windows, including, for example "Tip of the Day" and other dialog boxes and excluding other Nag Windows, will ever be placed above them until the user has manually brought another, non-Nag Window above them. Due to the implementation constraints in the Windows version of the Eudora e-mail software, the only windows that can obscure Nags would be other floating windows. It will be appreciated that this is chiefly due to the requirement that Multiple Document Interface (MDI) child windows be maximizable. It should be mentioned that is a standard Windows interface used by many popular Windows applications and utilities, such as the Windows Program Manager, and the Windows File Manager; the MDI interface is also part of the Common User Access (CUA) standard set by IBM. Each MDI-compliant application enables you to open child windows for file-specific tasks such as editing text, managing a database, or working with a spreadsheet, to name but a few of the possible tasks.
Fig. 10 illustrates a flow chart for Nag Window display in MacOS versions of the Eudora e-mail software according to an exemplary embodiment of the present invention. In Fig. 10, the software presents just the In mailbox, as denoted by the symbol (1), i.e., time (1). The Eudora e-mail software then determines that it needs to nag the user, and places the Nag atop the mailbox, as denoted by the symbol (2). Some mail arrives in the "Fresh Meat" mailbox. Ordinarily, this would open on top. However, since there is a "new" Nag being displayed by the software, i.e., one the user has not manually sent behind anything, the "Fresh Meat" instead opens below the Nag, as denoted by symbol (3). The user manually brings Fresh Meat to the front, as denoted by symbol (4). After that, when mail arrives in More Meat, the Nag is no longer new, and More Meat can be opened on top in the normal manner, as denoted by the symbol (5).
The placement of Nag Windows in any of the Windows environments is, in general, considerably simpler. Nag Windows simply float outside the MDI box, above other floating windows, until the user closes them. The exception to this rule is the Update Nag, which acts like a MacOS Nag Window, if the user assumes that the entire Macintosh diagram takes place inside an MDI box. Note particularly that this indicates that the Update Nag may be maximized in the Windows environment. Although the basic concept of Nag Schedules was introduced above, a more detailed discussion of Nag Schedules at this point would facilitate the understanding of certain aspects and features of the software according to an exemplary preferred embodiment of the present invention. In the Eudora e-mail software, each schedule is a set of numbers representing (save for the last) the number of days since a given date (the Nag base). The software provider further must keep track of the last time the user was nagged (the last lag). Note that both the Nag base and last Nag should be tracked separately for each type of Nag; the software provider must not mix values for Registration Nags and Update Nags, for example. The last number of the Nag Schedule is a repeat interval. Once the other Nags are all exhausted, the user is nagged each time this last number of days passes.
The best way to understand a Nag Schedule is to view the schedule as a timeline, as illustrated in Fig. 11. This particular timeline is for a Nag Schedule of [0,4,9,12,3]. Note that the Nags which will occur at the 15 and 18 day points are there because of the final number, the repeat interval (of 3 days). Thus, in Fig. 11, the user is due to be nagged if there is a Nag day greater than the last Nag and less than or equal to the current day. If more than one Nag day has passed, the user is still nagged only once.
It should be mentioned that once the Nag Window has been opened, the last Nag is reset to the current day. It should also be mentioned that a final Nag interval of 0 indicates that the Nag is not done any more after the defined period has expired. It will be appreciated that the Eudora e-mail software advantageously includes a software subroutine which determines whether any Nags are due at application startup and at the completion of each mail check. With respect to the latter case, the software checks the modification date on the Update Page once per week during a mail check. If the Update Page has been modified during the past week, the software provider will download update information during the mail check, and nag the user to update his/her software, e.g., the Eudora e-mail software. See Fig. 7B. Finally, it will be noted that when a user's state changes so that an open Nag is no longer relevant, that Nag is closed and no longer displayed.
The preceding discussion also touched briefly on various issues with respect to ads; these issues will be developed more fully immediately below. More specifically, the major client issues involving ads are how the software displays the ads, when the software displays the ads, how the software obtains the ads, how the software provider obtains and transmits demographic information, and how the software provider verifies that ads are actually being displayed.
Referring again to Fig. 3A, the main window of the Eudora e-mail software shows a squarish ad and three ad buttons in opposite corners of the main window. It should be mentioned that this particular squarish ad isl44 pixels high by 128 pixels wide; the software will accommodate ads as large as 144 pixels by 144 pixels. It will be appreciated that the area of the window usable by the mailboxes has been reduced approximately 38%; however, it will also be appreciated that the content area has been left untouched. Fig. 3B illustrates an alternative main window where a small graphic or placard is employed, e.g., in the lower right corner, to indicate that the main window is sponsored.
It will be appreciated that the actual information that the software provider can accept from advertisers will be relatively simple. For standard ads, such as that depicted in the lower left-hand corner of Fig. 3A, the ad will consist of an image file, e.g., a GIF file, a PNG file, a JPEG file, etc., of not more than 15K, and not more thanl44 pixels tall by 144 pixels wide. Preferably, this image file will employ the Web Safe Color Palette. This palette, which is sometimes to as the Browser-Safe Palette, contains only 216 colors out of a possible 256 colors definable by 8-bits. The remaining 40 colors vary on Macs and PCs. By eliminating the 40 variable colors, this palette is optimized for cross-platform use. Moreover, the image file advantageously will be associated with a single uniform resource name (URN) to which users who click on the ad will be directed. Each advertiser will also specify the desired scheduling information for the ad, as discussed in greater detail below. In order to facilitate the transmission of the ad to the software provider, e.g., QUALCOMM INCORPORATED, the advertiser may wrap the ad in HTML. The software provider advantageously can also employ HTML-wrapped ads, since this will allow the software provider to include ad parameters as META tags in the HTML page, specify the link address, etc.
Moreover, the Toolbar icons will be requested in GIF format as well, but will actually be delivered to the client in a composite format and transformed into standard icons. In addition, placards for sponsors of the Freeware version illustrated in Fig. 3B should be no more than 31 pixels tall, and on the order of 88 pixels wide, though the precise width can be varied at runtime.
It should be mentioned here that when the user clicks on an ad, the software provider will normally take the user to the software provider's click-through counter and then redirect the user's browser to the link listed with the ad. The click-through counter advantageously can be one of the software provider's servers, e.g., one of servers 302 and 303. It will be appreciated that this will require that the software provider will compose a URN which includes a server name, some tracking information, and the ultimate destination URN, and then the server will redirect the user's browser to the destination URN.
One complication occurs if the user is offline at the time that the click-through is attempted. When the user is offline, several possible actions by the software are possible. For example, the software could initiate an online session. Alternatively, the software could simply flag the link using the link history facility. See Fig. 12, which depicts a window/menu that the software maintains, similar to the history lists maintained by most browsers. When the ad is clicked while the software is offline, the software advantageously adds the link to the link history window, and flags this link so that the user knows he/she had wanted, but was unable, to visit that site during a previous e-mail session. Moreover, the software advantageously may be constructed to permit the user's browser respond to the click- through. It will be appreciated that some browsers have sophisticated features of their own for dealing with offline conditions, and the software provider shouldn't discount the idea that the user might wish to rely on them. Alternatively, the software may permit transmission of the link to the browser for subsequent handling by the browser when it is online, i.e., the software can allow the user to tell the software provider to send the link to the user's browser the next time he/she is online. In summary, the software provider will, in an exemplary and non-limiting case, mandate that the following standard for all advertisements submitted by advertisers:
< No larger than 144x144 pixels. Ads smaller than this will be centered in a 144x144 window and surrounded by the standard frame color.
( GIF or JPEG. The software provider advantageously can convert the
GIF file to a PhotoShop (PNG) file, but this is transparent. It should be noted that the software provider will not presently accept PNG ads directly, because of the gamma bugs in PhotoShop. ( No larger than 15K. This will reduce the bandwidth required to transmit the ad as well as the goodwill cost of user bandwidth.
( No animation. This is a cornerstone of the "unobtrusive" message to users aspect of exemplary embodiments of the present invention.
( A single URN of not more than 900 characters. There are suspected limits of IK on URN size. Limiting the customer's URN to 900 characters will allow the software provider to annotate the URN and still stay within the IK limit.
( A user-friendly title string of not more than 31 characters. This string will be displayed in the link history window, and should be something users will relate to. < Use Web Safe Color Palette. This 216-color palette optimized for users with 256-color systems, as mentioned above.
It should be mentioned that Toolbar buttons, i.e., the buttons in the upper right-hand corner of Fig. 3A have the same requirement as standard ads, except for the following: ( Both 16x16 and 32x32 sizes required. These are the sizes the client supports, the software provider needs them both.
< GIF only. The software will not render JPEG images in the toolbar. With respect to the co-brand spot ad illustrated in the lower right-hand corner of Fig. 3B, the spot has the same requirement as standard ads, except for the following:
( No larger than 95 pixels wide by 31 pixels high.
( GIF only. One troublesome issue regarding the ad placement illustrated in Fig. 3A is the relative ease with which a user might be able to hide the ads from view by placing a small window directly over the ad. Advantageously, the software performs a check to determine that the ad is both onscreen and uncovered. If the screen state does not satisfy both of these criteria, the software will either nag the user to uncover the ad or automatically re-order the windows so that the ad is uncovered. If the user persists in covering the ad for a predetermined period of time, the software will automatically devolve to freeware mode.
Since one of the major reasons for providing an Adware version of software such as the Eudora e-mail program is to provide a mechanism by which advertisers can subsidize the cost of the software, the software provider is clearly motivated to ensure that all Eudora users are actually looking at the ads. Stated another way, displaying an ad on the screen of the client computer 100a, for example, while the user is in another room does not justify the expense of the ad for the advertiser. For that reason, the software includes functions which permit measurement of the actual time that the user is in front of the computer while the ad is present.
Absent some sort of positive ocular fastening device, the best thing the software can do to measure user attention is to monitor for user input to the client computer 100a, thus verifying the user's presence in front of the display device 208. Given that the primary user input devices to the client computer 100a are the mouse 204 and the keyboard 203, the e-mail client will monitor for both mouse and keyboard operation by the user when the Adware version of the Eudora e-mail client is frontmost, and periodically report this activity back to, for example, the software provider. In other words, the user will be considered "present and accounted for" if the mouse moves significantly, if a mouse button states change, or if keys are pressed or released. Moreover, the software will consider a period before and after such an event as "face time" for the ad. In an exemplary case of the software according to the present invention, the software measures the period and refers to the total length of this period as kFacelnterval. There is no need to be overly precise about this value, e.g., a kFacelnterval of sixty (60) seconds, which begins with a user event, is employed in the exemplary, non-limiting case being discussed. Having discussed the format of the ads being displayed by the software, a detailed discussion of the methodology by which the ads are actually obtained for display will now be presented. The general methodology for obtaining ads for display is to connect to a QUALCOMM INCORPORATED site during a mail check, or some other time when the software senses a live network connection, and download ads into a local cache. It will be appreciated that the act of downloading the ad can be the trigger for billing the advertiser, in order to avoid the necessity of collecting billing information from individual clients. In contrast, proprietary systems such as that provided by JUNO, upload ad display data to the designated e- mail server whenever the user accesses his/her e-mail account for any reason.
In order to make reasonable decisions about how to download ads, the software provider needs to have some idea of what impact the ad downloads will have on users. In order to assess that impact, the software provider must make assumptions (or gather information) about what a typical Eudora user's habits are, and what the ads will be like in terms of transmission characteristics. Part of the Adware process is to add instrumentation in the software client so that the software provider can begin to answer these questions intelligently, rather than by guesswork. However, one must start with some basic assumptions. For example, Fig. 13A is a table listing the assumptions used in determining the impact of ad transmission on e- mail program operations; Fig. 13B is a table listing the bandwidth requirements in terms of the subscriber base versus of the number of new ads to be downloaded each day to the subscribers. The implications of these calculations are as follows. Given that the goal is for an average turnover of an ad is, for example, three days, the top line in the table illustrated in Fig. 13B would be the one used by the software provider. The worst-case, i.e., maximum bandwidth, scenario would be to turn over, for example, 25 ads a day. These values are highlighted in the table of Fig. 13B.
In order to determine what ads are to be shown for a particular user class, as well as in order to transmit particular ad parameters, the software provider advantageously employs a PlayList. The PlayList is in its essence a list of URNs from which to fetch the actual ads as well as a set of attribute-value pairs, on a per-ad basis. The exact format of the PlayList is discussed in greater detail shortly. PlayLists will specify the complete set of ads the client should have, along with parameters for displaying those ads, as discussed immediately below. It should be noted that ads may appear in a PlayList but not be scheduled for display for a long time (or even at all). The presence of such ads in the PlayList will cause the client to retrieve the ads for storage on the client for future display. The general requirements for the PlayList are as follows:
1) The request for a PlayList will contain information to help the PlayList server determine what ads a copy of Eudora is required to fetch.
2) The PlayList can also contain parameters for Eudora as a whole, including the ability to modify how often New PlayLists are checked for. 3) PlayLists are allowed to specify whether or not they should replace all older PlayLists or merely be merged with them. It should be mentioned that the merge function will allow a more web-like advertising model, e.g., a model employing a rotating ad pool, should the software provider choose to employ such a model. The basic ad fetch process will now be described while referring to Fig. 14, which is a state flow diagram of an exemplary ad fetch process according to the present invention, and Fig. 1. First, the client software running on client computer 100a identifies itself to the PlayList server 302, e.g., ads.eudora.com. The client software, e.g., the Eudora software, provides to the PlayList server 302 basic client information and the ID of the PlayList the client software currently has installed. The ads.eudora.com server responds with either an indication that the current PlayList is still valid, uses an Hyper Text Transfer Protocol (HTTP) redirect to send the client to a different PlayList server, e.g., another PlayList server 302', or responds directly with the New PlayList from PlayList server 302. See Fig. 14. In the event that the New PlayList is received from PlayList server 302, the client software compares the New PlayList with its current set of ads, and begins fetching ads not resident in the e- mail client's ad cache from one of more ad servers, e.g., the ad server 303 illustrated in Fig. 1, according to URNs included in the PlayList. The client software also deletes ads not currently appearing in the PlayList. Advantageously, the client software performs a check for a New PlayList every three days. It should be mentioned that the 3 day interval between PlayList checks is arbitrary and applicable only to the exemplary preferred embodiments of the present invention being discussed. It should also be mentioned that the ads preferably will be fetched as needed to fill the PlayList, possibly over many mail checks. Moreover, the ad fetch process will be limited to one minute per mail check, irrespective of the tasking of either the e-mail client software or the client computer 100a. After one minute, the client software will disconnect from the ad server 303. This will often mean that the e-mail client software has not filled the PlayList when the ad fetch operation is terminated. This is acceptable. The software will utilize the available ads while the remaining ads are being downloaded.
Furthermore, the software provider advantageously can provide for multiple servers on a peer with ads.eudora.com server 303. It will be appreciated that these servers will provide extra ads for some Eudora user communities, e.g., all of the users at a company serviced by one ISP, etc. Stated another way, an ISP which provides additional services such as local and long distance telephone access may wish to cross promote these services to its own customer base. Thus, the ISP advantageously can contract for such localized promotion. The PlayLists transmitted to the ISP's branded Adware e-mail clients would be linked to an ad server 303" maintained by the ISP in that instance.
Given a set of available ads, the software still needs to choose which ad to display next. It will be appreciated that this is a matter of much excitement in the Web ad industry, where many choices are allegedly made to maximize the profit of the advertiser. In particular, ads that generate better user response are preferred because such ads generate extra revenue - such ads are frequently tied to the content of the Web page upon which they are displayed. However, it is unlikely that either the software provider or the client software will be able to derive a significant benefit from the ad scheduling algorithms currently run on ad services. This is in part due to the fact that the ads being displayed by the e-mail client software are divorced from the content being displayed, i.e., neither the software provider nor the client software are cognizant of the content of any particular ad that the user is looking at, and in part due to the fact that the e-mail client software will be requesting ads in a batch for later display, rather than requesting them in "real time". As mentioned above, the PlayLists provide certain global inputs to the ad scheduling algorithm, including the parameters listed in the table immediately following.
Figure imgf000038_0001
In addition, the per-ad inputs in the PlayList associated with ad scheduling are set forth in the following table.
Figure imgf000038_0002
Figure imgf000039_0001
There are some values the software provider computes that are also input to the scheduling algorithm. These global values are listed in the table which follows.
Figure imgf000039_0002
The software also keeps track of and reports these values to the software provider for every ad:
Figure imgf000039_0003
Advantageously, the software provider implements three major states of the ad scheduler, the regularState, the runoutState, and the rerunState. In the regularState, the e-mail client software advantageously is showing regular ads and accounting for them. It will be appreciated that this is what actually generates charges for the bulk of the ads displayed on the e-mail client. In contrast, the runoutState is selected when the e-mail client software has shown enough regular ads to fill the assigned faceTimeQuota, and the ad cache includes one or more runout ads available for showing. In the rerunState, the e-mail client software has exhausted both its regular ad quota and the runout ads, i.e., the e-mail client software is now reshowing the regular ads, but the software provider is not charging for them.
It should be mentioned here that the software provider advantageously can provide a custom installer to various ISPs, book publishers, etc., that will label or brand the copies of Eudora that they have distributed. The software provider will then credit these distributors with a percentage of the ad revenue generated by the clients they distribute. It will be appreciated that these credits may be offset by cross promotional activities associated with each branded version of the Adware e-mail client, for the reasons previously discussed.
Given the discussion presented immediately above, a more detailed explanation of various aspects of the exemplary e-mail client software according to the present invention can now be provided.
As previously noted, the PlayList is a way to control the fetching and display of ads in software, e.g., in the Eudora e-mail client. The primary benefits associated with the PlayList are the separation of ad parameters from ad images, insulation of the Eudora client from intimate knowledge of ad image servers, and centralized server intelligence in ad distribution, without requiring user registration or centralized user databases. Thus, it will be appreciated that PlayLists are extremely malleable objects. In an exemplary case, the PlayLists can exert varying degrees of control over how the Eudora client behaves, from specifying the exact set of ads Eudora runs to simply transmitting abstract URNs which will choose their own ads. If PlayLists are used to their fullest advantage, they will give the software provider a powerful tool in controlling ad display in software such as Eudora; if PlayLists are later deemed irrelevant, the PlayLists cost the software provider one extra, brief network connection per day.
As discussed above with respect to Figs. 1 and 14, the client computer 100a connects to a PlayList server 302 (which may redirect to a different server 302') via a network 200. Then, the PlayList server 302 returns a PlayList to the client computer 100a via the network 200. Subsequently, the e-mail client software on the client computer fetches the ads specified in the PlayList.
The PlayList Request, which is sent by the Eudora client to the PlayList server 302 in order to initiate the ad fetch process, is not a simple burst of binary code. The PlayList Request is a block of extensible markup language (XML) code employed to provide the server 302 with sufficient information to build or select the proper New PlayList for the user. The information in the PlayList Request is shown in the following table.
Figure imgf000041_0001
Figure imgf000042_0001
Figure imgf000043_0001
It will be appreciated that not all of these parameters are likely to be actively used at the same time; some are present to support particular modes of operation (see below), and will not be used in other modes. It should be mentioned here that every PlayList Request is checksummed with MD5. See RFC1321 - "The MD5 Message-Digest Algorithm" at http://www.facs.org/rfcs/rfcl321.html. The PlayList server 302 preferably ignores requests that fail checksum verification.
After the client makes a PlayList Request, the server 302 replies with a PlayList Response. Preferably, the PlayList Response is divided into two major sections; the Clientlnfo section, which updates general client behavior regarding ads, i.e., speed with which the ads turn over, and the New PlayList itself, which describes the ads the client should fetch. It should be mentioned that the PlayList Server, e.g., server 302, may also return an empty response, meaning that the e-mail client should continue on its course with the ads it already has. It should also be mentioned that every PlayList Response is checksummed with MD5, just as the PlayList Request is. The MD5 digest is encoded in hexadecimal and put in a "CheckSum" header in the PlayList Response. Advantageously, the e-mail clients ignore PlayLists that fail checksum verification.
Before describing the sections of the PlayList Response, it should be mentioned that the e-mail client sometimes becomes, for lack of a better term, befuddled due to old client bugs, server bugs, etc. Sometimes the bad data inherited by even an updated client is too garbled for the system to function properly. While the client could be programmed to detect this condition, it is preferable to leave the task, i.e., error detection, to the server, which can be changed more easily. Thus, when the server detects that a client is "befuddled," the PlayList server 302 responds with just a single command: reset. No Clientlnfo should follow, no PlayList should follow, just the reset command. On receiving the reset command, the client discards its accumulated ad databases and records, including PlayLists, faceTime history, ad history, ad caches, etc. Everything is reset to the pristine condition that the e-mail client software had before the Adware software was run for the very first time. It should be mentioned that Link History is exempted from the reset command, both for reasons of practicality and because it is so user-visible. The only other item of ad data that reset does not affect is the ad failure counter, which should be retained across a reset. The client should then recognize that it has no PlayList, and make another request to the PlayList Server for the needed PlayList.
The Clientlnfo section updates various client parameters. The parameters are listed immediately below.
Figure imgf000045_0001
Figure imgf000046_0001
From the discussion above, it will be appreciated that the Clientlnfo section is a powerful feature of PlayLists. It allows the software provider to control the application in a global way, including segueing smoothly from one ad model to another. It will be appreciated that if this were the only benefit the software provider derived from PlayLists, it alone would make implementation of PlayLists worthwhile.
As mentioned above, the PlayList Response is divided into two major sections; the Clientlnfo section, which updates general client behaviors, and the New PlayList itself, which describes the ads the client should fetch. The New PlayList itself has one global value, PlayListlD. This id is the id value that the client returns to the PlayList server the next time the client computer 100a connects to the PlayList server 302. It will be appreciated that this PlayListlD advantageously can be included in the PlayList Request, or can be separately uploaded to the PlayList server in a myriad of forms, e.g., as a cookie. The remainder of the PlayList is a list of ads. Each ad is allowed to have many parameters, although it's likely not all of them will be used with any single ad, and it is possible that some of them will never be used at all. The parameters include the scheduling parameters, which are described in detail above, and ad information, which includes the information listed immediately below.
Figure imgf000046_0002
are an identifier unique to the server authority.
Title A human-friendly string used to refer to the ad.
Src A URN indicating where to get the actual ad to show. This might be h i g h l y s p e c i f i c ( e . g . , http://media48.doubleclick.net/eudora/coke/drinkcoke.gif) or it might be much more general
(e.g., http: //ads.doubleclick.net/eudora/ad;ord=136784421?). Another important PlayList feature is that the PlayList permits the client software to pull ads from many different servers. The software provider could, for example, run its own servers in parallel with those belonging to DoubleClick, and take ads from each server, or some of the servers, based on the PlayList.
There can be a checksum attribute on the src tag. If present, its value is a hexadecimal-encoded MD5 digest of the ad data. The client may check this checksum against the ad data.
IsButton Is this "ad" a toolbar button? If so, it will be scheduled separately from the main ads. The only scheduling parameters that are meaningful for toolbar buttons are startDT and endDT.
IsSponsor Is this "ad" a sponsor placard? If so, it will be scheduled separately from the main ads.
IsRunout Is this ad intended to be run after all other ads have exhausted their runs for a given day? There will only be one active isRunout ad in any client's collection of PlayLists.
URN The Uniform Resource Name of the server (e.g., a Web site address) to which the user is directed when he/she clicks on the ad. It should be mentioned that the term Uniform Resource Name (URN) indicates a generic set of all names /addresses that are short strings that refer to resources available via the Internet. Thus, URN encompasses both a Uniform Resource Locator (URL), which is subset of URN schemes that have explicit instructions on how to access a particular resource on the Internet, and a Uniform Resource Identifier (URI), which is another subset of URNs. It will be appreciated that the URL and URI subsets may overlap. It will also be appreciated that the terms URN, URL, and URI advantageously can be used interchangably; whichever term is used is meant to address the named resource in its broadest possible sense. It has been mentioned in passing that not all parameters are likely to be used at one time. In fact, PlayLists are flexible enough to support many ad models. PlayLists are crucial to some ad models, to others they are helpful but not central, to still others they are marginally useful, but do not present significant impediments. The use of PlayLists does not predispose the software provider towards any specific ad model; the PlayLists advantageously can be used to support any ad models that the software provider chooses. Indeed, PlayLists permit the software provider to switch between ad models midstream, should the software provider decide to do so. In the discussion that follows, several ad models will be discussed with respect to Figs. 16A and 16B in an effort to illustrate how PlayLists would be used for each ad model. It will be appreciated that this will demonstrate the essential neutrality of the PlayList concept to the ad model.
Fig. 16A illustrates the ad model associated with persistent ads while Fig. 16B depicts the parameters associated with a short-lived ad model. One thing to notice here is how few of the parameters from any of the sections appear in the chart. It will be appreciated that varying as few as five parameters advantageously causes the Adware to shift between these two distinct ad modes. That's because they are largely not relevant to the choice of ad model. The parameters will either be used or not, irrespective of the ad model. For example, the software provider can implement blank space after an ad in any model, and the software provider can eschew blank space after an ad in any model. Most of the parameters fall into this it-just-doesn't- matter category. With respect to the short-lived ad model, it will be appreciated that the software provider accepts many ads; either from many advertisers or only a few advertisers. Ads do not persist for many days; they're used up and discarded at a relatively rapid rate. In this model, PlayLists will be used additively. Each time the client runs low on ads, it will ask for another PlayList which will describe a few more ads to mix with the clients' existing ads. When ads exceed their allotted time, the ads are discarded. In this ad model, the PlayList server really only serves to transmit parameters for ads. However, that is acceptable, since the parameters have to be transmitted somehow, after all. Suppose the software provider wants to mix ad models, e.g., desires to provide a mix of long-running ads and short-lived ads. How this situation is handled depends on the stoichiometry. If the cache is or will be filled with mostly persistent ads and only a few short-lived ones, the software provider can merely increase the reqlnterval and use PlayLists as in the Persistent Ad Model. In other words, the software provider merely picks a few random ads to go on each PlayList, and picks a few more random ads to go on the next PlayList, which the client will fetch the next day. If, on the other hand, the cache will contain mostly short-lived ads and only a few persistent ads, the computer system 10 will use multiple PlayLists. One PlayList will list the persistent ads, as discussed above; the remaining facetime will be filled using PlayLists of short-lived ads.
The above discussion illustrates how PlayLists can be used to support widely differing ad models. The reason PlayLists can do this is that they're really only an extra level of server control and in between Eudora and its ads.
Given the importance of ads to Adware e-mail software, one of the software provider's key concerns is "what happens if the Adware does not receive ads?" For example, users or ISPs may simply shut off the flow of ads to Eudora by using firewalls or other means. Alternatively, the user may simply delete ads or Playlists (or both) from, for example, his/her computer on a random or periodic basis. If this happens, then users wil have no ads to display, i.e., the users get the full-featured version of Eudora without either seeing ads or paying. This would defeat one significant aspect of the exemplary software according to the present invention. On the other hand, users may have hardware or software problems or other issues that keep them from fetching ads, or the software provider's ad servers might even be down for some reason. Users should not be punished for this.
The software provider will distinguish between these two situations by asking a simple question, i.e., is the user sending or receiving mail? If the answer is yes, the software provider will assume that the blocking of ads is something the software provider needs to address. The way the software provider addresses this issue is with an escalating series of Ad Failure Nags. These will continue for two weeks or until the software receives ads. For every two days the software does receive ads, the software will decrement the Ad Failure Nag timer by one day. If the timer runs out, the software will display an apology to the user, revert to the Freeware version, and mark the user's software as owned by a Deadbeat User. Deadbeat Users will only be allowed to return to Adware if the ad server can be connected to at the time the user attempts to return to Adware. See Figs. 17A -17C. It should be noted that if the software provider should ever decide to retire Eudora and wish to let people use it without ads, the software provider can simply publish a permanent registration code.
Alternatively, the e-mail client advantageously includes several more sophisticated functions for determining that an ad failure condition requires the employment of the Ad Failure Nag discussed above. For example, the client device can identify an ad download failure condition when a corresponding ad download function has failed to downloads during a predetermined period of time. In addition, the e-mail client device can identify an ad display failure condition when a corresponding ad display function has failed to display ads for a predetermined time period, e.g., the time(s) specified in the New PlayList received from the PlayList server and /or the current PlayList(s) stored for use by the e-mail client device. Either condition invokes the Ad Failure Nag function discussed above.
One of the things the software provider will need to know is that the ads the software provider thinks are being displayed are actually being displayed, thus confirming that the ads are being displayed as frequently and for as long as the software provider thinks they are being displayed. It will be appreciated that this will be crucially important to maintaining credibility with advertisers. An exemplary audit scheme contains the following features: ( Keep a rotating log of ad displays. This log will be rolled over once per week. The log will record ad-related events—when an ad was displayed, when it was removed, and when it was clicked on—in addition to other events, like cumulative face time in Eudora, cumulative run time, etc. ( At random, ask the user for permission to transmit the log. At a frequency of one out of every hundred users per month, ask for the user's permission to return the log to the software provider. If the permission is given, the log will be formatted in ASCII, placed in an outgoing message, and queued. The user will be given the opportunity to inspect and, if he/she desires, cancel the log collection. See Fig. 18A.
( For selected users, deliver a pastry. In addition to the random send of the log, the software provider will also, at random, ask particular users for their permission to audit transactions in detail with the server. This will allow the software provider to correlate client and server behavior. Additional details on instrumentation applicable to the exemplary Eudora e- mail client software is provided in Figs. 18B -18E.
The various state flow diagrams illustrated, for example, in Figs. 5A, 6A, 7A, 8 and 9, referred to a plurality of web pages, i.e., HTML pages that can be accessed and retrieved from one of the software provider's servers, e.g., registration server 301. See Fig. 1. The general purposes of these pages and the URNs which the software uses to access these pages will now be described in greater detail below.
It will be appreciated that it will be helpful for the client to give the server information to help the server direct the user to the proper location or to assist the user by prefilling certain items on Web page based forms. That is the function of the query part of the URNs. The elements that might go in query parts are listed below. It will be noted that the query parts are divided into two groups. The first group includes items which are considered personal, and great care should be taken to transmit them only when appropriate; the second group includes items which are not considered to be privacy-sensitive.
Figure imgf000051_0001
Figure imgf000052_0001
Figure imgf000052_0002
Figure imgf000053_0001
Typically, all of the software provider's non-ad URNs begin with: http: //jump .eudora.com /jump.cgi?action=whatever
The "action" value determines what function the user wishes to perform. The software provider then appends various other query parts to the URN, suitably %-escaped, i.e., separated by a percentage (%) or ampersand (&) symbol (for example), according to the chart illustrated in Fig. 19. A brief discussion of each type of web page referenced in Fig. 19 is provided immediately below.
Figure imgf000053_0002
Figure imgf000054_0001
Figure imgf000055_0001
Having discussed the client side of the overall system illustrated in Fig. 1, is it now time to turn to the server side of the system. The network will not be discussed in detail, however, as it is something well known in the art.
In particular, the PlayList Server (PLS) or Servlet, i.e., the applet responding to the PlayList Request, shall now be described in detail. The PLS is a server side program which services HTTP requests and returns HTTP responses. It will be appreciated that each request launches a different thread, and that the data format of communications between the client and the PLS is XML-encoded in the exemplary embodiment. The PLS advantageously can be instantiated using the following Java® packages.
PKG DESCRIPTION USAGE
XP XP is an XML 1.0 parser written in The PLS uses the XP Java. The parser checks a given XML parser for: document for well-formedness and 1. parsing the client validity. Additional information is request to ensure that available from it is valid. http://www.jclark.com/xml/xp/. 2. parsing the PlayList Response to ensure that it is valid
SAX SAX (Simple API for XML) is a The PLS uses the SAX standard interface for event-based interface both in the XML parsing, the parser reads the XML request and the XML document line by line and XML response. In the initiates events that contain request, the PLS information about the line that was "looks" for specific just read. The PLS listens to particular tags to build the events of interest and extract the data request object. In the from the XML document in that way. response, the PLS Additional information is available sends events to from generate the PlayList http://www.megginson.com/SAX/ XML response.
MM.MySQL MM.MySQL is a Java Database The PLS use the JDBC Connectivity (JDBC) Type-4 driver, methods to: 1. i.e., an all-Java driver that issues Establish connection(s)
Figure imgf000057_0001
What follows is an explanation of task flow in the PLS when the Servlet doPost method is invoked. See Fig. 20. The PLS parses the XML request and builds objects that represents the client update request. It will be noted that data access is performed using SAX. When logging the client request, the PLS stores the client request information in a so-called ClientUpdate table (not shown).
It will be appreciated that the PlayList Request can be received from a plurality of e-mail clients residing on the client computers generally denoted lOOn through any given day. When issuing the same SQL statement repeatedly, it will be appreciated that it is more efficient to use a Prepared Statement rather then generating a new Statement in response to a query. In the logging operation, the software provider advantageously can employ the following semantic to avoid repetitive Statement generation: PreparedStatement ps = conn.prepareStatement("INSERT INTO ClientUpdate
(date, userAgent, PlayListId,Y) values (?, ?, ?, ?,..)");
It should be mentioned that in generating a New PlayList, the Servlet advantageously can employ both SQL queries and programming filtering. It will also be appreciated that these processes are synchronized in order to prevent conflicts when accessing the database. Appropriate pseudo code of generating a PlayList is depicted in Figs. 21A and 21B. The first block of pseudo code in Fig. 21A generates an ad list. It will be appreciated that the ad list generated by the first block of pseudo code holds all the image ads that are active and can be delivered within a predetermined time frame. The second block of pseudo code listed in Fig. 21A calculates the time needed to deliver the ads. The third block of pseudo code, which is illustrated in Fig. 21B, determines additional ads which can be used to fill the available facetime. In other words, if the e-mail client software has remaining time to fill, the generated PlayList will automatically fill the available time with runout ads, i.e., find a run out ad which is not in the ads history and which also fits into the Goal show time left.
When generating XML, it is often useful to generate comments, processing instructions, and so on. The package XP Writer provides a set of methods for creating specific kinds of nodes in the output XML code, i.e., file. The following is a short list of methods PLS employs in generating the XML output. ( Starts an element - start-tag
( Ends an element - end-tag or close the current start-tag as an empty element.
( Attribute add attributes to a tag name value pair format
( Comments writes a comment The PLS stores the information generated in response to a request in two tables, a PlayList general response table, which holds the client info section and PlayList general information, and a PlayList specific response, which holds the entry section. It will be appreciated that the PLS advantageously can use the prepared statement API to optimize performance in response to a query.
Referring again to Fig. 20, that figure illustrates a class diagram which advantageously describes the representation and rendering of the PlayList, as will as the PlayList Response. It will be appreciated that this class diagram includes repeated XML Write method calls; these method calls are employed by PLS to generate the XML tags associated with the PlayList.
Turning now to Fig. 22, that figure illustrates the major PlayList Servlet Classes, which collectively define the PlayList Servlet. More specifically, the PlayList Request class handles the request and subsequently maps the XML request to the ClientUpdate object while the PlayListResponse class handles the response and writes the clientUpdateResponse back to the client. In addition, the PlayListsGenerate class generates the PlayLists while the DBManager class handles the Data Base connection pool. Additional details are readily apparent from Fig. 22. It will be appreciated from Fig. 23 that all of the storage operations employing the database advantageously can be threaded. As mentioned above, all actions with respect to the database are performed the MM.MySQL package.
In summary, one exemplary embodiment of the present invention encompasses software for converting a general purpose computer into a specialized PlayList server for supplying a PlayList Response to a client device for exchanging information with an information server system over a communications network and storing ads. More specifically, the software instantiates a PlayList Response generation function for generating a PlayList Response identifying a plurality of selected ads to be presented by the client device, and a first communications function that completes a PlayList Response send communication link with the client device via the communications network over which the PlayList Response is transmitted to the client device, wherein the information server system and the PlayList server are independently controlled. It will be appreciated that, while the PlayList directs the presentation, e.g., display, of ads on the client device, e.g., an e-mail client, the ads advantageously may be delivered to or retrieved by the client device in any number of ways in this preferred embodiment. In this exemplary embodiment, the PlayList Request preferably includes ad identifiers and ad presentation instructions; corresponding uniform resource names (URNs) can be included but may be omitted. According to another exemplary embodiment, the present invention encompasses software for converting a general purpose computer into a specialized PlayList server for supplying a PlayList Response to a client device exchanging information with an information server system and receiving ads from an ad server over a communications network. The software advantageously includes a PlayList Response generation function for generating a PlayList Response identifying a plurality of selected ads to be presented by the client device, and a first communications function that effects a PlayList Response send communication link with the client device via the communications network over which the PlayList Response is transmitted to the client device. Preferably, the information server system and the PlayList server are independently controlled. It will be appreciated that this exemplary and non-limiting embodiment of the present invention contemplates a specific communications channel between the client device and a dedicated ad server (system) for delivery of ads defined by the PlayList. It will also be appreciated that the PlayList Request employed by this exemplary embodiment includes both information dictating presentation of the ads and /or operation of the client device with respect to ad presentation functions, and the name and URN for ads included in a New PlayList.
According to yet another exemplary embodiment, the present invention provides software for converting a general purpose computer into a specialized PlayList server for supplying a PlayList Response to a client device exchanging information with an information server system and receiving ads from an ad server over a communications network, including:
( a PlayList Response generation function for generating a PlayList Response identifying a plurality of selected ads to be presented by the client device,
( a PlayList Request parsing function for extracting selected information from the PlayList Request; ( a PlayList generation function receiving an output of the database driver function for generating a PlayList for inclusion in the PlayList Response which
£Sk ά ΛK*ι£xwacn*m*f» t identifies a plurality of selected ads to be presented by the client device in response to receipt of a PlayList Request,
( a selected information supply function for supplying the selected information to the PlayList Response generation function to thereby initiate the PlayList generation function,
( a first communications function that effects a PlayList Response send communication link with the client device via the communications network over which the PlayList Response is transmitted to the client device, and
( a second communication function that effects a PlayList Request receive function with the client device via the communications network, wherein the information server system and the PlayList server are independently controlled.
Preferably, the PlayList Request parsing function includes an extensible markup language (XML) parsing function for verifying the wellformedness of the PlayList Request, a PlayList analysis function receiving the PlayList Request after verification by the XML parsing function for generating an object, and a database driver function receiving the object for building a query from the object and applying the query to a PlayList server database.
It should be noted that the PlayList Response generation function is initiated by receipt of a PlayList Request, which, in an exemplary case, includes the name of the current PlayList(s) employed by the client device providing the PlayList Request. While each of the numerous client devices connected to an information server generate a PlayList Request, the discussion of this specific aspect of the present invention, i.e., the PlayList server, can best be understood from the point of view of a system including only one client device; the actual implementation of the, for example, e-mail client device contemplates the use of thousands of client devices.
The PlayList Request advantageously can include information regarding the currently running PlayList(s) on the client device, and user data fields that store data regarding the progress made by the client device in presenting, e.g., displaying, the ads stored by the client device. An exemplary and non-limiting list of the information that can be provided to the PlayList server via the PlayList Request includes: ( a first user data field identifying a current PlayList;
( a second user data field identifying user demographic data;
( a third user data field identifying user/client device behavior data;
( a fourth user data field identifying usage history of the client device; ( a fifth user data field identifying the respective software operating on the client device;
( a sixth user data field identifying the respective operating system of the client device;
( a seventh user data field identifying the amount of time the user has used client device over a prescribed time interval;
( an eighth user data field identifying the total amount of display time required for the stored ads that remain to presented by the client device;
( a ninth user data field identifying the total amount of times that ads were presented by the client device during the prescribed time interval; ( a tenth user data field identifying the dimensions of a display screen associated with the client device; and
< a list of the ad identifiers corresponding to advertisements that have been displayed in the prescribed most recent time interval.
Advantageously, the PlayList Request parsing function can extract selected information from the PlayList Request and employ the selected information and other information, e.g., information provided by the entity controlling the PlayList server, in generating the PlayList Response. It will be appreciated that the PlayList Request may include all or a subset of the information listed immediately above; the PlayList Request parsing function extracts information contained in at least one of the user data fields. In any event, the receipt of the PlayList Request by the PlayList server initiates generation of the PlayList Response.
In response to the PlayList Request, the PlayList Response generation function generates one of an action command and the PlayList Response. With respect to the former, the PlayList Response generation function advantageously can generate the action command in response to receipt of a garbled PlayList Request. This can be generally thought of as an error code directing the client device to send a New PlayList Request. It will be appreciated that the action command can include an associated error message, which is presentable to the user by the client device. Alternatively, the action command may cause the client device to delete all of the ads received and /or stored by the client device responsive to a command issued to the PlayList server by an entity controlling the PlayList server. In other words, there are times when the software provider may wish to flush the existing ads; the entity controlling the PlayList server, e.g., the software provider, sends a command to the PlayList server, which command causes the PlayList server to respond with a flush command to either specific PlayList Requests, e.g., PlayList Requests generated by a particular software version, of all PlayList Requests. With respect to the latter, a detailed discussion follows.
As discussed above, the PlayList Response advantageously includes both client information, information regarding how the client device, e.g., a PDA device, is to present, e.g., display, the selected ads, i.e., the ads that during the time period following receipt of the PlayList Response by the client device, and a New PlayList. For example, selected parameters included in the client information advantageously can switch the client device from between a persistent presentation mode and a short-lived presentation mode of presenting the ads. The client information can, in an exemplary case:
( control the turnover rate of the ads presented by the client device; ( specify the periodicity at which the client device generates the PlayList
Request;
( establish a minimum time separation between competing ones of the ads;
( establish specifications directing the manner in which the client device is to present each of the ads. For example, when the ads available to the client device include both current ads (paid ads) and expired ads (free ads), the client information includes a minimum time period during which the client device presents the current ads before the client device presents the expired ads. The client information may also establish a maximum time period during which the client device is permitted to present the expired ads. In any event, the PlayList Response advantageously may include commands or selected parameters which direct the client device to either concatenate the New PlayList to the current PlayList(s) or discard the current PlayList(s) in favor of the New PlayList. The command, or the selected parameters, controlling this facet of the client device operation is executed upon receipt of the PlayList Response by the client device over the effected communications link.
The New PlayList included in the PlayList Response includes a name and a corresponding Uniform Resource Name (URN) for each of the selected ads. It will be appreciated that the URN can correspond to one of a storage location of the respective named ad on an ad server or a location on the ad server redirecting the client device to a location on another storage device for the respective named ad. Alternatively, the URN specifies a location on the ad server redirecting the client device to an ad storage location collocated on the ad server for the respective named ad. It should be mentioned at this point that, in addition to the name and URN of each of the selected ads, the New PlayList may also include information identifying an ad type, i.e., postage stamp ad, toolbar ad, or placard ad, for each one of the respective selected ads. It should be noted that in at least one exemplary embodiment of the present invention, the PlayList server instantiated by software stored on the server computer 302 advantageously responds to a PlayList Request written, i.e., coded, in extensible markup language (XML). One of ordinary skill in the art of documents generated in XML will appreciate that these documents, e.g., the PlayList Request, advantageously can have an associated document type definition (DTD). In order to optimize system performance, the PlayList server should have the DTD available, i.e., available to the PlayList Request parsing function. There are several options for ensuring that the DTD is available to the PlayList server. First, the DTD for each of different types of client devices, e.g., e-mail client device or PDA, is stored by the PlayList server. In that case, the PlayList Request need only include a DTD tag, which identifies the particular DTD to be employed by the PlayList Request parsing function. Second, the DTD advantageously can be embedded in the PlayList Request. In either case, both the PlayList server and the client device implicitly use the same DTD.
It should be mentioned that the software provider should make provisions with respect to ad security. There are really two security issues to consider. One is whether or not the client is getting valid ads (call this client security), and the second is whether or not a valid client is fetching ads (call this server security). Client security is of relatively small importance. If a given person manages to trick Eudora into displaying some ads other than those transmitted by the software provider, it probably doesn't matter a great deal. This is not to say that it could not become problematic if large numbers of clients at one or more sites began doing it; however, a carefully worded license agreement should make at least large sites avoid actions which would cause this particular problem. However, to avoid trivial attacks, PlayLists and ads advantageously can be checksummed with MD5 (or another mechanism), and the checksums recorded in the PlayList. Then the client can checksum the PlayList and ads using the same secret seed, and compare its checksums to those in the PlayList. If it fails to get the proper ads, this will be treated as a failure to get ads at all.
Server-side security is potentially a much bigger problem. The software provider intends to charge advertisers for ads, based on the understanding that the software provider's users will actually see the ads the software provider is charging for. To do this with confidence, the software provider should ascertain that it is actually Eudora that is downloading the ads, and not some rogue process written to fetch many ads. Why would someone bother to fetch ads? While the software provider can't discount the "because they can" motivation of the amateur hacker, the real issue is the ad revenue, i.e., ad bounty. Because every ad fetch can generate revenue for a third party, there is a very significant financial incentive for that third party to cause a lot of ad fetches. It thus becomes imperative that the software provider prevent (and/or detect) ad fetches not made by copies of Eudora. Given that such fetches may be in violation of the agreement the software provider signed with the distributor, these fetches could constitute a form of fraud. There are several different approaches to fraud detection which advantageously can be implemented in the software running, for example, on Ad server 303. Whatever method the software provider eventually uses to prevent fraud, it will be important also to detect fraud should it occur. There are two broad classes of fraud detection; authentication and statistical analysis. Authentication is easily understood; if the program fetching the ads fails to prove that it is a valid copy of Eudora, the software provider will be alerted to possible fraud. However, authentication provides challenges of its own, and may be impossible or impractical or simply unnecessary.
Statistical analysis has some significant benefits, but also significant drawbacks. The benefits include minimal work in the client (and hence no vulnerability to disassembly, etc.), no run-time burdens on either the client or the server, i.e., everything can be done "after the fact" during accounting runs, easily changeable from the software provider's end, ability to be applied retroactively, etc. The drawbacks to statistical analysis include that statistical analysis will never be entirely certain, and that the software provider may not collect the proper statistics, etc.
A listing of parameters or statistical measures that the software provider may gather or compute is presented immediately below.
Figure imgf000066_0001
Figure imgf000067_0001
Given the raw data available from monitoring the parameters listed above, the following is an exemplary and non-inclusive list of possible statistical measures which can be generated.
Figure imgf000067_0002
One of the issues which the software provider must be very cognizant of is the protection of the user's privacy, i.e., the user generally does not want to receive ads based on information that the user unknowingly submitted to the software provider. There is an extremely vocal and paranoid subset of the user community, who object to practically all forms of information gathering, even the most benign. Even relatively innocent devices like serial numbers are considered something to be completely avoided. While the serial number of a software program may seem like a trivial matter to the software supplier, users who object to this type of "tagging" exist, and the software provider should be cognizant of such users. In order to avoid such concerns to the maximum extent possible, the software provider should adopt a Confidential Information Policy which includes the following provisions:
( Obtain Permission - Before the software provider gathers or transmits any data that might identify the user to the advertiser, the software provider should obtain the user's explicit (See Fig. 18 A) or near-explicit permission. The term near- explicit is employed to denote that the software provider may, for example, put a special privacy warning in the web page where the user registers a software program such as Eudora. Here, the user is clearly taking an action to submit data to the software provider; as such, explicit permission shouldn't be needed. On the other hand, the software provider should go out of its way to identify areas where an unreasonable user might be able to claim that he/she didn't know he/she was giving information to the software provider, and ask for explicit permission there, even if it seems relatively obvious to the software provider. ( Data Separation - Insofar as possible, the software provider should maintain payment information separate from registration information, and both types of information should be maintained separate from demographic information, etc. While it may be very tempting to correlate databases, the software provider faces potential crucifixion if the databases are actually correlated. Moreover, since the software provider can still deliver very targeted advertising without database correlation, the software provider should maintain separate databases.
( User Verifiability - Insofar as possible, protections established by the software provider should be verifiable by end users with packet sniffers. The software provider may even encourage the practice of watching the software's, e.g., Eudora's, actions. It is one thing to say "The software provider does not give your personal data to advertisers;" it is quite another for the user to be able to verify that this is the case.
( Strong Public and Private Commitment - The software provider needs to be clear and public with its privacy policies, and the software provider needs to respect them internally. If the software provider merely views privacy as something the software provider must do to avoid adverse press coverage, the software provider will do it poorly and wind up in trouble. In summary, the present invention encompasses a multi-moded software product, e.g., e-mail software, which includes three "self-contained" different versions (or, "modes"), including a "first full feature set" version which is activated when the software product is paid for by the user (i.e., a "Payware version"), a "second full feature set" version which is activated when the user agrees (e.g., either by default or by explicit agreement) to accept advertisements delivered to the client device in order to subsidize the software product (i.e., an "Adware" version), and a "reduced feature set" version which is activated when the software product is not paid for (i.e., a "freeware" version) and the "second full feature set" version is not activated. The present invention also encompasses a system and method for automatically distributing advertisements to a multiplicity of client devices that have such multi-moded software installed thereon. It will be appreciated that the first and second full feature sets are identical with respect to e-mail support features; it will also be appreciate that the second full feature set includes PlayList and ad fetching and display features which are dormant in the first full feature set.
Moreover, the present invention further encompasses multi-moded software as set forth above, wherein the multi-moded software includes a mode switching function which automatically switches from the "Adware" version to the "freeware" version upon detecting a prescribed condition (e.g., based upon monitored user activity level, and/or less than a prescribed number of ads having been downloaded, i.e., "deadbeat user" criterion). The present invention also encompasses a system and method for automatically distributing advertisements to a multiplicity of client devices that have such multi-moded software installed thereon.
It will be appreciated from the discussion above that the present invention further encompasses multi-moded software as set forth above, wherein the multi- moded software includes a mode switching function which automatically switches from the "Adware" version to the "freeware" version upon detecting occurrence of a prescribed "ad failure condition", e.g., less than a prescribed number of ads having been received and /or displayed by the client device within a prescribed time period, and an "Ad Failure Nag" function which monitors "time since last Nag" and which generates an "Ad Failure Nag" according to a "Nag Schedule" which is dynamically varied based on the monitored "time since last Nag" information and /or based on cumulative ad download /display statistics or information. The present invention also encompasses a system (and method) for automatically distributing advertisements to a multiplicity of client devices that have this multi-moded software product installed thereon. In one exemplary embodiment, the present invention further encompasses multi-moded software as set forth above, wherein the multi-moded software includes a Nag function which generates different types of Nags dependent upon the current mode of the software product which is currently activated, and/or based upon time since the last Nag was generated, and/or based on cumulative ad download /display statistics or information, and/or based on other monitored conditions. For example, the different types of Nags could include a "Registration Nag", a "Payware Nag", an "Adware Nag", an "Update Nag", and an "Ad Failure Nag". The present invention also encompasses a system (and method) for automatically distributing advertisements to a multiplicity of client devices that have this multi-moded software product installed thereon.
In another exemplary embodiment, the present invention encompasses a software product (e.g., e-mail software) that incorporates an automatic advertisement download function for automatically downloading advertisements to be displayed when the software is activated, and a control function for monitoring user activity levels and for controlling the display of downloaded advertisements at the client device based upon the monitored user activity levels (e.g., based upon "discrete" and/or "cumulative" ad display parameters). The present invention also encompasses a system and method for automatically distributing advertisements to a multiplicity of client devices that have this software product installed thereon. The present invention also encompasses an e-mail software product that incorporates a control function for automatically downloading advertisements from a remote server system which is separate and independent from the e-mail server system, as well as the system and method for automatically distributing the advertisements to client devices which have this e-mail software product installed thereon. In particular, the system includes an ad server system that manages, administers, and controls the distribution of advertisements, and which is controlled by a control entity (e.g., one operated by the present assignee, QUALCOMM INCORPORATED) which is separate and independent from the control entity which controls the e-mail server system which provides e-mail services to any particular client device which has this e-mail software product installed thereon. Thus, in sharp contrast to the Juno Online Services system, in accordance with this aspect of the present invention, the ad server system and the e-mail server system are operated independently, i.e., under the control of separate and independent control entities.
Advantageously, the present invention also encompasses a software product, e.g., e-mail software, which incorporates an automatic advertisement files download function for automatically downloading advertisements from a remote server system to a client device on which the software product is installed, and a control function for locally controlling the display of downloaded advertisements at the client device based upon ad parameters included in the downloaded advertisement files, e.g., including (for each ad), various combinations and sub-combinations of the following ad parameters, namely, the maximum ad display time, or face time, for any given display of that particular ad, the maximum total /cumulative ad display time, or face time, for that particular ad, the maximum number of times to display that particular ad per day, the date/time before which that particular ad should not run, and the date /time after which that particular ad should not run. The present invention also encompasses a system and method for automatically distributing advertisements to a multiplicity of client devices that have this software product installed thereon.
It will be appreciated that the present invention also encompasses a software product, e.g., e-mail software, which incorporates an automatic advertisement download function which fetches a PlayList from a remote server system (e.g., a PlayList server system) which specifies the advertisements to be fetched by the client device on which the software product is installed and the source addresses (e.g., URNs) of the ad servers on which the specified advertisements are stored, fetches the advertisements specified in the fetched PlayList, and stores the fetched advertisements on the client device. The present invention further encompasses a system and method for distributing advertisements to client devices which have this software product installed thereon, including a PlayList server (or PlayList server system) which, in response to a PlayList Request from a particular client device that includes a client PlayList identifier, compares a client PlayList identified by the client PlayList identifier with a current PlayList (which may optionally be customized to that particular client device) stored on the PlayList server, and then sends back to the client device a New PlayList which specifies the new advertisements to be fetched by the client device, and the source addresses of the ad servers on which the specified new advertisements are stored.
Optionally, the above-described automatic advertisement download function of the software product installed on the client device can delete (discard) all or PlayList server-specified ones of the advertisements which are currently stored on the client device, e.g., those which are not specified in the current PlayList; and /or the above-described automatic advertisement download function of the software product installed on the client device can merge the New PlayList with the current client PlayList. The present invention also encompasses several variations and details of implementation of this novel PlayList/ ad fetch process utilized in the Eudora Adware scheme. Moreover, the present invention encompasses a software product, e.g., e-mail software, which incorporates a custom installer which identifies the specific software product distributor that distributed that software product. The present invention further encompasses a software product, e.g., e-mail software, which incorporates an automatic advertisement download function for automatically downloading advertisements from a remote server system to a client device on which the software product is installed, and a custom installer which identifies the specific software product distributor which distributed that software product, for the purpose of facilitating apportionment of advertising revenue the software product vendor receives from advertisers to specific software product distributors. The present invention also encompasses a system (and method) for automatically distributing advertisements to a multiplicity of client devices which have this software product installed thereon, wherein the system includes a centralized control facility which receives software product distributor ID information from the client devices and uses this software product distributor ID information to facilitate apportionment of advertising revenue the software product vendor receives from advertisers to specific software product distributors. Alternatively, or additionally, a central database function which identifies (e.g., by means of cross-referencing and/or correlation tables) the software product distributor ID for each software product distributed by the software vendor, e.g., based on a serial number or reference code associated with each copy of the software product, can be utilized.
Furthermore, the present invention encompasses a software product, e.g., e- mail software, that incorporates an automatic advertisement download function for automatically downloading advertisements from a remote server system to a client device on which the software product is installed, and a control function which utilizes a built-in "deadman timer" to impose a time limit for each particular advertisement download session, e.g., the client device will be disconnected from the remote server system upon expiration of the time limit imposed by the "deadman timer". The present invention also encompasses a system (and method) for automatically distributing advertisements to a multiplicity of client devices that have this software product installed thereon.
It will also be appreciated that the present invention can be characterized as a software product, e.g., e-mail software, that incorporates an automatic advertisement download function for automatically downloading advertisements from a remote server system to a client device on which the software product is installed, and an instrumentation and auditing module having various novel features /functions, e.g., maintaining a rotating log of ad-related statistics and /or performing random and /or statistically-based ad effectiveness audits with user permission. The present invention also encompasses a system (and method) for automatically distributing advertisements to a multiplicity of client devices that have this software product installed thereon, wherein the system includes a centralized control facility for obtaining ad-related statistical information from selected client devices, in a random or statistical manner, e.g., for the purpose of monitoring the integrity and/or effectiveness of the advertisement distribution system.
Moreover, the present invention encompasses a software product, e.g., e-mail software, that incorporates an automatic advertisement download function for automatically downloading advertisements from a remote server system to a client device on which the software product is installed, and a "link history" function which enables the user to review previously-viewed advertisements, e.g., by providing a graphical user interface (GUI) which includes a link history window that lists links the user has previously visited and ads that have been previously displayed to the user, along with some status information on each. Preferably, a mechanism will be provided to enable the user to select an ad listed in the link history window for display, e.g., by single-clicking the appropriate ad link, and to enable the user to visit the source Web site of any given ad listed in the link history window, e.g., by double- clicking the appropriate ad link. The present invention also encompasses a system (and method) for automatically distributing advertisements to a multiplicity of client devices that have this software product installed thereon.
Furthermore, the present invention encompasses a software product, e.g., e- mail software, which incorporates a "Nag" function that monitors "time since last Nag" and that "nags" the user according to a "Nag Schedule" which is dynamically varied based on the monitored "time since last Nag" information.
Finally, the present invention encompasses a software product, e.g., e-mail software, that incorporates a download function that downloads separate file portions representing a single image during separate communication sessions with a remote server (e.g., separate file portions of an advertisement file, e.g., a GIF file). The present invention further encompasses a system (and method) for automatically distributing advertisements to a multiplicity of client devices that have this software product installed thereon. Although presently preferred embodiments of the present invention have been described in detail hereinabove, it should be clearly understood that many variations and /or modifications of the basic inventive concepts herein taught, which may appear to those skilled in the pertinent art, will still fall within the spirit and scope of the present invention, as defined in the appended claims.
We claim:

Claims

1. Software for use on a client device that is configured for communications with a multiplicity of other client devices via a communications network, comprising: a communications function that effects: a send e-mail communication link between the client device and an e-mail service provider server system via the communications network whenever the user desires to send e-mail messages; a receive e-mail communication link between the client device and the e-mail service provider system whenever the user desires to check for received e-mail messages; and an advertisement download communication link between the client device and an advertisement distribution server system via the communications system, at selected advertisement download times; an e-mail composition function for enabling a user of the client device to compose e- mail messages; an e-mail send function that enables the user to send e-mail messages to other client devices via the send e-mail communication link; an e-mail receive function that enables the user to receive e-mail messages from other client devices via the receive e-mail communication link; and an advertisement download function that downloads advertisements from the advertisement distribution server system via the advertisement download communication link; wherein the e-mail service provider server system and the advertisement distribution server system are separately controlled.
2. The software as set forth in Claim 1, wherein the advertisement distribution server system is controlled by a vendor of the software.
3. The software as set forth in Claim 1, wherein the communications network comprises the Internet.
4. The software as set forth in Claim 1, wherein the e-mail service provider system comprises a first e-mail service provider server system for storing and forwarding outgoing e- mail messages, and a second e-mail service provider server system for storing and forwarding incoming e-mail messages.
5. The software as set forth in Claim 4, wherein the first and second e-mail service provider server systems are the same.
6. The software as set forth in Claim 4, wherein the first and second e-mail service provider systems are separate.
7. The software as set forth in Claim 1, wherein the software is e-mail service provider-independent.
8. The software as set forth in Claim 1, wherein the selected advertisement download times include times when the client device is online for the purpose of sending and/or receiving e-mail messages.
9. The software as set forth in Claim 1, further comprising a viewer function that enables the user to read e-mail messages when the client device is offline with respect to the e-mail service provider server system.
10. The software as set forth in Claim 1, further comprising: an advertisement storage function for storing downloaded advertisements on a persistent storage medium within the client device; and an advertisement display function that displays one or more selected ones of the stored advertisements.
11. The software as set forth in Claim 1, further comprising: an advertisement storage function for storing downloaded advertisements on a storage medium within the client device; and an advertisement display function that displays one or more selected ones of the stored advertisements, while the user is composing and/or reading e-mail messages.
12. The software as set forth in Claim 11, wherein the advertisement display function controls the display of the stored advertisements in accordance with ad display parameters prescribed by the advertisement distribution server system, which ad display parameters are unknown to the e-mail service provider.
13. The software as set forth in Claim 12, further comprising a user activity monitor function that is activated when the software is operating in the first operating mode, wherein the user activity monitor function generates user activity information that is used by the advertisement display function in controlling a duration for which advertisements are displayed.
14. The software as set forth in Claim 1, wherein the software is subsidized by revenues attributable to the downloaded advertisements.
15. The software as set forth in Claim 1, wherein the advertisement download function does not mandate that the selected advertisement download times have a one-to-one correspondence with times when the client device is online for the purpose of sending and/or receiving e-mail messages.
16. The software as set forth in Claim 1, wherein: the send e-mail communication link and the receive e-mail communication link can be the same communication link or different communication links; and the advertisement download communication link is not the same communication link as either the send e-mail communication link or the receive e-mail communication link.
17. The software as set forth in Claim 1, wherein the selected advertisement download times comprise times when the client device is online for purposes other than sending e-mail messages or checking for received e-mail messages.
18. The software as set forth in Claim 1, wherein the e-mail service provider is an Internet Service Provider.
19. The software as set forth in Claim 1, wherein the software is compatible with a plurality of e-mail service providers.
20. The software as set forth in Claim 1, wherein the software is not tied to a particular e-mail service provider.
21. The software as set forth in Claim 1, wherein the software is operational across a plurality of different e-mail systems.
22. The software as set forth in Claim 1, wherein the e-mail service provider system and the advertisement distribution server system do not communicate with one another.
23. The software as set forth in Claim 1, wherein the e-mail service provider system and the advertisement distribution server system are not coupled to one another.
24. The software as set forth in Claim 1, wherein the e-mail service provider system and the advertisement distribution server system are not interconnected.
25. The software as set forth in Claim 1, wherein the e-mail service provider system and the advertisement distribution server system do not function in a cooperative manner.
26. The software as set forth in Claim 1, wherein the e-mail service provider system and the advertisement distribution server system are uncoordinated.
27. The software as set forth in Claim 1, further comprising a custom installer function that generates a distributor ID that identifies a distributor that distributed the software for use on the client device.
28. The software as set forth in Claim 27, further comprising a client information transmit function that transmits the distributor ID to a prescribed server to be used in apportioning advertising revenue attributable to the software distributed by that distributor.
29. The software as set forth in Claim 28, wherein the prescribed server is associated with the advertisement distribution server system.
30. The software as set forth in Claim 28, wherein the distributor is an Internet Service Provider.
31. The software as set forth in Claim 28, wherein the distributor is an e-mail service provider.
32. The software as set forth in Claim 31, wherein the e-mail service provider is an Internet Service Provider.
33. The software as set forth in Claim 27, further comprising a client information transmit function that transmits the distributor ID to a prescribed server operated by the producer of the software to be used by the producer of the software in apportioning advertising revenue attributable to copies of the software distributed by that distributor.
34. The software as set forth in Claim 1, wherein the advertisement distribution server system includes: a plurality of ad servers, each of which stores one or more of a plurality of advertisements to be downloaded, each advertisement being stored in a storage location designated by a URI; and at least one playlist server which one of stores and generates at least one playlist, each playlist containing a list of ad identifiers and corresponding URIs that identify respective advertisements to be downloaded, and the corresponding storage location from which each respective advertisement can be fetched.
35. The software as set forth in Claim 34, wherein the advertisement download function includes: a client device playlist identification function that transmits an identification of a current playlist(s) currently being used by the client device to the at least one playlist server at prescribed playlist check intervals, wherein the at least one playlist server responds either by transmitting to the client device an indication that the current playlist(s) does not need to be augmented, or by transmitting to the client device at least one new playlist; and a playlist comparison function that compares the ad identifiers listed in the current playlist(s) with the ad identifiers listed in the at least one new playlist, and that generates a list of URIs of the advertisements corresponding to the ad identifiers in the at least one new playlist that are different from the ad identifiers in the current playlist(s); and an ad fetch function that fetches the advertisements corresponding to the generated list of URIs from the appropriate one(s) of the plurality of ad servers, over one or more advertisement download sessions.
36. The software as set forth in Claim 35, wherein the one or more advertisement download sessions coincide with the selected advertisement download times.
37. The software as set forth in Claim 36, wherein the selected advertisement download times span a plurality of online e-mail sessions during which the client device is online for the purpose of sending and/or receiving e-mail messages.
38. The software as set forth in Claim 36, wherein each of the prescribed playlist check intervals correspond to the first time that the client device goes online for the purpose of sending and/or receiving e-mail messages subsequent to the lapse of the current prescribed playlist check interval.
39. The software as set forth in Claim 38, wherein the advertisement download function further includes an ad fetch timer function that limits the duration of each advertisement download session to a prescribed maximum time period.
40. The software as set forth in Claim 36, wherein the prescribed playlist check intervals span a plurality of online e-mail sessions during which the client device is online for the purpose of sending and/or receiving e-mail messages.
41. The software as set forth in Claim 37, wherein the selected advertisement download times coincide with times when the client device is online for the purpose of sending and/or receiving e-mail messages.
42. The software as set forth in Claim 35, further comprising a playlist merge function that merges the current playlist(s) and the at least one new playlist.
43. The software as set forth in Claim 35, further comprising an ad deletion function that deletes from storage on the client device all advertisements corresponding to the ad identifiers in the current playlist(s) that are not contained in the at least one new playlist.
44. The software as set forth in Claim 35, wherein each advertisement download session is limited to a prescribed maximum time duration.
45. The software as set forth in Claim 35, wherein the advertisement download function further includes an ad fetch timer function that limits the duration of each advertisement download session to a prescribed maximum time period.
46. The software as set forth in Claim 1, further comprising an advertisement storage function for storing downloaded advertisements on a persistent storage medium within the client device.
47. The software as set forth in Claim 46, further comprising an advertisement display function for displaying the stored advertisements on the client device.
48. The software as set forth in Claim 47, wherein the advertisements comprise advertisement files each of which includes an advertisement and a plurality of ad display parameters associated with that advertisement.
49. The software as set forth in Claim 48, wherein the advertisement display function displays the stored advertisements according to the ad display parameters.
50. The software as set forth in Claim 49, wherein the advertisement download function downloads separate portions of a single advertisement file over two or more advertisement download sessions.
51. The software as set forth in Claim 50, wherein each advertisement includes an image.
52. The software as set forth in Claim 51, wherein each image comprises a GIF image.
53. The software as set forth in Claim 50, wherein each image comprises a PNG image.
54. The software as set forth in Claim 50, wherein each image comprises a JPEG image.
55. The software as set forth in Claim 49, wherein the ad display parameters include: the maximum time that the associated advertisement is to be displayed each time that it is displayed; the maximum cumulative time that the associated advertisement is to be displayed; the maximum number of times per day that the associated advertisement is to be displayed; the start date/time before which the associated advertisement should not be displayed; and the end date/time after which the associated advertisement should not be displayed.
56. The software as set forth in Claim 49, wherein the ad display parameters include at least one of the following parameters: the maximum time that the associated advertisement is to be displayed each time that it is displayed; the maximum cumulative time that the associated advertisement is to be displayed; the maximum number of times per day that the associated advertisement is to be displayed; the start date/time before which the associated advertisement should not be displayed; and the end date/time after which the associated advertisement should not be displayed.
57. The software as set forth in Claim 49, wherein the ad display parameters include at least two of the following parameters: the maximum time that the associated advertisement is to be displayed each time that it is displayed; the maximum cumulative time that the associated advertisement is to be displayed; the maximum number of times per day that the associated advertisement is to be displayed; the start date/time before which the associated advertisement should not be displayed; and the end date/time after which the associated advertisement should not be displayed.
58. The software as set forth in Claim 49, wherein the advertisements include main screen advertisements and toolbar advertisements.
59. The software as set forth in Claim 58, wherein the ad display parameters associated with each of the toolbar advertisements include: the start date/time before which the associated advertisement should not be displayed; and the end date/time after which the associated advertisement should not be displayed.
60. The software as set forth in Claim 48, wherein the advertisement download function downloads separate portions of a single advertisement file over two or more advertisement download sessions.
61. The software as set forth in Claim 48, wherein each advertisement includes an image.
62. The software as set forth in Claim 61, wherein each image comprises one of a GIF image, a PNG image, and a JPEG image.
63. The software as set forth in Claim 48, wherein each advertisement includes an image.
64. The software as set forth in Claim 63, wherein each image comprises one of a GIF image, a PNG image, and a JPEG image.
65. The software as set forth in Claim 47, wherein the advertisements comprise advertisement files each of which includes an advertisement.
66. The software as set forth in Claim 65, wherein the advertisement download function downloads separate portions of a single advertisement file over two or more advertisement download sessions.
67. The software as set forth in Claim 65, wherein each advertisement includes an image.
68. The software as set forth in Claim 67, wherein each image comprises one of a GIF image, a PNG image, and a JPEG image.
69. The software as set forth in Claim 47, wherein the advertisement display function controls the display of the stored advertisements in accordance with ad display parameters prescribed by the advertisement distribution server system.
70. The software as set forth in Claim 69, wherein the ad display parameters include: the maximum time that each stored advertisement is to be displayed each time that it is displayed; the maximum cumulative time that each stored advertisement is to be displayed; the maximum number of times per day that each stored advertisement is to be displayed; the start date/time before which each stored advertisement should not be displayed; and the end date/time after which each stored advertisement should not be displayed.
71. The software as set forth in Claim 69, wherein the ad display parameters include at least one of the following: the maximum time that each stored advertisement is to be displayed each time that it is displayed; the maximum cumulative time that each stored advertisement is to be displayed; the maximum number of times per day that each stored advertisement is to be displayed; the start date/time before which each stored advertisement should not be displayed; and the end date/time after which each stored advertisement should not be displayed.
72. The software as set forth in Claim 69, wherein the ad display parameters include at least two of the following: the maximum time that each stored advertisement is to be displayed each time that it is displayed; the maximum cumulative time that each stored advertisement is to be displayed; the maximum number of times per day that each stored advertisement is to be displayed; the start date/time before which each stored advertisement should not be displayed; and the end date/time after which each stored advertisement should not be displayed.
73. The software as set forth in Claim 69, wherein the advertisements include main screen advertisements and toolbar advertisements.
74. The software as set forth in Claim 73, wherein the ad display parameters include the following parameters associated with each of the toolbar advertisements: the start date/time before which the associated advertisement should not be displayed; and the end date/time after which the associated advertisement should not be displayed.
75. The software as set forth in Claim 1, further comprising an installer function for installing the software on a computer-readable storage medium.
76. The software as set forth in Claim 1, further comprising an installer function for installing the software on the client device.
77. The software as set forth in Claim 1, further comprising an installer function for installing the software on a computer-readable storage medium associated with the client device.
78. The software as set forth in Claim 1, wherein the software includes at least two operating modes, including a first operating mode in which the advertisement download function is activated, and a second operating mode in which the advertisement download function is not activated.
79. The software as set forth in Claim 78, wherein the software includes a first set of e-mail features when operating in the first operating mode, and a second set of e-mail features when operating in the second operating mode, wherein the first set of e-mail features is greater than the second set of e-mail features.
80. The software as set forth in Claim 79, further comprising a deadbeat user determination function that is activated when the software is operating in the first operating mode, wherein the deadbeat user determination function determines compliance with a prescribed ad display policy, and switches the operating mode of the software from the first operating mode to the second operating mode in response to determining non-compliance with the prescribed ad display policy.
81. The software as set forth in Claim 79, further comprising an adware nag function that is activated when the software is operating in the second operating mode, wherein the adware nag function generates an adware nag display that prompts the user to switch from the second operating mode to the first operating mode.
82. The software as set forth in Claim 81, wherein the software is advertiser- subsidized when operating in the first operating mode, and is not advertiser-subsidized when operating in the second operating mode.
83. The software as set forth in Claim 81, wherein the adware nag function generates the adware nag display at prescribed intervals for at least a prescribed period of time.
84. The software as set forth in Claim 81, wherein the adware nag display comprises an adware nag window that is displayed on a display device associated with the client device.
85. The software as set forth in Claim 84, wherein the adware nag window comprises a modeless window.
86. The software as set forth in Claim 79, further comprising a mode switching function for switching between the first and second operating modes.
87. The software as set forth in Claim 86, wherein the software is advertiser- subsidized when operating in the first operating mode, and is not advertiser-subsidized when operating in the second operating mode.
88. The software as set forth in Claim 79, wherein the default operating mode of the software is the first operating mode.
89. The software as set forth in Claim 88, further comprising a selector function that enables the user to select between the first and second operating modes.
90. The software as set forth in Claim 79, further comprising: a selector function that enables the user to select between the first and second operating modes; and a downgrade dialog function that is activated in response to the user selecting the second operating mode when the current operating mode of the software is the first operating mode, wherein the downgrade dialog function generates a dialog that is displayed on a display device associated with the client device to prompt the user to remain in the current operating mode.
91. The software as set forth in Claim 90, wherein the dialog includes a list of at least some of the e-mail features that are included when the software is operating in the current operating mode that will not be included when the software is operated in the second operating mode.
92. The software as set forth in Claim 79, further comprising: an advertisement storage function for storing downloaded advertisements on a storage medium associated with the client device; and an advertisement display function that displays one or more selected ones of the stored advertisements.
93. The software as set forth in Claim 92, further comprising: an advertisement download monitor function that is activated when the software is in the first operating mode, wherein the advertisement download monitor function determines whether or not an ad download failure condition has occurred, whereby the ad download failure condition occurs when the advertisement download function has not successfully downloaded advertisements over a prescribed time period; and an adware failure nag function that is activated when the software is in the first operating mode upon detection that an ad download failure condition has occurred, whereupon the adware failure nag function generates an adware nag failure display that notifies the user that advertisements have not been successfully downloaded, and that warns the user that the operating mode of the software will be switched from the first operating mode to the second operating mode if the ad download failure condition is not rectified.
94. The software as set forth in Claim 93, further comprising a mode switching function that switches the software from the first operating mode to the second operating mode upon expiration of a prescribed maximum ad failure time period.
95. The software as set forth in Claim 92, further comprising: an advertisement download monitor function that is activated when the software is in the first operating mode, wherein the advertisement download monitor function determines whether or not an ad download failure condition has occurred, whereby the ad download failure condition occurs when the advertisement download function has not successfully downloaded advertisements over a prescribed time period; and an adware failure nag function that is activated when the software is in the first operating mode upon detection that an ad download failure condition has occurred, whereupon the adware failure nag function generates an adware nag failure display at prescribed ad failure nag intervals, wherein the adware nag failure display notifies the user that advertisements have not been successfully downloaded, and warns the user that the operating mode of the software will be switched from the first operating mode to the second operating mode if the ad download failure condition is not rectified.
96. The software as set forth in Claim 95, wherein the prescribed ad failure nag intervals decrease over a time span between the initial detection of the ad download failure condition and the expiration of a prescribed maximum ad failure time period.
97. The software as set forth in Claim 96, further comprising a mode switching function that switches the software from the first operating mode to the second operating mode upon expiration of the prescribed maximum ad failure time period.
98. The software as set forth in Claim 96, further comprising: a deadbeat user alert function that generates a mode switch alert display upon expiration of the prescribed maximum ad failure time period, wherein the mode switch alert display notifies the user that the software is about to be switched from the first operating mode to the second operating mode, unless the user takes immediate corrective action to rectify the ad download failure condition; and a mode switching function that switches the software from the first operating mode to the second operating mode if the user does not take immediate corrective action in response to the mode switch alert display.
99. The software as set forth in Claim 95, further comprising a mode switching function that switches the software from the first operating mode to the second operating mode upon expiration of a prescribed maximum ad failure time period.
100. The software as set forth in Claim 95, further comprising: a deadbeat user alert function that generates a mode switch alert display upon expiration of a prescribed maximum ad failure time period, wherein the mode switch alert display notifies the user that the software is about to be switched from the first operating mode to the second operating mode, unless the user takes immediate corrective action to rectify the ad download failure condition; and a mode switching function that switches the software from the first operating mode to the second operating mode if the user does not take immediate corrective action in response to the mode switch alert display.
101. The software as set forth in Claim 93, further comprising: a deadbeat user alert function that generates a mode switch alert display upon expiration of a prescribed maximum ad failure time period, wherein the mode switch alert display notifies the user that the software is about to be switched from the first operating mode to the second operating mode, unless the user takes immediate corrective action to rectify the ad download failure condition; and a mode switching function that switches the software from the first operating mode to the second operating mode if the user does not take immediate corrective action in response to the mode switch alert display.
102. The software as set forth in Claim 92, further comprising: an advertisement download monitor function that is activated when the software is in the first operating mode, wherein the advertisement download monitor function determines whether or not an ad download failure condition has occurred, whereby the ad download failure condition occurs when the advertisement download function has not successfully downloaded advertisements over a prescribed time period; an e-mail function monitor function that determines whether or not an e-mail function failure condition has occurred, whereby the e-mail failure condition occurs when the software has not successfully sent and/or received e-mail messages over the prescribed time period; and an adware failure nag function that is activated when the software is in the first operating mode upon detection that an ad download failure condition has occurred and an e- mail function failure condition has not occurred, whereupon the adware failure nag function generates an adware nag failure display that notifies the user that advertisements have not been successfully downloaded, and that warns the user that the operating mode of the software will be switched from the first operating mode to the second operating mode if the ad download failure condition is not rectified.
103. The software as set forth in Claim 102, further comprising a mode switching function that switches the software from the first operating mode to the second operating mode upon expiration of a prescribed maximum ad failure time period.
104. The software as set forth in Claim 102, further comprising: a deadbeat user alert function that generates a mode switch alert display upon expiration of a prescribed maximum ad failure time period, wherein the mode switch alert display notifies the user that the software is about to be switched from the first operating mode to the second operating mode, unless the user takes immediate corrective action to rectify the ad download failure condition; and a mode switching function that switches the software from the first operating mode to the second operating mode if the user does not take immediate corrective action in response to the mode switch alert display.
105. The software as set forth in Claim 92, further comprising: an advertisement download monitor function that is activated when the software is in the first operating mode, wherein the advertisement download monitor function determines whether or not an ad download failure condition has occurred, whereby the ad download failure condition occurs when the advertisement download function has not successfully downloaded advertisements over a prescribed time period; an e-mail function monitor function that determines whether or not an e-mail function failure condition has occurred, whereby the e-mail failure condition occurs when the software has not successfully sent and/or received e-mail messages over the prescribed time period; and an adware failure nag function that is activated when the software is in the first operating mode upon detection that an ad download failure condition has occurred and an e- mail function failure condition has not occurred, whereupon the adware failure nag function generates an adware nag failure display at prescribed ad failure nag intervals, wherein the adware nag failure display notifies the user that advertisements have not been successfully downloaded, and warns the user that the operating mode of the software will be switched from the first operating mode to the second operating mode if the ad download failure condition is not rectified.
106. The software as set forth in Claim 105, wherein the prescribed ad failure nag intervals decrease over a time span between the initial detection of the ad download failure condition and the expiration of a prescribed maximum ad failure time period.
107. The software as set forth in Claim 106, further comprising a mode switching function that switches the software from the first operating mode to the second operating mode upon expiration of the prescribed maximum ad failure time period.
108. The software as set forth in Claim 105, further comprising a mode switching function that switches the software from the first operating mode to the second operating mode upon expiration of a prescribed maximum ad failure time period.
109. The software as set forth in Claim 105, further comprising: a deadbeat user alert function that generates a mode switch alert display upon expiration of a prescribed maximum ad failure time period, wherein the mode switch alert display notifies the user that the software is about to be switched from the first operating mode to the second operating mode, unless the user takes immediate corrective action to rectify the ad download failure condition; and a mode switching function that switches the software from the first operating mode to the second operating mode if the user does not take immediate corrective action in response to the mode switch alert display.
110. The software as set forth in Claim 79, further comprising: an advertisement storage function for storing downloaded advertisements on a storage medium associated with the client device; an advertisement display function that displays one or more selected ones of the stored advertisements ; an obscured ad monitor function that determines whether an obscured ad condition has occurred, whereby the obscured ad condition occurs when an advertisement currently being displayed on a display screen associated with the client device is being obscured by one or more other items currently being displayed on the display screen; and an obscured ad nag function that generates an obscured ad nag display in response to detection of the obscured ad condition, wherein the obscured ad nag display notifies the user of the obscured ad condition.
111. The software as set forth in Claim 79, further comprising: a software update check function that checks a prescribed website to determine availability of an update(s) to the software; and a nag function that generates a software update nag display in response to a determination that an update(s) to the software is available, wherein the update(s) that the user is entitled to vary depending upon which operating mode is currently activated.
112. The software as set forth in Claim 78, wherein the software provides enhanced functionality when operating in the first operating mode relative to its functionality when operating in the second operating mode.
1 13. The software as set forth in Claim 112, further comprising a mode switching function for switching between the first and second operating modes.
114. The software as set forth in Claim 113, wherein the software is advertiser- subsidized when operating in the first operating mode, and is not advertiser-subsidized when operating in the second operating mode.
115. The software as set forth in Claim 112, wherein the default operating mode of the software is the first operating mode.
116. The software as set forth in Claim 115, further comprising a selector function that enables the user to select between the first and second operating modes.
117. The software as set forth in Claim 78, wherein: the software includes a first set of e-mail features when operating in the first operating mode, and a second set of e-mail features when operating in the second operating mode; the first set of e-mail features is greater than the second set of e-mail features; the software defaults to the first operating mode; and the software is freely switchable from the first operating mode to the second operating mode and from the second operating mode to the first operating mode.
118. The software as set forth in Claim 1, wherein the software includes at least three operating modes, including: a first operating mode in which the advertisement download function is activated; a second operating mode in which the advertisement download function is not activated; a third operating mode in which the advertisement download function is not activated; wherein the software includes an enhanced set of e-mail features when operating in either the first or third operating mode, and includes a reduced set of e-mail features when operating in the second operating mode; and wherein the software is free when operating in either the first or second operating mode, but must be paid for when operating in the third operating mode.
1 19. The software as set forth in Claim 118, further comprising a mode switching function for switching between the first, second, and third operating modes.
120. The software as set forth in Claim 118, wherein the default operating mode is the first operating mode.
121. The software as set forth in Claim 1 18, further comprising a deadbeat user determination function that is activated when the software is operating in the first operating mode, wherein the deadbeat user determination function determines compliance with a prescribed ad display policy, and switches the operating mode of the software from the first operating mode to the second operating mode in response to determining non-compliance with the prescribed ad display policy.
122. The software as set forth in Claim 118, further comprising a selector function that enables the user to select between the first, second, and third operating modes.
123. The software as set forth in Claim 122, further comprising a mode switching function for switching between the first, second, and third operating modes.
124. The software as set forth in Claim 122, further comprising a refund facilitator function that generates a refund code in response to the user switching from the third operating mode to the first operating mode, wherein the user can use the refund code to obtain a refund from a vendor of the software.
125. The software as set forth in Claim 124, wherein the refund facilitator function further generates a display window that notifies the user of the refund code.
126. The software as set forth in Claim 124, wherein the refund facilitator function further generates a display window that presents the user with the option to finalize the switch to the first operating mode, or to cancel the switch to the first operating mode.
127. The software as set forth in Claim 124, wherein the refund facilitator function further generates: a first display window that notifies the user of the refund code; and a second display window that presents the user with the option to finalize the switch to the first operating mode, or to cancel the switch to the first operating mode.
128. The software as set forth in Claim 1 18, further comprising an adware nag function that is activated when the software is operating in the second operating mode, wherein the adware nag function generates an adware nag display that prompts the user to switch from the second operating mode to the first operating mode.
129. The software as set forth in Claim 128, wherein the software is advertiser- subsidized when operating in the first operating mode, and is not advertiser-subsidized when operating in the second operating mode.
130. The software as set forth in Claim 128, wherein the adware nag function generates the adware nag display at prescribed intervals for at least a prescribed period of time.
131. The software as set forth in Claim 128, wherein the adware nag display comprises an adware nag window that is displayed on a display device associated with the client device.
132. The software as set forth in Claim 131, wherein the adware nag window comprises a modeless window.
133. The software as set forth in Claim 118, further comprising: a selector function that enables the user to select between the first, second, and third operating modes; and a downgrade dialog function that is activated in response to the user selecting the second operating mode when the current operating mode of the software is either the first or third operating mode, wherein the downgrade dialog function generates a dialog that is displayed on a display device associated with the client device to prompt the user to either remain in the current operating mode, or to switch instead to the other of the first and third operating modes.
134. The software as set forth in Claim 133, wherein the dialog includes a list of at least some of the e-mail features that are included when the software is operating in the current operating mode that will not be included when the software is operated in the second operating mode.
135. The software as set forth in Claim 118, further comprising: an advertisement storage function for storing downloaded advertisements on a storage medium associated with the client device; and an advertisement display function that displays one or more selected ones of the stored advertisements.
136. The software as set forth in Claim 135, further comprising: an advertisement download monitor function that is activated when the software is in the first operating mode, wherein the advertisement download monitor function determines whether or not an ad download failure condition has occurred, whereby the ad download failure condition occurs when the advertisement download function has not successfully downloaded advertisements over a prescribed time period; and an adware failure nag function that is activated when the software is in the first operating mode upon detection that an ad download failure condition has occurred, whereupon the adware failure nag function generates an adware nag failure display that notifies the user that advertisements have not been successfully downloaded, and that warns the user that the operating mode of the software will be switched from the first operating mode to the second operating mode if the ad download failure condition is not rectified.
137. The software as set forth in Claim 135, further comprising: an advertisement download monitor function that is activated when the software is in the first operating mode, wherein the advertisement download monitor function determines whether or not an ad download failure condition has occurred, whereby the ad download failure condition occurs when the advertisement download function has not successfully downloaded advertisements over a prescribed time period; and an adware failure nag function that is activated when the software is in the first operating mode upon detection that an ad download failure condition has occurred, whereupon the adware failure nag function generates an adware nag failure display at prescribed ad failure nag intervals, wherein the adware nag failure display notifies the user that advertisements have not been successfully downloaded, and warns the user that the operating mode of the software will be switched from the first operating mode to the second operating mode if the ad download failure condition is not rectified.
138. The software as set forth in Claim 137, wherein the ad download failure condition is declared when e-mail messages have been successfully received but advertisements have not been successfully downloaded over the prescribed time period.
139. The software as set forth in Claim 137, wherein the prescribed ad failure nag intervals decrease over a time span between the initial detection of the ad download failure condition and the expiration of a prescribed maximum ad failure time period.
140. The software as set forth in Claim 139, further comprising a mode switching function that switches the software from the first operating mode to the second operating mode upon expiration of the prescribed maximum ad failure time period.
141. The software as set forth in Claim 139, further comprising: a deadbeat user alert function that generates a mode switch alert display upon expiration of the prescribed maximum ad failure time period, wherein the mode switch alert display notifies the user that the software is about to be switched from the first operating mode to the second operating mode, unless the user takes immediate corrective action to rectify the ad download failure condition; and a mode switching function that switches the software from the first operating mode to the second operating mode if the user does not take immediate corrective action in response to the mode switch alert display.
142. The software as set forth in Claim 137, further comprising: a deadbeat user alert function that generates a mode switch alert display upon expiration of a prescribed maximum ad failure time period, wherein the mode switch alert display notifies the user that the software is about to be switched from the first operating mode to the second operating mode, unless the user takes immediate corrective action to rectify the ad download failure condition; and a mode switching function that switches the software from the first operating mode to 8 the second operating mode if the user does not take immediate corrective action in response to the mode switch alert display.
143. The software as set forth in Claim 137, further comprising a mode switching 2 function that switches the software from the first operating mode to the second operating mode upon expiration of a prescribed maximum ad failure time period.
144. The software as set forth in Claim 136, further comprising a mode switching 2 function that switches the software from the first operating mode to the second operating mode upon expiration of a prescribed maximum ad failure time period.
145. The software as set forth in Claim 136, further comprising:
2 a deadbeat user alert function that generates a mode switch alert display upon expiration of a prescribed maximum ad failure time period, wherein the mode switch alert
4 display notifies the user that the software is about to be switched from the first operating mode to the second operating mode, unless the user takes immediate corrective action to
6 rectify the ad download failure condition; and a mode switching function that switches the software from the first operating mode to
8. the second operating mode if the user does not take immediate corrective action in response to the mode switch alert display.
146. The software as set forth in Claim 135, further comprising:
2 an advertisement download monitor function that is activated when the software is in the first operating mode, wherein the advertisement download monitor function determines whether or not an ad download failure condition has occurred, whereby the ad download failure condition occurs when the advertisement download function has not successfully downloaded advertisements over a prescribed time period; an e-mail function monitor function that determines whether or not an e-mail function failure condition has occurred, whereby the e-mail failure condition occurs when the software has not successfully sent and/or received e-mail messages over the prescribed time period; and an adware failure nag function that is activated when the software is in the first operating mode upon detection that an ad download failure condition has occurred and an e- mail function failure condition has not occurred, whereupon the adware failure nag function generates an adware nag failure display that notifies the user that advertisements have not been successfully downloaded, and that warns the user that the operating mode of the software will be switched from the first operating mode to the second operating mode if the ad download failure condition is not rectified.
147. The software as set forth in Claim 146, further comprising a mode switching function that switches the software from the first operating mode to the second operating mode upon expiration of a prescribed maximum ad failure time period.
148. The software as set forth in Claim 146, further comprising: a deadbeat user alert function that generates a mode switch alert display upon expiration of a prescribed maximum ad failure time period, wherein the mode switch alert display notifies the user that the software is about to be switched from the first operating mode to the second operating mode, unless the user takes immediate corrective action to rectify the ad download failure condition; and a mode switching function that switches the software from the first operating mode to the second operating mode if the user does not take immediate corrective action in response to the mode switch alert display.
149. The software as set forth in Claim 135, further comprising: an advertisement download monitor function that is activated when the software is in the first operating mode, wherein the advertisement download monitor function determines whether or not an ad download failure condition has occurred, whereby the ad download failure condition occurs when the advertisement download function has not successfully downloaded advertisements over a prescribed time period; an e-mail function monitor function that determines whether or not an e-mail function failure condition has occurred, whereby the e-mail failure condition occurs when the software has not successfully sent and/or received e-mail messages over the prescribed time period; and an adware failure nag function that is activated when the software is in the first operating mode upon detection that an ad download failure condition has occurred and an e- mail function failure condition has not occurred, whereupon the adware failure nag function generates an adware nag failure display at prescribed ad failure nag intervals, wherein the adware nag failure display notifies the user that advertisements have not been successfully downloaded, and warns the user that the operating mode of the software will be switched from the first operating mode to the second operating mode if the ad download failure condition is not rectified.
150. The software as set forth in Claim 149, wherein the prescribed ad failure nag intervals decrease over a time span between the initial detection of the ad download failure condition and the expiration of a prescribed maximum ad failure time period.
151. The software as set forth in Claim 150, further comprising a mode switching function that switches the software from the first operating mode to the second operating mode upon expiration of the prescribed maximum ad failure time period.
152. The software as set forth in Claim 149, further comprising a mode switching function that switches the software from the first operating mode to the second operating mode upon expiration of a prescribed maximum ad failure time period.
153. The software as set forth in Claim 149, further comprising: a deadbeat user alert function that generates a mode switch alert display upon expiration of a prescribed maximum ad failure time period, wherein the mode switch alert display notifies the user that the software is about to be switched from the first operating mode to the second operating mode, unless the user takes immediate corrective action to rectify the ad download failure condition; and a mode switching function that switches the software from the first operating mode to the second operating mode if the user does not take immediate corrective action in response to the mode switch alert display.
154. The software as set forth in Claim 149, wherein the adware failure nag function includes a counter function that is incremented by one each day that advertisements are not successfully downloaded subsequent to initial detection of an ad download failure condition, and is decremented by one each time it is determined by the advertisement download monitor function that advertisements have been successfully downloaded for a prescribed period of time.
155. The software as set forth in Claim 154, wherein the prescribed period of time is two days.
156. The software as set forth in Claim 154, wherein the counter function has two terminal conditions, including a first terminal condition which occurs when it is decremented to zero, in which case the adware failure nag function is de-activated, and a second terminal condition which occurs when it is incremented to a prescribed terminal count.
157. The software as set forth in Claim 156, further comprising a mode switching function that switches the software from the first operating mode to the second operating mode in response to the second terminal condition of the counter function.
158. The software as set forth in Claim 156, wherein the prescribed terminal count corresponds to a prescribed maximum ad failure time period.
159. The software as set forth in Claim 158, further comprising a mode switching function that switches the software from the first operating mode to the second operating mode upon expiration of the prescribed maximum ad failure time period.
160. The software as set forth in Claim 158, further comprising: a deadbeat user alert function that generates a mode switch alert display upon expiration of the prescribed maximum ad failure time period, wherein the mode switch alert display notifies the user that the software is about to be switched from the first operating mode to the second operating mode, unless the user takes immediate corrective action to rectify the ad download failure condition; and a mode switching function that switches the software from the first operating mode to the second operating mode if the user does not take immediate corrective action in response to the mode switch alert display.
161. The software as set forth in Claim 118, further comprising: an advertisement storage function for storing downloaded advertisements on a storage medium associated with the client device; an advertisement display function that displays one or more selected ones of the stored advertisements ; an obscured ad monitor function that determines whether an obscured ad condition has occurred, whereby the obscured ad condition occurs when an advertisement currently being displayed on a display screen associated with the client device is being obscured by one or more other items currently being displayed on the display screen; and an obscured ad nag function that generates an obscured ad nag display in response to detection of the obscured ad condition, wherein the obscured ad nag display notifies the user of the obscured ad condition.
162. The software as set forth in Claim 161, wherein the obscured ad nag display further notifies the user that the obscured nag display will be generated upon each future occurrence of an obscured ad condition.
163. The software as set forth in Claim 162, wherein the obscured ad nag display further notifies the user that the user has the following choices: remove whatever is obscuring the obscured advertisement; maintain the status quo, so that every future occurrence of an obscured ad condition will result in the generation of the obscured ad nag display; and switch the operating mode of the software from the first operating mode to either the second operating mode or the third operating mode.
164. The software as set forth in Claim 118, further comprising: a software update check function that checks a prescribed website to determine availability of an update(s) to the software; and a nag function that generates a software update nag display in response to a determination that an update(s) to the software is available, wherein the update(s) that the user is entitled to vary depending upon which operating mode is currently activated.
165. The software as set forth in Claim 1, wherein the advertisement distribution server system includes: at least one ad server, each of which stores at least one of a plurality of advertisements to be downloaded; and at least one playlist server each of which stores at least one playlist each of which contains a list of the plurality of advertisements to be downloaded, and the address of the ad server where each listed advertisement is stored.
166. The software as set forth in Claim 165, wherein the at least one playlist server is controlled by a vendor of the software.
167. The software as set forth in Claim 165, wherein the at least one ad server comprises a plurality of ad servers that each store one or more advertisements to be distributed to the client device.
168. The software as set forth in Claim 165, wherein: the at least one playlist server is controlled by a vendor of the software; and the at least one ad server comprises a plurality of ad servers that each store one or more advertisements to be distributed to clients of the vendor of the software; and at least one of the plurality of ad servers is controlled by the vendor of the software.
169. The software as set forth in Claim 165, wherein: the at least one playlist server is controlled by a vendor of the software; and the at least one ad server comprises a plurality of ad servers that each store one or more advertisements to be distributed to clients of the vendor of the software; and at least one of the plurality of ad servers is controlled by an entity other than the vendor of the software that has granted the vendor of the software and its clients access to its ad server (s).
170. The software as set forth in Claim 1, further comprising: an advertisement storage function for storing downloaded advertisements on a storage medium associated with the client device; and an advertisement display function that displays one or more selected ones of the stored advertisements.
171. The software as set forth in Claim 170, wherein the advertisement display function displays the stored advertisements in a linear manner.
172. The software as set forth in Claim 170, wherein the advertisement display function displays the stored advertisements in a random manner.
173. The software as set forth in Claim 170, wherein the advertisement display function displays the stored advertisements in a linear sequence according to the order in which the advertisements are stored on the storage medium.
174. The software as set forth in Claim 170, wherein the advertisement display function displays the stored advertisements in an order prescribed by the advertisement distribution server system.
175. The software as set forth in Claim 170, further comprising an advertisement validation function that performs a validity check on each advertisement to be displayed and inhibits display of any advertisement determined to be invalid.
176. The software as set forth in Claim 170, further comprising an advertisement validation function that performs a validity check on at least some of the advertisements to be displayed and inhibits display of any advertisement determined to be invalid.
177. The software as set forth in Claim 170, wherein the storage medium comprises a local cache memory associated with the client device.
178. The software as set forth in Claim 170, wherein the advertisement display function displays the stored advertisements in accordance with ad display parameters prescribed by the advertisement distribution server system.
179. The software as set forth in Claim 178, wherein the ad display parameters are unknown to the e-mail service provider.
180. The software as set forth in Claim 178, wherein the ad display parameters are prescribed by a vendor of the software.
181. The software as set forth in Claim 180, wherein the ad display parameters are unknown to the e-mail service provider.
182. The software as set forth in Claim 178, further comprising a user activity monitor function that monitors user activity, wherein: at least one of the ad display parameters is a face time duration parameter that specifies a face time duration for at least one of the advertisements; the advertisement display function displays the at least one of the stored advertisements for the face time duration prescribed by the associated face time duration parameter; and the face time duration comprises a time period during which the user activity function detects at least a prescribed minimum level of user activity.
183. The software as set forth in Claim 182, wherein the user activity comprises any user action that is indicative of user interaction with the software.
184. The software as set forth in Claim 182, wherein the user activity comprises any user action that is indicative of the user viewing a display screen associated with the client device.
185. The software as set forth in Claim 182, wherein the user activity comprises any of the following user actions: movement of a pointer device associated with the client device; and use of an input device associated with the client device.
186. The software as set forth in 182, wherein the user activity comprises any of the following user actions: movement of a mouse associated with the client device; clicking of a mouse button associated with the mouse; and movement of one or more keys of a keyboard associated with the client device.
187. The software as set forth in Claim 178, wherein the ad display parameters include any one or more of the following parameters for each advertisement to be displayed: a maximum face time that the associated advertisement is to be displayed each time that it is displayed; a maximum cumulative face time that the associated advertisement is to be displayed; the maximum number of times per day that the associated advertisement is to be displayed; the start date /time before which the associated advertisement should not be displayed; and the end date/time after which the associated advertisement should not be displayed; wherein the face time comprises a time period during which a prescribed minimum level of user activity occurs.
188. The software as set forth in Claiml87, further comprising a user activity monitor function that monitors user activity and detects whether the prescribed minimum level of user activity has occurred.
189. The software as set forth in Claim 170, wherein the advertisement download function downloads advertisements identified in a playlist generated by at least one playlist server.
190. The software as set forth in Claim 189, further comprising a cookie generator function that generates a cookie containing information describing user /client device behavior and /or user demographics.
191. The software as set forth in claim 190, wherein the playlist is generated by the at least one playlist server for the user/client device based at least partially on the information contained in the cookie.
192. The software as set forth in claim 190, wherein the playlist is generated by the at least one playlist server for the user/client device based at least partially on the information contained in the playlist request.
193. The software as set forth in Claim 189, wherein the playlist is customized to the user /client device.
194. The software as set forth in Claim 189, wherein the playlist is tailored to the user/client device.
195. The software as set forth in Claim 189, wherein the playlist is generated by the at least one playlist server based at least partially on user demographics and /or user /client device behavior.
196. The software as set forth in Claim 189, wherein the at least one playlist server is controlled by a vendor of the software.
197. The software as set forth in Claim 189, wherein the at least one playlist server is inaccessible to the e-mail service provider.
198. The software as set forth in Claim 189, wherein the playlist is unavailable to the e-mail service provider.
199. The software as set forth in Claim 198, wherein the at least one playlist server is controlled by a vendor of the software.
200. The software as set forth in Claim 170, wherein the advertisement download function includes a playlist fetch function that fetches a playlist from at least one playlist server, wherein the playlist identifies the advertisements to be downloaded by the advertisement download function.
201. The software as set forth in Claim 200, wherein: the playlist fetch function checks the at least one playlist server, at prescribed playlist check intervals, for an at least one new playlist; and if an at least one new playlist is available, the playlist check function fetches the at least one new playlist; wherein the at least one new playlist identifies additional advertisements to be downloaded by the advertisement download function.
202. The software as set forth in Claim 201, further comprising an ad deletion function that deletes from the storage medium associated with the client device all advertisements that are not identified in the at least one new playlist.
203. The software as set forth in Claim 201, further comprising a playlist merge function that merges the current playlist(s) and the at least one new playlist.
204. The software as set forth in Claim 201, wherein the prescribed playlist check intervals span a plurality of online e-mail sessions during which the client device is online for the purpose of sending and /or receiving e-mail messages.
205. The software as set forth in Claim 201, wherein the at least one playlist server specifies the prescribed playlist check intervals.
206. The software as set forth in Claim 205, wherein: the at least one playlist server specifies a playback mode for displaying the stored advertisements; and the playback mode being either a first playback mode in which the advertisement display function displays the stored advertisements a linear sequence according to the order in which the advertisements are stored on the storage medium, or a second playback mode in which the advertisement display function displays the stored advertisements in a random sequence.
207. The software as set forth in Claim 201, wherein the advertisement storage function either mixes the additional advertisements and at least selected ones of the previously stored advertisements, or stores the additional advertisements as a contiguous block, in response to an instruction received from the at least one playlist server.
208. The software as set forth in Claim 201, wherein the advertisement display function either displays the additional advertisements and at least selected ones of the previously stored advertisements in a mixed manner, or displays the additional advertisements as a contiguous block, in response to an instruction received from the at least one playlist server.
209. The software as set forth in Claim 201, wherein the at least one new playlist specifies the prescribed playlist check intervals between receipt of the at least one new playlist and receipt of a next at least one new playlist.
210. The software as set forth in Claim 201, wherein the advertisement storage function one of replaces the currently stored advertisements with the additional advertisements, or merges the additional advertisements with the currently stored advertisements, in accordance with an instruction included in the at least one new playlist.
211. The software as set forth in Claim 200, wherein the advertisement display function displays the stored advertisements in one of a linear and random manner, as specified by the at least one playlist server.
212. The software as set forth in Claim 200, wherein: the at least one playlist server specifies a playback mode for displaying the stored advertisements; and the playback mode being either a first playback mode in which the advertisement display function displays the stored advertisements a linear sequence according to the order in which the advertisements are stored on the storage medium, or a second playback mode in which the advertisement display function displays the stored advertisements in a random sequence.
213. The software as set forth in Claim 200, wherein the advertisement display function displays the stored advertisements in one of a linear and random manner, as specified by the playlist.
214. The software as set forth in Claim 213, wherein the advertisement display function displays the additional advertisements in one of a linear and random manner, as specified by the at least one new playlist.
215. The software as set forth in Claim 200, wherein the advertisement download function further includes an ad fetch function that fetches the advertisements identified in the playlist.
216. The software as set forth in Claim 215, wherein the ad fetch function fetches the advertisements identified in the playlist over two or more advertisement download sessions.
217. The software as set forth in Claim 215, wherein the ad fetch function fetches the advertisements identified in the playlist over one or more advertisement download sessions.
218. The software as set forth in Claim 217, wherein the one or more advertisement download sessions coincide with the selected advertisement download times.
219. The software as set forth in Claim 217, wherein each of the one or more advertisement download sessions is limited to a prescribed maximum duration.
220. The software as set forth in Claim 217, wherein the advertisement download function further includes an ad fetch timer function that limits the duration of each advertisement download session to a prescribed maximum time period.
221. The software as set forth in Claim 217, wherein the selected advertisement download times coincide with times when the client device is online for the purpose of sending and /or receiving e-mail messages.
222. The software as set forth in Claim 217, wherein the selected advertisement download times coincide with times when the client device is online for a purpose other than for sending and /or receiving e-mail messages.
223. The software as set forth in Claim 200, wherein the advertisement display function controls the display of the stored advertisements in accordance with ad display parameters contained in the playlist.
224. The software as set forth in Claim 223, wherein the ad display parameters include at least one of the following: the maximum time that each stored advertisement is to be displayed each time that it is displayed; the maximum cumulative time that each stored advertisement is to be displayed; the maximum number of times per day that each stored advertisement is to be displayed; the start date /time before which each stored advertisement should not be displayed; and the end date /time after which each stored advertisement should not be displayed.
225. The software as set forth in Claim 223, wherein the ad display parameters include at least two of the following parameters: the maximum time that the associated advertisement is to be displayed each time that it is displayed; the maximum cumulative time that the associated advertisement is to be displayed; the maximum number of times per day that the associated advertisement is to be displayed; the start date /time before which the associated advertisement should not be displayed; and the end date /time after which the associated advertisement should not be displayed.
226. The software as set forth in Claim 223, wherein the ad display parameters include: the maximum time that the associated advertisement is to be displayed each time that it is displayed; the maximum cumulative time that the associated advertisement is to be displayed; the maximum number of times per day that the associated advertisement is to be displayed; the start date/time before which the associated advertisement should not be displayed; and the end date /time after which the associated advertisement should not be displayed.
227. The software as set forth in Claim 223, further comprising a user activity monitor function that monitors user activity, wherein: at least one of the ad display parameters is a face time duration parameter that specifies a face time duration for at least one of the advertisements; the advertisement display function displays the at least one of the stored advertisements for the face time duration prescribed by the associated face time duration parameter; and the face time duration comprises a time period during which the user activity function detects at least a prescribed minimum level of user activity.
228. The software as set forth in Claim 227, wherein the user activity comprises any user action that is indicative of user interaction with the software.
229. The software as set forth in Claim 227, wherein the user activity comprises any user action that is indicative of the user viewing a display screen associated with the client device.
230. The software as set forth in Claim 227, wherein the user activity comprises any of the following user actions: movement of a pointer device associated with the client device; and use of an input device associated with the client device.
231. The software as set forth in 227, wherein the user activity comprises any of the following user actions: movement of a mouse associated with the client device; clicking of a mouse button associated with the mouse; and movement of one or more keys of a keyboard associated with the client device.
232. The software as set forth in Claim 223, wherein the ad display parameters include any one or more of the following parameters for each advertisement to be displayed: a maximum face time that the associated advertisement is to be displayed each time that it is displayed; a maximum cumulative face time that the associated advertisement is to be displayed; the maximum number of times per day that the associated advertisement is to be displayed; the start date /time before which the associated advertisement should not be displayed; and the end date /time after which the associated advertisement should not be displayed; wherein the face time comprises a time period during a prescribed minimum level of user activity occurs.
233. The software as set forth in Claim 232, further comprising a user activity monitor function that monitors user activity and detects whether the prescribed minimum level of user activity has occurred.
234. The software as set forth in Claim 223, wherein the ad display parameters include any two or more of the following parameters for each advertisement to be displayed: a maximum face time that the associated advertisement is to be displayed each time that it is displayed; a maximum cumulative face time that the associated advertisement is to be displayed; the maximum number of times per day that the associated advertisement is to be displayed; the start date /time before which the associated advertisement should not be displayed; and the end date /time after which the associated advertisement should not be displayed; wherein the face time comprises a time period during a prescribed minimum level of user activity occurs.
235. The software as set forth in Claim 234, further comprising a user activity monitor function that monitors user activity and detects whether the prescribed minimum level of user activity has occurred.
236. The software as set forth in Claim 200, wherein the advertisement display function controls the display of the stored advertisements at least partially based on monitored user activity.
237. The software as set forth in Claim 170, further comprising a user activity monitor function that monitors user activity and generates user activity information, wherein the advertisement display function controls the display of advertisements at least partially based on the user activity information.
238. The software as set forth in Claim 237, wherein the user activity comprises any user action that is indicative of user interaction with the software.
239. The software as set forth in Claim 237, wherein the user activity comprises any user action that is indicative of the user viewing a display screen associated with the client device.
240. The software as set forth in Claim 237, wherein the user activity comprises any of the following user actions: movement of a pointer device associated with the client device; and use of an input device associated with the client device.
241. The software as set forth in 237, wherein the user activity comprises any of the following user actions: movement of a mouse associated with the client device; clicking of a mouse button associated with the mouse; and movement of one or more keys of a keyboard associated with the client device.
242. The software as set forth in Claim 170, further comprising: an obscured ad monitor function that determines whether an obscured ad condition has occurred, whereby the obscured ad condition occurs when an advertisement currently being displayed on a display screen associated with the client device is being obscured by one or more other items currently being displayed on the display screen; and an obscured ad nag function that generates an obscured ad nag display in response to detection of the obscured ad condition, wherein the obscured ad nag display notifies the user of the obscured ad condition.
243. The software as set forth in Claim 242, wherein the obscured ad nag display further notifies the user that the obscured nag display will be generated upon each future occurrence of an obscured ad condition.
244. The software as set forth in Claim 242, wherein the obscured ad nag display further notifies the user that the obscured nag display will be generated upon each future occurrence of an obscured ad condition.
245. The software as set forth in Claim 244, wherein the obscured ad nag display further notifies the user that the user has the following choices: remove whatever is obscuring the obscured advertisement; maintain the status quo, so that every future occurrence of an obscured ad condition will result in the generation of the obscured ad nag display; and switch the operating mode of the software from the first operating mode to the second operating mode.
246. The software as set forth in Claim 170, further comprising an audit function that compiles ad-related statistical data relating to downloaded advertisements.
247. The software as set forth in Claim 246, further comprising an audit data transmit function that transmits the ad-related statistical data to a prescribed server.
248. The software as set forth in Claim 247, wherein the ad-related statistical data facilitates analysis of the effectiveness of the software regarding presentation of advertisements to the user.
249. The software as set forth in Claim 247, wherein the audit data transmit function is activated in response to a send audit data request transmitted by the prescribed server.
250. The software as set forth in Claim 249, wherein: the prescribed server includes an auditing manager function; and the auditing manager function generates the send audit data request in accordance with a client auditing policy under which send audit data requests are transmitted to a statistical sampling of a population of client devices, at prescribed times.
251. The software as set forth in Claim 249, wherein: the prescribed server includes an auditing manager function; and the auditing manager function generates the send audit data request in accordance with a client auditing policy under which send audit data requests are transmitted to random ones of a population of client devices, at prescribed times.
252. The software as set forth in Claim 247, wherein: the audit data transmit function generates a send audit data display window that requests the user's permission to transmit the ad-related statistical data to the prescribed server; and the audit data transmit function transmits the ad-related statistical data only in response to a user's grant of permission to do so.
253. The software as set forth in Claim 246, wherein the ad-related statistical data includes display event-related data regarding each advertisement that was displayed during a prescribed audit interval.
254. The software as set forth in Claim 253, wherein the ad-related statistical data is maintained as a log that is rotated at prescribed rollover intervals.
255. The software as set forth in Claim 253, wherein the display event-related data includes display time data for each advertisement that was displayed during the prescribed audit interval.
256. The software as set forth in Claim 255, wherein the ad-related statistical data further includes clickthrough data regarding each advertisement that was clicked on by the user during the prescribed audit interval.
257. The software as set forth in Claim 246, wherein the ad-related statistical data is maintained as a log that is rotated at prescribed rollover intervals.
258. The software as set forth in Claim 257, wherein: the prescribed rollover intervals correspond to prescribed audit intervals; and the ad-related statistical data includes display event-related data regarding each advertisement that was displayed during a current one of the prescribed audit intervals.
259. The software as set forth in Claim 170, further comprising an audit function that compiles audit data that includes user demographic data, software usage data regarding usage of the software by the user, ad-related statistical data, features of the software used by the user, and user-selected settings.
260. The software as set forth in Claim 259, further comprising an audit data transmit function that transmits the audit data to a prescribed server.
261. The software as set forth in Claim 260, wherein: the audit data transmit function generates a send audit data display window that requests the user's permission to transmit the audit data to the prescribed server; and the audit data transmit function transmits the audit data only in response to a user's grant of permission to do so.
262. The software as set forth in Claim 260, wherein: the audit data transmit function generates a send audit data display window that requests the user's permission to transmit each category of the audit data to the prescribed server; and the audit data transmit function then transmits only the category(ies) of the audit data for which the user has granted permission to transmit.
263. The software as set forth in Claim 260, wherein the audit data transmit function is activated in response to a send audit data request transmitted by the prescribed server. 264. The software as set forth in Claim 263, wherein: the prescribed server includes an auditing manager function; and the auditing manager function generates the send audit data request in accordance with a client auditing policy under which send audit data requests are transmitted to a statistical sampling of a population of client devices, at prescribed times.
265. The software as set forth in Claim 263, wherein: the prescribed server includes an auditing manager function; and the auditing manager function generates the send audit data request in accordance with a client auditing policy under which send audit data requests are transmitted to random ones of a population of client devices, at prescribed times.
267. The software as set forth in Claim 170, further comprising an audit function that compiles audit data that includes user demographic data, software usage data regarding usage of the software by the user, and ad-related statistical data.
268. The software as set forth in Claim 267, wherein the audit data is maintained as a log that is rotated at prescribed rollover intervals.
269. The software as set forth in Claim 267, wherein the ad-related statistical data includes display event-related data regarding each advertisement that was displayed during a prescribed audit interval.
270. The software as set forth in Claim 269, wherein the display event-related data includes display time data for each advertisement that was displayed during the prescribed audit interval.
271. The software as set forth in Claim 270, wherein the ad-related statistical data further includes clickthrough data regarding each advertisement that was clicked on by the user during the prescribed audit interval.
272. The software as set forth in Claim 269, wherein the ad-related statistical data is maintained as a log that is rotated at prescribed rollover intervals.
273. The software as set forth in Claim 267, further comprising an audit data transmit function that transmits the audit data to a prescribed server associated with the advertisement distribution server system.
274. The software as set forth in Claim 273, wherein: the audit data transmit function generates a send audit data display window that requests the user's permission to transmit the audit data to the prescribed server; and the audit data transmit function transmits the audit data only in response to a user's grant of permission to do so.
275. The software as set forth in Claim 273, wherein: the audit data transmit function generates a send audit data display window that requests the user's permission to transmit each category of the audit data to the prescribed server; and the audit data transmit function then transmits only the category(ies) of the audit data for which the user has granted permission to transmit.
276. The software as set forth in Claim 273, wherein the audit data transmit function is activated in response to a send audit data request transmitted by the prescribed server.
277. The software as set forth in Claim 276, wherein: the prescribed server includes an auditing manager function; and the auditing manager function generates the send audit data request in accordance with a client auditing policy under which send audit data requests are transmitted to a statistical sampling of a population of client devices, at prescribed times.
278. The software as set forth in Claim 276, wherein: the prescribed server includes an auditing manager function; and the auditing manager function generates the send audit data request in accordance with a client auditing policy under which send audit data requests are transmitted to random ones of a population of client devices, at prescribed times.
279. The software as set forth in Claim 170, further comprising an ad link history function that generates an ad link history display window that lists links to the sources of advertisements that have previously been displayed.
280. The software as set forth in Claim 279, wherein the ad link history window is selectively viewable by the user.
281. The software as set forth in Claim 280, wherein the communications function automatically connects the client device to a source of the advertisement corresponding to a selected link in response to a prescribed user action, if the client device is online at that time.
282. The software as set forth in Claim 281, wherein the prescribed user action comprises a double-click on the selected link.
283. The software as set forth in Claim 280, wherein the advertisement display function automatically displays the advertisement corresponding to a selected link in response to a prescribed user action.
284. The software as set forth in Claim 283, wherein the prescribed user action comprises a single-click on the selected link.
285. The software as set forth in Claim 280, wherein: the communications function automatically connects the client device to a source of the advertisement corresponding to a selected link in response to a first prescribed user action, if the client device is online at that time; and the advertisement display function automatically displays the advertisement corresponding to a selected link in response to a second prescribed user action.
286. The software as set forth in Claim 285, wherein: the first prescribed user action comprises a double-click on the selected link; and the second prescribed user action comprises a single-click on the selected link.
287. The software as set forth in Claim 286, further comprising an offline ad dialog function that generates an offline ad dialog display in response to the first prescribed user action, wherein the offline ad dialog display presents the user with at least two options, including a first option which is to invoke the communications function to effect a connection to the source of the advertisement corresponding to the selected link, and a second option which is to bookmark the selected link.
288. The software as set forth in Claim 287, wherein the offline ad dialog display further presents the user with a third option, which is to bookmark the selected link and to be reminded of this next time the client device goes online.
289. The software as set forth in Claim 279, wherein the ad link history display window further lists links to the sources of advertisements that the user has previously visited.
290. The software as set forth in Claim 289, wherein: the communications function automatically connects the client device to a source of the advertisement corresponding to a selected link in response to a first prescribed user action, if the client device is online at that time; and the advertisement display function automatically displays the advertisement corresponding to a selected link in response to a second prescribed user action.
291. The software as set forth in Claim 290, wherein: the first prescribed user action comprises a double-click on the selected link; and the second prescribed user action comprises a single-click on the selected link.
292. The software as set forth in Claim 291, further comprising an offline ad dialog function that generates an offline ad dialog display in response to the first prescribed user action, wherein the offline ad dialog display presents the user with at least two options, including a first option which is to invoke the communications function to effect a connection to the source of the advertisement corresponding to the selected link, and a second option which is to bookmark the selected link.
293. The software as set forth in Claim 292, wherein the offline ad dialog display further presents the user with a third option, which is to bookmark the selected link and to be reminded of this next time the client device goes online.
294. The software as set forth in Claim 170, further comprising: a playlist request function that generates a playlist request that includes a current playlist(s) ID that identifies a current playlist(s); a playlist request transmit function that transmits the playlist request to at least one playlist server; and a playlist response handling function that receives and processes a playlist response generated by the at least one playlist server in response to the playlist request; wherein the playlist response includes an at least one new playlist that includes a plurality of ad identifiers that identify corresponding advertisements, a plurality of addresses that identify the source of respective ones of the advertisements, and at least one new playlist ID that identifies the at least one new playlist.
295. The software as set forth in Claim 281, wherein the at least one playlist server is controlled by a vendor of the software.
296. The software as set forth in Claim 294, wherein the advertisement distribution system includes: at least one ad server, each of which stores at least one of a plurality of advertisements to be downloaded; and the at least one playlist server.
297. The software as set forth in Claim 296, wherein the at least one playlist server is controlled by a vendor of the software.
298. The software as set forth in Claim 296, wherein the at least one ad server comprises a plurality of ad servers that each store one or more advertisements to be distributed to the client device.
299. The software as set forth in Claim 296, wherein: the at least one playlist server is controlled by a vendor of the software; and the at least one ad server comprises a plurality of ad servers that each store one or more advertisements to be distributed to clients of the vendor of the software; and at least one of the plurality of ad servers is controlled by the vendor of the software.
300. The software as set forth in Claim 296, wherein: the at least one playlist server is controlled by a vendor of the software; and the at least one ad server comprises a plurality of ad servers that each store one or more advertisements to be distributed to clients of the vendor of the software; and at least one of the plurality of ad servers is controlled by an entity other than the vendor of the software that has granted the vendor of the software and its clients access to its ad server(s).
301. The software as set forth in Claim 294, wherein: the communication network comprises the Internet; the at least one playlist server is associated with the advertisement distribution server system; and the advertisement distribution server system and the at least one playlist server are connected to the Internet.
302. The software as set forth in Claim 301, wherein: the sources of the respective ones of the advertisements identified by the ad identifiers in the at least one new playlist comprise storage locations on at least one ad server that is associated with the advertisement distribution server system; and the addresses that identify the sources of the respective ones of the advertisements identified by the ad identifiers in the at least one new playlist comprise URIs.
303. The software as set forth in Claim 294, wherein: the playlist response includes a client information portion that includes a playlist handling command having a first state or a second state; the playlist response handling function replaces the current playlist(s) with the at least one new playlist in response to the first state of the playlist handling command; and the playlist response handling function merges the current playlist(s) with the at least one new playlist in response to the second state of the playlist handling command.
304. The software as set forth in Claim 303, wherein the playlist request transmit function transmits the playlist request to the at least one playlist server at prescribed playlist check intervals.
305. The software as set forth in Claim 304, wherein the client information portion of the playlist response further includes a playlist request interval data field that specifies the prescribed playlist check interval.
306. The software as set forth in Claim 305, wherein the prescribed playlist check intervals span a plurality of online e-mail sessions during which the client device is online for the purpose of sending and/or receiving e-mail messages.
307. The software as set forth in Claim 305, wherein the client information portion of the playlist response further includes an ad history interval data field that specifies the time period for which the software must remember that it displayed a particular advertisement.
308. The software as set forth in Claim 307, wherein the client information portion of the playlist response further includes an ad display sequence data field that specifies whether the advertisement display function should select advertisements for display in a linear or random manner.
309. The software as set forth in Claim 308, wherein the client information portion of the playlist response further includes an ad display window data field that specifies the dimensions of an ad display window on a display screen associated with the client device within which the advertisements are to be displayed.
310. The software as set forth in Claim 309, wherein: the stored advertisements include a plurality of regular ads and at least one runout ad; and the client information portion of the playlist response further includes a display time quota field that specifies the maximum display time that the advertisement display function should display the regular ads before displaying the at least one runout ad.
311. The software as set forth in Claim 294, wherein: the advertisement display function only displays selected ones of the advertisements identified in the current playlist(s) in response to the first state of the playlist handling command; and the advertisement display function displays selected ones of the advertisements identified in both the current playlist(s) and the at least one new playlist in response to the second state of the playlist handling command.
312. The software as set forth in Claim 294, wherein: the playlist response includes a client information portion that includes a playlist handling command having a first state or a second state; the advertisement storage function replaces advertisements identified in the current playlist(s) with the advertisements identified in the at least one new playlist in response to the first state of the playlist handling command; and the advertisement storage function merges the advertisements identified in the current playlist(s) and the advertisements identified in the at least one new playlist in response to the second state of the playlist handling command.
313. The software as set forth in Claim 294, wherein the playlist response handling function compares the ad identifiers in the at least one new playlist and ad identifiers in the current playlist(s), and generates a list of addresses that identify the sources of advertisements corresponding to the ad identifiers in the at least one new playlist that are not contained in the current playlist(s).
314. The software as set forth in Claim 313, further comprising an ad fetch function that fetches the advertisements corresponding to the generated list of addresses from the sources corresponding to the generated list of addresses.
315. The software as set forth in Claim 314, further comprising an ad fetch function that fetches the advertisements corresponding to the generated list of addresses from the sources corresponding to the generated list of addresses, over two or more advertisement download sessions.
316. The software as set forth in Claim 315, wherein the selected advertisement download times span a plurality of online e-mail sessions during which the client device is online for the purpose of sending and /or receiving e-mail messages.
317. The software as set forth in Claim 316, wherein the playlist request transmit function transmits the playlist request to the at least one playlist server at prescribed playlist check intervals.
318. The software as set forth in Claim 317, wherein the playlist response further includes a client information portion that includes a playlist request interval data field that specifies the prescribed playlist check interval.
319. The software as set forth in Claim 318, wherein the prescribed playlist check intervals span a plurality of online e-mail sessions during which the client device is online for the purpose of sending and/or receiving e-mail messages.
320. The software as set forth in Claim 315, wherein the two or more advertisement download sessions coincide with the selected advertisement download times.
321. The software as set forth in Claim 320, wherein the selected advertisement download times coincide with times when the client device is online for the purpose of sending and /or receiving e-mail messages.
322. The software as set forth in Claim 315, wherein each advertisement download session is limited to a prescribed maximum time duration.
323. The software as set forth in Claim 315, wherein the ad fetch function further includes an ad fetch timer function that limits the duration of each advertisement download session to a prescribed maximum time period.
324. The software as set forth in Claim 315, wherein the advertisement download function does not mandate that the selected advertisement download times have a one-to-one correspondence with times when the client device is online for the purpose of sending and/or receiving e-mail messages.
325. The software as set forth in Claim 294, wherein the playlist request further includes a user data field that includes information identifying the software.
326. The software as set forth in Claim 325, wherein the user data field further includes information identifying an operating platform of the client device on which the software is running.
327. The software as set forth in Claim 294, wherein the playlist request further includes usage data relating to the amount of time the user has used the software over a prescribed most recent interval.
328. The software as set forth in Claim 294, wherein the playlist request further includes a display time remaining data field that specifies the total amount of display time required for the stored advertisements that remain to be displayed.
329. The software as set forth in Claim 294, wherein the playlist request further includes a display time used recently data field that specifies the total amount of times that advertisements were displayed during a prescribed latest time interval.
330. The software as set forth in Claim 329, wherein the prescribed latest time interval comprises the present day.
331. The software as set forth in Claim 294, wherein the playlist request further includes client device display screen data that specifies dimensions of a display screen associated with the client device.
332. The software as set forth in Claim 331, wherein the dimensions include the height, width, and depth of the display screen, in pixels.
333. The software as set forth in Claim 294, further comprising a custom installer function that generates a distributor ID that identifies a distributor that distributed the software for use on the client device.
334. The software as set forth in Claim 333, wherein the playlist request further includes the distributor ID.
335. The software as set forth in Claim 334, wherein the distributor ID is used in apportioning advertising revenue attributable to the software distributed by that distributor.
336. The software as set forth in Claim 294, wherein the playlist request further includes a list of the ad identifiers corresponding to advertisements that have been displayed in a prescribed recent time interval.
337. The software as set forth in Claim 294, wherein the playlist request transmit function transmits the playlist request to the at least one playlist server at prescribed playlist check intervals.
338. The software as set forth in Claim 337, wherein the playlist response further includes a client information portion that includes a playlist request interval data field that specifies the prescribed playlist check interval.
339. The software as set forth in Claim 338, wherein each of the prescribed playlist check intervals correspond to the first time that the client device goes online for the purpose of sending and /or receiving e-mail messages subsequent to the lapse of the current prescribed playlist check interval.
340. The software as set forth in Claim 338, wherein the prescribed playlist check intervals span a plurality of online e-mail sessions during which the client device is online for the purpose of sending and /or receiving e-mail messages.
341. The software as set forth in Claim 294, wherein the playlist response further includes a client information portion that includes an ad history interval data field that specifies the time period for which the software must remember that it displayed a particular advertisement.
342. The software as set forth in Claim 294, wherein the playlist response further includes a client information portion that includes an ad display sequence data field that specifies whether the advertisement display function should select advertisements for display in a linear or random manner.
343. The software as set forth in Claim 294, wherein the playlist response further includes a client information portion that includes an ad display window data field that specifies the dimensions of an ad display window on a display screen associated with the client device within which the advertisements are to be displayed.
344. The software as set forth in Claim 294, wherein the stored advertisements include a plurality of regular ads and at least one runout ad.
345. The software as set forth in Claim 344, wherein the playlist response further includes a client information portion that includes a display time quota field that specifies the maximum display time that the advertisement display function should display the regular ads before displaying the at least one runout ad.
346. The software as set forth in Claim 294, wherein the playlist response further includes a client information portion that contains instructions for the software to control the manner in which the software obtains, handles, and displays advertisements.
347. The software as set forth in Claim 294, wherein the at least one new playlist further includes a mix/block data field that specifies whether the advertisements identified in the at least one new playlist can be mixed with previously-stored advertisements from other playlists, or must be displayed as a block.
348. The software as set forth in Claim 294, wherein the at least one new playlist further includes a block ad display sequence data field that specifies whether the advertisement display function should select advertisements identified in the at least one new playlist for display in a linear or random manner.
349. The software as set forth in Claim 347, wherein the at least one new playlist further includes a block ad display sequence data field that specifies whether the advertisement display function should select advertisements identified in the at least one new playlist for display in a linear or random manner.
350. The software as set forth in Claim 349, wherein the at least one new playlist further includes a user-friendly title of each of the advertisements identified in the at least one new playlist.
351. The software as set forth in Claim 350, wherein the at least one new playlist further includes an ad type data field that specifies an ad type of each of the advertisements identified in the at least one new playlist.
352. The software as set forth in Claim 350, wherein: the at least one new playlist further includes an ad click URI for each of the advertisements identified in the at least one new playlist; and the ad click URI specifies a web page to be displayed in response to the user clicking on the associated advertisement.
353. The software as set forth in Claim 294, further comprising a clickthrough tracking function that, in response to the user clicking on a displayed advertisement, appends a clickbase URI to a URI associated with that displayed advertisement, to thereby facilitate counting of the number of times that the user clicks on that displayed advertisement.
354. The software as set forth in Claim 353, wherein the at least one new playlist further includes a clickbase data field that specifies the clickbase URI.
355. The software as set forth in Claim 353, wherein the clickbase URI designates a web page associated with the advertisement distribution server system.
356. The software as set forth in Claim 355, wherein the web page designated by the clickbase URI is administered by a vendor of the software.
357. The software as set forth in Claim 294, wherein the at least one new playlist further includes a user-friendly title of each of the advertisements identified in the at least one new playlist.
358. The software as set forth in Claim 294, wherein the at least one new playlist further includes an ad type data field that specifies an ad type of each of the advertisements identified in the at least one new playlist.
359. The software as set forth in Claim 358, wherein the ad type is one of a regular ad, a runout ad, a toolbar button ad, or a sponsor placard ad.
360. The software as set forth in Claim 294, wherein: the at least one new playlist further includes an ad click URI for each of the advertisements identified in the at least one new playlist; and the ad click URI specifies a web page to be displayed in response to the user clicking on the associated advertisement.
361. The software as set forth in Claim 294, wherein the at least one new playlist further includes a plurality of ad display parameters for controlling the manner in which the advertisement display function displays the stored advertisements.
362. The software as set forth in Claim 361, wherein the ad display parameters include at least one of the following parameters for each of the advertisements identified in the at least one new playlist: the maximum time that the associated advertisement is to be displayed each time that it is displayed; the maximum cumulative time that the associated advertisement is to be displayed; the maximum number of times per day that the associated advertisement is to be displayed; the start date /time before which the associated advertisement should not be displayed; and the end date /time after which the associated advertisement should not be displayed.
363. The software as set forth in Claim 361, wherein the ad display parameters include at least two of the following parameters for each of the advertisements identified in the at least one new playlist: the maximum time that the associated advertisement is to be displayed each time that it is displayed; the maximum cumulative time that the associated advertisement is to be displayed; the maximum number of times per day that the associated advertisement is to be displayed; the start date /time before which the associated advertisement should not be displayed; and the end date /time after which the associated advertisement should not be displayed.
364. The software as set forth in Claim 361, wherein the ad display parameters include: the maximum time that an associated advertisement is to be displayed each time that it is displayed; the maximum cumulative time that an associated advertisement is to be displayed; the maximum number of times per day that an associated advertisement is to be displayed; the start date /time before which an associated advertisement should not be displayed; and the end date /time after which an associated advertisement should not be displayed.
365. The software as set forth in Claim 361, wherein the ad display parameters are not supplied to the e-mail service provider.
366. The software as set forth in Claim 294, wherein the at least one new playlist includes a plurality of new playlists.
367. The software as set forth in Claim 294, wherein the at least one new playlist includes at least one new playlist for relatively long-lived advertisements, and at least one new playlist for relatively short-lived advertisements.
368. The software as set forth in Claim 294, further comprising a user activity monitor function that monitors user activity.
369. The software as set forth in Claim 368, wherein the at least one new playlist further includes a plurality of ad display parameters for controlling the manner in which the advertisement display function displays the stored advertisements.
370. The software as set forth in Claim 369, wherein: at least one of the ad display parameters is a face time duration parameter that specifies a face time duration for at least one of the advertisements; the advertisement display function displays the at least one of the stored advertisements for the face time duration prescribed by the associated face time duration parameter; and the face time duration comprises a time period during which the user activity function detects at least a prescribed minimum level of user activity.
371. The software as set forth in Claim 370, wherein the user activity comprises any user action that is indicative of user interaction with the software.
372. The software as set forth in Claim 370, wherein the user activity comprises any user action that is indicative of the user viewing a display screen associated with the client device.
373. The software as set forth in Claim 370, wherein the user activity comprises any of the following user actions: movement of a pointer device associated with the client device; and use of an input device associated with the client device.
374. The software as set forth in 370, wherein the user activity comprises any of the following user actions: movement of a mouse associated with the client device; clicking of a mouse button associated with the mouse; and movement of one or more keys of a keyboard associated with the client device.
375. The software as set forth in Claim 369, wherein the ad display parameters include any one or more of the following parameters for each advertisement identified in the at least one new playlist: a maximum face time that the associated advertisement is to be displayed each time that it is displayed; a maximum cumulative face time that the associated advertisement is to be displayed; the maximum number of times per day that the associated advertisement is to be displayed; the start date/time before which the associated advertisement should not be displayed; and the end date /time after which the associated advertisement should not be displayed; wherein the face time comprises a time period during which a prescribed minimum level of user activity occurs.
376. The software as set forth in Claim 375, further comprising a user activity monitor function that monitors user activity and detects whether the prescribed minimum level of user activity has occurred.
377. The software as set forth in Claim 294, wherein the at least one new playlist is customized to the user/client device.
378. The software as set forth in Claim 294, wherein the at least one new playlist is tailored to the user/client device.
379. The software as set forth in Claim 294, wherein the at least one new playlist is generated by the at least one playlist server based at least partially on user demographics and/or user/client device behavior.
380. The software as set forth in Claim 1, further comprising: an advertisement storage function for storing downloaded advertisements on a storage medium within the client device; and an advertisement display function that displays one or more selected ones of the stored advertisements when the client device is offline.
381. The software as set forth in Claim 1, further comprising: an advertisement storage function for storing downloaded advertisements on a storage medium within the client device; and an advertisement display function that displays one or more selected ones of the stored advertisements when the client device is offline with respect to the e-mail service provider server system.
382. The software as set forth in Claim 1, further comprising: an advertisement storage function for storing downloaded advertisements on a storage medium associated with the client device; and an advertisement display function that displays one or more selected ones of the stored advertisements wherein: the software includes at least two operating modes, including a first operating mode in which the advertisement display function is activated, and a second operating mode in which the advertisement display function is not activated; the software includes a first set of e-mail features when operating in the first operating mode, and a second set of e-mail features when operating in the second operating mode, wherein the first set of e-mail features is greater than the second set of e-mail features.
383. The software as set forth in Claim 382, further comprising: an advertisement display monitor function that is activated when the software is in the first operating mode, wherein the advertisement display monitor function determines whether or not an ad display failure condition has occurred, whereby the ad display failure condition occurs when the advertisement display function has not successfully displayed at least a prescribed minimum number of advertisements over a prescribed time period; and an adware failure nag function that is activated when the software is in the first operating mode upon detection that an ad display failure condition has occurred, whereupon the adware failure nag function generates an adware nag failure display that notifies the user that the ad display failure condition has occurred, and that warns the user that the operating mode of the software will be switched from the first operating mode to the second operating mode if the ad display failure condition is not rectified.
384. The software as set forth in Claim 383, further comprising a mode switching function that switches the software from the first operating mode to the second operating mode upon expiration of a prescribed maximum ad failure time period.
385. The software as set forth in Claim 382, further comprising: an advertisement display monitor function that is activated when the software is in the first operating mode, wherein the advertisement display monitor function determines whether or not an ad display failure condition has occurred, whereby the ad display failure condition occurs when the advertisement display function has not successfully displayed at least a prescribed minimum number of advertisements over a prescribed time period; and an adware failure nag function that is activated when the software is in the first operating mode upon detection that an ad display failure condition has occurred, whereupon the adware failure nag function generates an adware nag failure display at prescribed ad failure nag intervals, wherein the adware nag failure display notifies the user that the ad display failure condition has occurred, and warns the user that the operating mode of the software will be switched from the first operating mode to the second operating mode if the ad display failure condition is not rectified.
386. The software as set forth in Claim 385, wherein the prescribed ad failure nag intervals decrease over a time span between the initial detection of the ad display failure condition and the expiration of a prescribed maximum ad failure time period.
387. The software as set forth in Claim 386, further comprising a mode switching function that switches the software from the first operating mode to the second operating mode upon expiration of the prescribed maximum ad failure time period.
388. The software as set forth in Claim 386, further comprising: a deadbeat user alert function that generates a mode switch alert display upon expiration of the prescribed maximum ad failure time period, wherein the mode switch alert display notifies the user that the software is about to be switched from the first operating mode to the second operating mode, unless the user takes corrective action to rectify the ad display failure condition; and a mode switching function that switches the software from the first operating mode to the second operating mode if the user does not take corrective action in response to the mode switch alert display.
389. The software as set forth in Claim 385, further comprising a mode switching function that switches the software from the first operating mode to the second operating mode upon expiration of a prescribed maximum ad failure time period.
390. The software as set forth in Claim 385, further comprising: a deadbeat user alert function that generates a mode switch alert display upon expiration of a prescribed maximum ad failure time period, wherein the mode switch alert display notifies the user that the software is about to be switched from the first operating mode to the second operating mode, unless the user takes corrective action to rectify the ad display failure condition; and a mode switching function that switches the software from the first operating mode to the second operating mode if the user does not take corrective action in response to the mode switch alert display.
391. The software as set forth in Claim 382, further comprising: an advertisement display monitor function that is activated when the software is in the first operating mode, wherein the advertisement display monitor function determines whether or not an ad display failure condition has occurred, whereby the ad display failure condition occurs when the advertisement display function has not successfully displayed at least a prescribed minimum number of advertisements over a prescribed time period; an e-mail function monitor function that determines whether or not an e-mail function failure condition has occurred, whereby the e-mail failure condition occurs when the software has not successfully sent and /or received e-mail messages over the prescribed time period; and an adware failure nag function that is activated when the software is in the first operating mode upon detection that an ad display failure condition has occurred and an e-mail function failure condition has not occurred,, whereupon the adware failure nag function generates an adware nag failure display that notifies the user that advertisements have not been successfully displayed, and that warns the user that the operating mode of the software will be switched from the first operating mode to the second operating mode if the ad display failure condition is not rectified.
392. The software as set forth in Claim 391, further comprising a mode switching function that switches the software from the first operating mode to the second operating mode upon expiration of a prescribed maximum ad failure time period.
393. The software as set forth in Claim 391, further comprising: a deadbeat user alert function that generates a mode switch alert display upon expiration of a prescribed maximum ad failure time period, wherein the mode switch alert display notifies the user that the software is about to be switched from the first operating mode to the second operating mode, unless the user takes corrective action to rectify the ad display failure condition; and a mode switching function that switches the software from the first operating mode to the second operating mode if the user does not take corrective action in response to the mode switch alert display.
394. The software as set forth in Claim 382, further comprising: an advertisement display monitor function that is activated when the software is in the first operating mode, wherein the advertisement display monitor function determines whether or not an ad display failure condition has occurred, whereby the ad display failure condition occurs when the advertisement display function has not successfully displayed at least a prescribed number of advertisements over a prescribed time period; an e-mail function monitor function that determines whether or not an e-mail function failure condition has occurred, whereby the e-mail failure condition occurs when the software has not successfully sent and /or received e-mail messages over the prescribed time period; and an adware failure nag function that is activated when the software is in the first operating mode upon detection that an ad display failure condition has occurred and an e-mail function failure condition has not occurred,, whereupon the adware failure nag function generates an adware nag failure display at prescribed ad failure nag intervals, wherein the adware nag failure display notifies the user that advertisements have not been successfully displayed, and warns the user that the operating mode of the software will be switched from the first operating mode to the second operating mode if the ad display failure condition is not rectified.
395. The software as set forth in Claim 394, wherein the prescribed ad failure nag intervals decrease over a time span between the initial detection of the ad display failure condition and the expiration of a prescribed maximum ad failure time period.
396. The software as set forth in Claim 395, further comprising a mode switching function that switches the software from the first operating mode to the second operating mode upon expiration of the prescribed maximum ad failure time period.
397. The software as set forth in Claim 394, further comprising: a deadbeat user alert function that generates a mode switch alert display upon expiration of a prescribed maximum ad failure time period, wherein the mode switch alert display notifies the user that the software is about to be switched from the first operating mode to the second operating mode, unless the user takes corrective action to rectify the ad display failure condition; and a mode switching function that switches the software from the first operating mode to the second operating mode if the user does not take corrective action in response to the mode switch alert display.
398. The software as set forth in Claim 1, further comprising: an audit function that compiles ad-related statistical data relating to downloaded advertisements; and an audit data transmit function that transmits the ad-related statistical data to a prescribed server.
399. The software as set forth in Claim 398, wherein the prescribed server is associated with the advertisement distribution server system.
400. The software as set forth in Claim 398, wherein the prescribed server is associated with a vendor of the software.
401. The software as set forth in Claim 398, wherein the prescribed server is associated with a producer of the software.
402. The software as set forth in Claim 398, wherein the audit data transmit function is randomly activated.
403. The software as set forth in Claim 398, wherein the audit data transmit function is activated at random times.
404. The software as set forth in Claim 398, wherein the audit data transmit function is activated in a random manner.
405. The software as set forth in Claim 398, wherein the audit function compiles audit data comprising: user demographic data; software usage data regarding usage of the software by the user; ad-related statistical data; features of the software used by the user; and user-selected settings.
406. The software as set forth in Claim 405, wherein the prescribed server is associated with the advertisement distribution server system.
407. The software as set forth in Claim 405, wherein the prescribed server is associated with a vendor of the software.
408. The software as set forth in Claim 405, wherein the prescribed server is associated with a producer of the software.
409. The software as set forth in Claim 405, wherein the prescribed server is under the control of a vendor of the software.
410. The software as set forth in Claim 405, wherein the prescribed server is under the control of a producer of the software.
411. The software as set forth in Claim 405, wherein the audit data transmit function is activated in a random manner.
412. The software as set forth in Claim 405, wherein the audit data transmit function is activated at random times.
413. The software as set forth in Claim 405, wherein the audit data transmit function is randomly activated.
414. The software as set forth in Claim 1, further comprising: an advertisement storage function for storing downloaded advertisements on a storage medium associated with the client device; an advertisement display function that displays one or more selected ones of the stored advertisements; an audit function that compiles ad-related statistical data relating to displayed advertisements; and an audit data transmit function that transmits the ad-related statistical data to a prescribed server.
415. The software as set forth in Claim 414, wherein the prescribed server is associated with the advertisement distribution server system.
416. The software as set forth in Claim 414, wherein the prescribed server is associated with a vendor of the software.
417. The software as set forth in Claim 414, wherein the prescribed server is associated with a producer of the software.
418. The software as set forth in Claim 414, wherein the prescribed server is under the control of a vendor of the software.
419. The software as set forth in Claim 414, wherein the prescribed server is under the control of a producer of the software.
420. The software as set forth in Claim 414, wherein the audit data transmit function is randomly activated.
PCT/US2000/018713 1999-12-08 2000-07-07 Method for distributing advertisements to e-mail clients WO2001043009A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
AU60806/00A AU6080600A (en) 1999-12-08 2000-07-07 Method for distributing advertisements to e-mail clients
JP2001544224A JP2003529821A (en) 1999-12-08 2000-07-07 Email software and methods and systems for delivering advertisements to client devices with such email software installed

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US16962299P 1999-12-08 1999-12-08
US60/169,622 1999-12-08
US20939200P 2000-06-01 2000-06-01
US60/209,392 2000-06-01
US60912300A 2000-06-30 2000-06-30
US09/609,123 2000-06-30

Publications (2)

Publication Number Publication Date
WO2001043009A1 true WO2001043009A1 (en) 2001-06-14
WO2001043009A9 WO2001043009A9 (en) 2002-08-01

Family

ID=27389684

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/US2000/018713 WO2001043009A1 (en) 1999-12-08 2000-07-07 Method for distributing advertisements to e-mail clients
PCT/US2000/029191 WO2001043376A1 (en) 1999-12-08 2000-10-20 Method and system for distributing advertisements to client devices

Family Applications After (1)

Application Number Title Priority Date Filing Date
PCT/US2000/029191 WO2001043376A1 (en) 1999-12-08 2000-10-20 Method and system for distributing advertisements to client devices

Country Status (3)

Country Link
JP (1) JP2003529821A (en)
AU (7) AU6080600A (en)
WO (2) WO2001043009A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040249709A1 (en) 2002-11-01 2004-12-09 Donovan Kevin Rjb Method and system for dynamic textual ad distribution via email

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2572050C (en) 2004-06-25 2011-01-25 Nokia Corporation File delivery session handling
US20120278185A1 (en) * 2011-05-01 2012-11-01 Vinod Kumar Ramachandran Method to adapt ads rendered in a mobile device based on existence of other mobile applications
US10674199B2 (en) 2017-08-28 2020-06-02 Otis Elevator Company Media content selection for passengers

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996024213A1 (en) * 1995-02-01 1996-08-08 Freemark Communications, Inc. System and method for providing end-user free email
WO1999052056A1 (en) * 1998-04-03 1999-10-14 Preview Systems, Inc. Advertising-subsidized and advertising-enabled software

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5809242A (en) * 1996-04-19 1998-09-15 Juno Online Services, L.P. Electronic mail system for displaying advertisement at local computer received from remote system while the local computer is off-line the remote system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996024213A1 (en) * 1995-02-01 1996-08-08 Freemark Communications, Inc. System and method for providing end-user free email
WO1999052056A1 (en) * 1998-04-03 1999-10-14 Preview Systems, Inc. Advertising-subsidized and advertising-enabled software

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040249709A1 (en) 2002-11-01 2004-12-09 Donovan Kevin Rjb Method and system for dynamic textual ad distribution via email
JP2006505079A (en) * 2002-11-01 2006-02-09 グーグル・インク Method and system for distributing dynamic text advertisements via email
US8311890B2 (en) 2002-11-01 2012-11-13 Google Inc. Method and system for dynamic textual ad distribution via email

Also Published As

Publication number Publication date
AU1100601A (en) 2001-06-18
WO2001043376A1 (en) 2001-06-14
WO2001043009A9 (en) 2002-08-01
AU2906901A (en) 2001-06-18
AU2577201A (en) 2001-06-18
AU1223601A (en) 2001-06-18
AU6080600A (en) 2001-06-18
JP2003529821A (en) 2003-10-07
AU2256201A (en) 2001-06-18
AU2073301A (en) 2001-06-18

Similar Documents

Publication Publication Date Title
US8712848B2 (en) Method for distributing advertisements to client devices using an obscured ad monitoring function
US20010044736A1 (en) E-mail software and method and system for distributing advertisements to client devices that have such e-mail software installed thereon
US20070005428A1 (en) Method for distributing advertisements to client devices having e-mail software installed including multiple advertisement operational modes
US20070038728A1 (en) A system for controlling the distribution of advertisements to informational client devices using a playlist
US20010034763A1 (en) System for distributing advertisements to client devices
US20020029166A1 (en) E-mail software and method and system for distributing advertisements to client devices that have such e-mail software installed thereon
US20020072967A1 (en) System for controlling the distribution of advertisements to informational client devices
US20040039784A1 (en) E-mail software and method and system for distributing advertisements to client devices that have such e-mail software installed thereon
US20010044741A1 (en) E-mail software and method and system for distributing advertisements to client devices that have such e-mail software installed thereon
WO2001043018A1 (en) Method for distributing advertisements to client devices
US20040249708A1 (en) E-mail software and method and system for distributing advertisements to client devices that have such e-mail software installed thereon
US20030149738A1 (en) E-mail software and method and system for distributing advertisements to client devices that have such e-mail software installed thereon
US20010047408A1 (en) E-mail software and method and system for distributing advertisements to client devices that have such E-mail software installed thereon
WO2001042957A2 (en) Method for distributing advertisements to client devices
WO2001043017A9 (en) Method and system for distributing advertisements to client devices
WO2001043009A1 (en) Method for distributing advertisements to e-mail clients
WO2001043014A9 (en) Method and system for distributing advertisements to client devices
WO2001043377A1 (en) Method and system for distributing advertisement to client devices
WO2001043375A1 (en) Method and system for distributing advertisements to client devices
WO2001042961A2 (en) System for distributing advertisements to client devices
WO2001043019A1 (en) Method and system for distributing advertisements to client devices
WO2001043011A9 (en) Method for distributing advertisements to client devices
WO2001043015A9 (en) Method and system for distributing advertisements to client devices
WO2001043374A9 (en) Method and system for distributing advertisements to client devices
WO2001043013A9 (en) Method and system for distributing advertisements to client devices

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref country code: JP

Ref document number: 2001 544224

Kind code of ref document: A

Format of ref document f/p: F

AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
AK Designated states

Kind code of ref document: C2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: C2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

COP Corrected version of pamphlet

Free format text: PAGES 3/46 AND 4/46, DRAWINGS, REPLACED BY NEW PAGES 3/46 AND 4/46; DUE TO LATE TRANSMITTAL BY THE RECEIVING OFFICE

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase