Title:
E-mail software and method and system for distributing advertisements to client devices that have such e-mail software installed thereon
Document Type and Number:
Kind Code:
A1

Abstract:
An advertisement distribution system for distributing advertisements to a multiplicity of client devices via a communications network includes at least one ad server that stores the advertisements to be distributed to the client devices, each advertisement being stored in a storage location designated by a source address, and at least one playlist server that receives a playlist request from each of the client devices, and that transmits a playlist response in response to each received playlist request. Moreover, the playlist response transmitted to each client device includes at least one playlist that identifies advertisements to be downloaded by that client device.

Inventors:
Jacobs, Paul E. (La Jolla, CA, US)
Antonio, Franklin P. (Del Mar, CA, US)
Dorner, Steven (Urbana, IL, US)
Noerenberg, John W. (San Diego, CA, US)
Belk, Jeffrey K. (Poway, CA, US)
Ogdon, Benjamin P. (Del Mar, CA, US)
Beckley, Jeffrey D. (Poway, CA, US)
Bird, Alan (San Diego, CA, US)
Boyd, John D. (San Diego, CA, US)
Purlia, John S. (San Diego, CA, US)
Rhodes, William J. (San Diego, CA, US)
Ross, David J. (San Diego, CA, US)
Dudziak, Matthew J. (San Diego, CA, US)
      Plaque It!

Sponsored by:
Flash of Genius
Application Number:
09/728065
Publication Date:
03/07/2002
Filing Date:
12/01/2000
View Patent Images:
Images are available in PDF form when logged in. To view PDFs, Login  or  Create Account (Free!)
Assignee:
QUALCOMM Incorporated
Primary Class:
Other Classes:
709/217
International Classes:
(IPC1-7): G06F017/60; G06F015/16
Attorney, Agent or Firm:
Patents Department,Qualcomm Incorporated (5775 Morehouse Drive, San Diego, CA, 92121-1714, US)
Claims:

What is claimed is:



1. An advertisement distribution system for distributing advertisements to a multiplicity of client devices via a communications network, the system comprising: at least one ad server that stores the advertisements to be distributed to the client devices, each advertisement being stored in a storage location designated by a source address; at least one playlist server that receives a playlist request from each of the client devices, and that transmits a playlist response in response to each received playlist request; and wherein the playlist response transmitted to each client device includes at least one playlist that identifies advertisements to be downloaded by that client device.

2. The advertisement distribution system as set forth in claim 1, wherein the communications network comprises the Internet.

3. The advertisement distribution system as set forth in claim 1, wherein each of the client devices is equipped with software that effects communications with both the system for distributing advertisements and with a data communications service provider.

4. The advertisement distribution system as set forth in claim 3, wherein the software is subsidized by revenues attributable to the downloaded advertisements.

5. The advertisement distribution system as set forth in claim 3, wherein the data communications service provider comprises an e-mail service provider.

6. The advertisement distribution system as set forth in claim 3, wherein the data communications service provider comprises an Internet service provider.

7. The advertisement distribution system as set forth in claim 3, wherein the software is e-mail software.

8. The advertisement distribution system as set forth in claim 7, wherein the e-mail software is subsidized by revenues attributable to the downloaded advertisements.

9. The advertisement distribution system as set forth in claim 3, wherein the data communications service provider comprises an e-mail service provider.

10. The advertisement distribution system as set forth in claim 3, wherein the data communications service provider comprises an Internet service provider.

11. The advertisement distribution system as set forth in claim 7, wherein the data communications service provider comprises an e-mail service provider.

12. The advertisement distribution system as set forth in claim 3, wherein the advertisement distribution system is operated by a producer of the software.

13. The advertisement distribution system as set forth in claim 3, wherein the advertisement distribution system is operated by a vendor of the software.

14. The advertisement distribution system as set forth in claim 12, wherein the software is e-mail software.

15. The advertisement distribution system as set forth in claim 13, wherein the software is e-mail software.

16. The advertisement distribution system as set forth in claim 3, 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.

17. The advertisement distribution system as set forth in claim 3, 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).

18. The advertisement distribution system as set forth in claim 1, wherein the at least one playlist included in the playlist response transmitted to each client device contains a list of ad identifiers that identify respective ones of the advertisements to be downloaded by that client device, and a list of corresponding source addresses that identify the corresponding storage location from which each respective advertisement can be fetched by that client device.

19. The advertisement distribution system as set forth in claim 1, wherein: the at least one playlist included in the playlist response transmitted to each client device contains ad display parameters; and each of the client devices displays at least selected ones of the downloaded advertisements in accordance with the ad display parameters contained in the at least one playlist included in the playlist response transmitted to that client device.

20. The advertisement distribution system as set forth in claim 19, wherein the ad display parameters specify, for each of at least prescribed ones of the at least selected ones of the downloaded advertisements, how many times that advertisement is to be displayed for a given time period, and how long that advertisement is to be displayed each time that it is displayed.

21. The advertisement distribution system as set forth in claim 19, wherein the ad display parameters specify, for each of at least prescribed ones of the at least selected ones of the downloaded advertisements, how many times that advertisement is to be displayed for a given time period.

22. The advertisement distribution system as set forth in claim 19, wherein the ad display parameters specify, for each of at least prescribed ones of the at least selected ones of the downloaded advertisements, how long that advertisement is to be displayed each time that it is displayed.

23. The advertisement distribution system as set forth in claim 19, wherein the ad display parameters specify, for each of at least prescribed ones of the at least selected ones of the downloaded advertisements, a 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.

24. The advertisement distribution system as set forth in claim 20, wherein the ad display parameters specify, for each of the at least prescribed ones of the at least selected ones of the downloaded advertisements, a 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.

25. The advertisement distribution system as set forth in claim 19, wherein the ad display parameters specify, for each of at least prescribed ones of the at least selected ones of the downloaded advertisements, the total/cumulative amount of time that advertisement is to be displayed.

26. The advertisement distribution system as set forth in claim 20, wherein the ad display parameters specify, for each of the at least prescribed ones of the at least selected ones of the downloaded advertisements, the total/cumulative amount of time that advertisement is to be displayed.

27. The advertisement distribution system as set forth in claim 24, wherein the ad display parameters specify, for each of the at least prescribed ones of the at least selected ones of the downloaded advertisements, the total/cumulative amount of time that advertisement is to be displayed.

28. The advertisement distribution system as set forth in claim 1, wherein the playlist request received from each client device includes an identification of a current playlist(s) for that client device, and the playlist response transmitted by the at least one playlist server in response thereto includes either status data that indicates that client device's current playlist(s) is valid and does not need to be augmented, or a new playlist(s).

29. The advertisement distribution system as set forth in claim 18, wherein the playlist request received from each client device includes an identification of a current playlist(s) for that client device, and the playlist response transmitted by the at least one playlist server in response thereto includes either status data that indicates that client device's current playlist(s) is valid and does not need to be augmented, or a new playlist(s).

30. The advertisement distribution system as set forth in claim 29, wherein each of the client devices compares the ad identifiers listed in its current playlist(s) with the ad identifiers listed in its new playlist(s), generates a list of source addresses for the advertisements corresponding to the ad identifiers in its new playlist(s) that are different from the ad identifiers contained in its current playlist(s), and then fetches the advertisements corresponding to the generated list of source addresses from the appropriate storage locations, over one or more advertisement download sessions.

31. The advertisement distribution system as set forth in claim 1, wherein the at least one playlist server receives the playlist request from each of the client devices at prescribed playlist check intervals.

32. The advertisement distribution system as set forth in claim 29, wherein the at least one playlist server receives the playlist request from each of the client devices at prescribed playlist check intervals.

33. The advertisement distribution system as set forth in claim 32, wherein each of the client devices compares the ad identifiers listed in its current playlist(s) with the ad identifiers listed in its new playlist(s), generates a list of source addresses for the advertisements corresponding to the ad identifiers in its new playlist(s) that are different from the ad identifiers contained in its current playlist(s), and then fetches the advertisements corresponding to the generated list of source addresses from the appropriate storage locations, over one or more advertisement download sessions.

34. The advertisement distribution system as set forth in claim 33, wherein each advertisement download session is limited to a prescribed maximum time duration.

35. The advertisement distribution system as set forth in claim 1, wherein the advertisements comprise advertisement files each of which includes an image.

36. The advertisement distribution system as set forth in claim 35, wherein each image comprises one of a GIF image, a PNG image, and a JPEG image.

37. The advertisement distribution system as set forth in claim 1, wherein the at least one playlist server receives from each of the client devices a respective cookie containing information relating to user/client device behavior and/or user demographics specific to that particular client device.

38. The advertisement distribution system as set forth in claim 37, wherein the at least one playlist server selects the at least one playlist included in the playlist response transmitted to each client device based at least partially on the respective cookie received from that client device.

39. The advertisement distribution system as set forth in claim 1, wherein the at least one playlist server selects the at least one playlist included in the playlist response transmitted to each client device based at least partially on monitored behavior of that client device.

40. The advertisement distribution system as set forth in claim 1, wherein the at least one playlist server selects the at least one playlist included in the playlist response transmitted to each client device based at least partially on user demographics.

41. The advertisement distribution system as set forth in claim 1, wherein the at least one playlist included in the playlist response transmitted to each client device is customized to that client device.

42. The advertisement distribution system as set forth in claim 1, wherein the at least one playlist included in the playlist response transmitted to each client device is tailored to that client device.

43. The advertisement distribution system as set forth in claim 1, wherein: the playlist request received from each client device includes client information; and the at least one playlist server selects the at least one playlist included in the playlist response transmitted to that client device based at least partially on the client information included in the playlist request received from that client device.

44. The advertisement distribution system as set forth in claim 1, wherein the playlist response transmitted to each client device further includes a client information portion that instructs that client device with regard to handling of the playlist(s) included in the respective playlist response received by that client device.

45. The advertisement distribution system as set forth in claim 29, wherein the playlist response transmitted to each client device further includes a client information portion that instructs that client device with regard to handling of the playlist(s) included in the respective playlist response received by that client device.

46. The advertisement distribution system as set forth in claim 45, wherein the client information portion of the playlist response transmitted to each client device includes a merge/not merge data field that has a first state and a second state, whereby that client device merges its new playlist(s) with its current playlist(s) in response to the first state of the merge/not merge data field, and does not merge its new playlist(s) with its current playlist(s) in response to the second state of the merge/not merge data field.

47. The advertisement distribution system as set forth in claim 1, wherein the playlist request received by the at least one playlist server from each client device includes usage data relating to the amount of time that the user has engaged in at least one monitored activity over a prescribed most recent time interval.

48. The advertisement distribution system as set forth in claim 47, wherein the at least one playlist server selects the at least one playlist included in the playlist response transmitted to each client device based at least partially on the usage data included in the playlist request received by the at least one playlist server from that client device.

49. The advertisement distribution system as set forth in claim 3, wherein the playlist request received by the at least one playlist server from each client device includes a user data field that includes information identifying the software installed on that client device.

50. The advertisement distribution system as set forth in claim 1, wherein the playlist request received by the at least one playlist server from each client device includes a user data field that includes information identifying an opera ting platform of that client device.

51. The advertisement distribution system as set forth in claim 49, wherein user data field included in the playlist request received by the at least one playlist server from each client device further includes information identifying an operating platform of that client device.

52. The advertisement distribution system as set forth in claim 3, wherein the playlist request received by the at least one playlist server from each client device includes usage data relating to the amount of time that the user has used the software installed on that client device over a prescribed most recent time interval.

53. The advertisement distribution system as set forth in claim 52, wherein the at least one playlist server selects the at least one playlist included in the playlist response transmitted to each client device based at least partially on the usage data included in the playlist request received by the at least one playlist server from that client device.

54. The advertisement distribution system as set forth in claim 1, wherein the playlist request received by the at least one playlist server from each client device includes a display time remaining data field that specifies the total amount of display time required for the advertisements that remain to be displayed by that client device.

55. The advertisement distribution system as set forth in claim 1, wherein the playlist request received by the at least one playlist server from each client device includes a display time used recently data field that specifies the total amount of times that advertisements that were displayed by that client device during a prescribed latest time interval.

56. The advertisement distribution system as set forth in claim 55, wherein the prescribed latest time interval comprises the present day.

57. The advertisement distribution system as set forth in claim 1, wherein the playlist request received by the at least one playlist server from each client device includes client device display screen data that specifies dimensions of a display screen associated with that client device.

58. The advertisement distribution system as set forth in claim 57, wherein the dimensions include the height, width, and depth of the display screen, in pixels.

59. The advertisement distribution system as set forth in claim 3, wherein each of the client devices includes a custom installer function that generates a distributor identifier that identifies a distributor that distributed the software installed on that client device.

60. The advertisement distribution system as set forth in claim 59, wherein the playlist request received by the at least one playlist server from each client device includes the distributor identifier that identifies the distributor that distributed the software installed on that client device.

61. The advertisement distribution system as set forth in claim 60, wherein a vendor of the software uses the distributor identifiers received from the client devices to apportion revenues attributable to advertisements downloaded by the client devices to distributors of the software installed on the client devices.

62. The advertisement distribution system as set forth in claim 60, wherein a producer of the software uses the distributor identifiers received from the client devices to apportion revenues attributable to advertisements downloaded by the client devices to distributors of the software installed on the client devices.

63. The advertisement distribution system as set forth in claim 1, wherein the playlist request received by the at least one playlist server from each client device includes ad display information that identifies the advertisements that have been displayed by that client device during a prescribed recent time interval.

64. The advertisement distribution system as set forth in claim 63, wherein the at least one playlist server selects the at least one playlist included in the playlist response transmitted to each client device based at least partially on the ad display information included in the playlist request received by the at least one playlist server from that client device.

65. The advertisement distribution system as set forth in claim 55, wherein the at least one playlist server selects the at least one playlist included in the playlist response transmitted to each client device based at least partially on the display time used recently data field included in the playlist request received by the at least one playlist server from that client device.

66. The advertisement distribution system as set forth in claim 54, wherein the at least one playlist server selects the at least one playlist included in the playlist response transmitted to each client device based at least partially on the display time remaining data field included in the playlist request received by the at least one playlist server from that client device.

67. The advertisement distribution system as set forth in claim 43, wherein the client information included in the playlist request received from each client device includes display statistics for advertisements that were displayed and/or advertisements that remain to be displayed by that client device during a prescribed time interval.

68. The advertisement distribution system as set forth in claim 43, wherein the client information included in the playlist request received from each client device includes information regarding behavior of the client device during a prescribed time interval.

69. The advertisement distribution system as set forth in claim 43, wherein the client information included in the playlist request received from each client device includes information regarding behavior of a user(s) of the client device during a prescribed time interval.

70. The advertisement distribution system as set forth in claim 43, wherein the client information included in the playlist request received from each client device includes information regarding activity of the client device during a prescribed time interval.

71. The advertisement distribution system as set forth in claim 43, wherein the client information included in the playlist request received from each client device includes information regarding activity of a user(s) of the client device during a prescribed time interval.

72. The advertisement distribution system as set forth in claim 3, wherein: the playlist request received from each client device includes level of usage data that is indicative of the level of usage of the software installed on that client device during a prescribed time interval; and the at least one playlist server selects the at least one playlist included in the playlist response transmitted to that client device based at least partially on the level of usage data included in the playlist request received from that client device.

73. The advertisement distribution system as set forth in claim 31, wherein the playlist response transmitted by the at least one playlist server to each client device further includes a playlist request interval data field that specifies the prescribed playlist check intervals for that client device.

74. The advertisement distribution system as set forth in claim 32, wherein the playlist response transmitted by the at least one playlist server to each client device further includes a playlist request interval data field that specifies the prescribed playlist check intervals for that client device.

75. The advertisement distribution system as set forth in claim 33, wherein the playlist response transmitted by the at least one playlist server to each client device further includes a playlist request interval data field that specifies the prescribed playlist check intervals for that client device.

76. The advertisement distribution system as set forth in claim 75, wherein the prescribed playlist check intervals are scheduled independently of the advertisement download sessions.

77. The advertisement distribution system as set forth in claim 75, wherein the prescribed playlist check intervals span a plurality of on-line e-mail sessions during which the respective client device is online for the purpose of sending and/or receiving e-mail messages.

78. The advertisement distribution system as set forth in claim 1, wherein the playlist response transmitted by the at least one playlist server to each client device further includes a client information portion that includes an ad history interval data field that specifies the time period for which that client device must remember that it displayed a particular advertisement.

79. The advertisement distribution system as set forth in claim 1, wherein the playlist response transmitted by the at least one playlist server to each client device further includes a client information portion that includes an ad display sequence data field that specifies whether that client device should select advertisements for display in a linear or random manner.

80. The advertisement distribution system as set forth in claim 1, wherein the playlist response transmitted by the at least one playlist server to each client device further includes a client information portion that includes an ad display window data field that specifies the dimensions of an ad display window within which the advertisements are to be displayed on a display associated with that client device.

81. The advertisement distribution system as set forth in claim 1, wherein: the advertisements identified in the at least one playlist included in the playlist response transmitted by the at least one playlist server to each client device include a plurality of regular ads and at least one runout ad; and the playlist response transmitted by the at least one playlist server to each client device further includes a client information portion that includes a display time quota field that specifies the maximum display time for which that client device should display the regular ads before displaying the at least one runout ad.

82. The advertisement distribution system as set forth in claim 1, wherein the playlist response transmitted by the at least one playlist server to each client device further includes a client information portion that contains instructions for that client device to control the manner in which that client device obtains, handles, and displays advertisements.

83. The advertisement distribution system as set forth in claim 29, wherein the playlist response transmitted by the at least one playlist server to each client device further includes a mix/block data field that specifies whether the advertisements identified in that client device's new playlist(s) can be mixed with previously-stored advertisements from other playlists, or must be displayed as a block.

84. The advertisement distribution system as set forth in claim 29, wherein the playlist response transmitted by the at least one playlist server to each client device further includes a block ad display sequence data field that specifies whether that client device should select advertisements identified in the new playlist(s) for display in a linear or random manner.

85. The advertisement distribution system as set forth in claim 83, wherein the playlist response transmitted by the at least one playlist server to each client device further includes a block ad display sequence data field that specifies whether that client device should select advertisements identified in the new playlist(s) for display in a linear or random manner.

86. The advertisement distribution system as set forth in claim 1, wherein each of the client devices includes 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.

87. The advertisement distribution system as set forth in claim 86, wherein the playlist response transmitted by the at least one playlist server to each client device further includes a clickbase data field that specifies the clickbase URI.

88. The advertisement distribution system as set forth in claim 87, wherein the clickbase URI designates a web page associated with the advertisement distribution system.

89. The advertisement distribution system as set forth in claim 88, wherein the web page designated by the clickbase URI is administered by a vendor of the software.

90. The advertisement distribution system as set forth in claim 88, wherein the web page designated by the clickbase URI is administered by a producer of the software.

91. The advertisement distribution system as set forth in claim 1, wherein the playlist response transmitted by the at least one playlist server to each client device further includes a user-friendly title of each of the advertisements identified in the at least one playlist included in that playlist response.

92. The advertisement distribution system as set forth in claim 1, wherein the playlist response transmitted by the at least one playlist server to each client device further includes an ad type data field that specifies an ad type of each of the advertisements identified in the at least one playlist included in that playlist response.

93. The advertisement distribution system as set forth in claim 92, wherein the ad type is one of a regular ad, a runout ad, a toolbar button ad, or a sponsor placard ad.

94. The advertisement distribution system as set forth in claim 1, wherein the playlist response transmitted by the at least one playlist server to each client device further includes an ad click URI for each of the advertisements identified in the at least one playlist included in that playlist response, whereby the ad click URI specifies a web page to be displayed in response to the user clicking on the associated advertisement.

95. The advertisement distribution system as set forth in claim 1, wherein the at least one playlist included in the playlist response transmitted by the at least one playlist server to each client device includes a plurality of playlists.

96. The advertisement distribution system as set forth in claim 95, wherein the plurality of playlists included in the playlist response transmitted by the at least one playlist server to each client device includes at least one playlist for relatively long-lived advertisements, and at least one playlist for relatively short-lived advertisements.

Description:

COPYRIGHT NOTICE

[0001] 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

[0002] 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 for delivering advertisements to client computers having this advertiser-supported e-mail software installed thereon.

[0003] This application is based on Provisional Patent Application No. 60/169,622, which was filed on Dec. 8, 1999. This Provisional Patent Application is incorporated herein by reference in its entirety.

[0004] 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.gov. 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).

[0005] 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.

[0006] 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:

[0007] 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.;

[0008] 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;

[0009] 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

[0010] 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.

[0011] 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.

[0012] 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.

[0013] 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.

[0014] 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 Feb. 1, 1995, based on U.S. application Ser. No. 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.

[0015] 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. Pat. No. 5,809,242, which issued to Marsh et al. on Dec. 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. Pat. No. 5,838,790, which issued to McAuliffe et al on Nov. 17, 1998, and in U.S. Pat. No. 5,848,397, which issued to Marsh et al on Dec. 8, 1998; the disclosures of both of these patents are also expressly incorporated herein by reference.

[0016] 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.

[0017] 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

[0018] 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.

[0019] 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 stand-alone 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.

[0020] 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.

[0021] 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.

[0022] 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.

[0023] 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.

[0024] In one aspect, the present invention provides an advertisement distribution system for distributing advertisements to a multiplicity of client devices via a communications network. Preferably, the system includes at least one ad server that stores the advertisements to be distributed to the client devices, each advertisement being stored in a storage location designated by a source address, and at least one playlist server that receives a playlist request from each of the client devices, and that transmits a playlist response in response to each received playlist request. Moreover, the playlist response transmitted to each client device includes at least one playlist that identifies advertisements to be downloaded by that client device.

[0025] 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.

[0026] Furthermore, certain terms that have been used in the foregoing and following descriptions of the present invention are defined as follows: 1

TERM DESCRIPTION
Advertisement(s) This term is intended to broadly encompass any secondary content that is
delivered or distributed to client devices in addition to the primary
content, e.g., e-mail messages, which the software product instantiated by
the client device is designed to receive, transmit, process, display, and/or
utilize. For example, this term is intended to cover, without limitation,
paid advertisements, community service messages, public service
announcements, system information messages or announcements, cross-
promo spots, artwork, and any other graphical, multimedia, audio, video,
text, or other secondary digital content. Nevertheless, it will be
recognized that the primary purpose of the presently contemplated
commercial embodiment of the present invention is to distribute paid
advertisements, and thus, in accordance with the preferred embodiment of
the present invention, the advertisements will be exclusively, or at least
primarily, paid advertisements.
Client Device This term is intended to broadly encompass any device that has digital
data processing and output, e.g., display, capabilities, including, but not
limited to, desktop computers, laptop computers, hand-held computers,
notebook computers, Personal Digital Assistants (PDAs), palm-top
computing devices, intelligent devices, information appliances, video
game consoles, information kiosks, wired and wireless Personal
Communications Systems (PCS) devices, smart phones, intelligent
cellular telephones with built-in web browsers, intelligent remote
controllers for cable, satellite, and/or terrestrial broadcast television, and
any other device that has the requisite capabilities.
Information This term is intended to broadly encompass any intelligible form of
information which can be presented by a client device, i.e., an information
client device, including, without limitation, text, documents, files,
graphical objects, data objects, multimedia content, audio/sound files,
video files, MPEG files, JPEG files, GTE files, PNG files, HTML
documents, applications, formatted documents (e.g., word processor
and/or spreadsheet documents or files), MP3 files, animations,
photographs, and any other document, file, digital, or multimedia content
that can be transmitted over a communications network such as the
Internet.
E-mail Messages This term is intended to broadly encompass the e-mail message and any
attachments thereto, including, without limitation, text, documents, files,
graphical objects, data objects, multimedia content, audio/sound files,
video files, MPEG files, JPEG files, GTE files, PNG files, HTML
documents, applications, formatted documents (e.g., word processor
and/or spreadsheet documents or files), MP3 files, animations,
photographs, and any other document, file, digital, or multimedia content
that can be transmitted over a communications network such as the
Internet.
Software This term is intended to broadly encompass the developer (or developers),
Provider sellers, distributors, etc., of the multi-mode software products(s) installed
on the client device.
Memory This term is intended to broadly encompass any device capable of storing
and/or incorporating computer readable code for instantiating the client
device referred to immediately above. Thus, the term encompasses all
types of recording medium, e.g., a CD-ROM, a disk drive (hard or soft),
magnetic tape, and recording devices, e.g., memory devices including
DRAM, SRAM, EEPROM, FRAM, and Flash memory. It should be
noted that the term is intended to include any type of device which could
be deemed persistent storage. To the extent that an 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

[0027] 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:

[0028] 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;

[0029] FIG. 2 is a high-level diagram of a representative one of the client devices illustrated in FIG. 1 ;

[0030] 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;

[0031] 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;

[0032] FIG. 4B illustrates a dialog box associated with the state flow diagram illustrated in FIG. 4A ;

[0033] 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 ;

[0034] 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 ;

[0035] 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;

[0036] FIG. 8 illustrates an exemplary state flow diagram of a process by which a Box user can become a Paid user;

[0037] FIG. 9 illustrates an exemplary state flow diagram of a process by which the Paid User becomes an Unpaid user;

[0038] 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;

[0039] FIG. 11 illustrates a Nag Schedule employed by the software according to the present invention;

[0040] FIG. 12A 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;

[0041] 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;

[0042] FIG. 14 is a state flow diagram of an exemplary ad fetch process according to the present invention;

[0043] FIGS. 15 A- 15 H collectively illustrate an algorithm controlling ad scheduling in an exemplary embodiment according to the present invention;

[0044] FIGS. 16A and 16B illustrate parameter variations in alternative modes of ad display possible in an exemplary embodiment according to the present invention;

[0045] 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;

[0046] 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;

[0047] 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;

[0048] 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;

[0049] 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;

[0050] 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

[0051] FIG. 23 illustrates database accesses in accordance with another aspect of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0052] Illustrative embodiments and exemplary applications will now be described with reference to the accompanying drawings to disclose the advantageous teachings of the present invention.

[0053] 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.

[0054] 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.

[0055] As shown in FIG. 1 , the system 10 includes a plurality of client computers 100 a , 100 b , . . . , 100 n , 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 100 a , 100 b , . . . , 100 n 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.

[0056] FIG. 2 illustrates in further detail the hardware configuration of an exemplary one of the client computers 100 a , 100 b , . . . , 100 n illustrated in FIG. 1 . In the representative embodiment, the client computer 100 a 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 100 a . 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 100 a 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.

[0057] Referring again to FIG. 1 , each of the client computers 100 a , 100 b , . . . , 100 n 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 100 a , 100 b , . . . , 100 n , 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.

[0058] 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.

[0059] 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.

[0060] 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.

[0061] 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. 2

QUALCOMM INCORPORATED has several versions of
Applications the Eudora software, including:
EP4 Eudora Pro 4.x, either Windows
or Macintosh.
Eudora The new three-modal version of Eudora,
running in any of its modes.
Payware Eudora running in full-feature mode,
after the user has paid.
Freeware Eudora running in reduced-feature
mode.
Adware Eudora running in full-feature
mode with ads.
Paid App Any version of Payware to which
the user's registration
entitles him/her.
Unpaid App Any version of Payware newer
than that to which the user is
registered and entitled to.
Old Eudora Eudora versions prior to Eudora Pro 4.x.
User States A user state is the most basic concept to understanding
how the various modes of the application are
interrelated. The user state determines how the
program treats the user. The states are defined
as follows:
EP4 User A user of EP4 who has not
registered via the old (non-
Adware) registration process.
Registered A registered user of EP4.
EP4 User
New User A user using Eudora for the first
time, but who has not obtained a
boxed copy, e.g., bundled with a
newly purchased computer system,
etc.
Payware A user who has paid for Eudora,
User entered his/her registration
code, and is using a version
of Eudora to which he/she is
entitled.
Box User This is a user who has been
given their RegCode by an
installer, either from the box
product or from an EP4 updater,
and whose registration
information is therefore
unknown.
Free User A user who has chosen to use
Freeware but who has not
entered a Freeware registration
code.
Adware A user who is using the Adware version
User that displays ads.
Registered A Freeware (“Free”) user who has
Freeware entered a Freeware registration code.
User
Registered An Adware user who has entered an Ad
registration code.
Adware
User
Deadbeat A former Adware user who has been
User shut off due to Eudora's failure
to receive ads (or less than a
prescribed minimum number of ads).
Windows and Several windows and dialogs are used in the process.
Dialogs A fuller description of these will be given later,
but the major ones are briefly described
immediately below:
Intro Dialog A dialog presented to new users
explaining the software options
to new users.
Registration A window presented to the user every
Nag so often to suggest that the user
register his/her software.
Full- A window presented to Freeware users
Feature Nag requesting them to try Eudora Pro
again.
Free A dialog that tells the user the features
Downgrade that will no longer be available to
him/her if they switch to Freeware, but
allows
them to do so if they really wish.
Code Entry A dialog allowing the user to enter their
registration code.
Dialog
Ad Window A window or portion of a screen
displaying an ad. See FIGS.
3A and 3B.
Link A window that will display links the
History user has clicked on, i.e., ads the
Window user has seen.
Web Pages The software provider advantageously can elect to
restrict interactions between the user and the
software provider to the Internet to the maximum
extent possible. This will allow the software provider
the most flexibility in how the software provider
deals with actual users. One potential list of the
major pages is provided immediately below, although
these “pages” advantageously may be groups
of pages, or pages customized to match the
demographics of a given user, e.g., a customized
and/or branded version of Eudora provided by a major
retailer, e.g., a private label version of
Eudora provided to its users by an ISP.
Freeware A page that allows the user to register
Reg Page Freeware.
Payware A page that accepts payment for Eudora
Reg Page Pro and returns a registration code
to the user.
Adware Reg A page that allows users of Adware to
Page submit their registration information
to the software provider.
Lost Code A page that helps users who have lost
Page their registration codes. (May
require human intervention)
Update A page generated for a user that lists
Page possible upgrades and the latest
version for which he/she is registered.
Archived A page from which users can download
Versions all versions of Eudora.
Page
Profile Page A web page where users can enter their
profile information.
Nag Schedules A “Nag Schedule” is a bracketed set of numbers.
The numbers signify # of days since the
start of a trial period. Users will be nagged on
the days indicated. The last number signifies what
happens when the other numbers run out; the user
will either not be nagged (0), or be nagged every
so many days. For example, a schedule of [0,5,2]
means the user will be nagged on the first day, the
sixth day, and every other day thereafter.

[0062] 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:

[0063] Raised grey squares are conceptual names for buttons in dialogs.

[0064] 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.

[0065] In principle, any dialog or nag can be cancelled, leaving the user back in the initial state.

[0066] Web pages cannot change user state or generate more dialogs; hence, all web pages lead back to the user's initial state.

[0067] 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. 4 B, 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.

[0068] 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.

[0069] 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 100 a and a registration server 301 , which are connected to one another via network 200 . In FIG. 5 A, the Adware user indicated in FIG. 4A 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. 3 A, 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 100 a by way of e-mail server 304 .

[0070] As shown in FIG. 5 B, 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. 5 C- 5 G. 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: 3

RegName The name the user wishes to register under. The software provider will imply but
not require that this be the user's real name. The only thing this name will be used
for is registration.
Supplied by the user. When the software provider actually collects this name from
the user, the software provider will ask for it in terms of first and last names, called
RegFirstName and RegLastName, respectively. RegName is built by concatenating
RegFirstName, a single space, and RegLastName. Each of the first and last names
is limited to 20 significant characters; beyond that, characters will be ignored.
RegMonth The date of the registration, expressed as the number of months since Jan 1, 1999,
e.g., 8 bits (20 years). All 1's is reserved are for “never expires” situations.
Product A numeric code indicating what product the registration is for. The user will choose
the product; the software provider will translate that choice into an 8-bit code.

[0071] 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.

[0072] 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.

[0073] 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:

[0074] Manually. Users can type or paste values into the Enter Code dialog box. See FIG. 5F .

[0075] Windows Registry. At Eudora startup, the software will look for the RegCode in the Windows registry (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.

[0076] 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.

[0077] 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.

[0078] 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: 4

Eudora-File-Type This is always the first field, and describes what sort of information the
rest of the file contains. Its value will be either “regFile” or “Profile.”
Eudora-First-Name The first (given) name of the registrant, in US-ASCII.
Eudora-Last-Name The last (family) name of the registrant, in US-ASCII.
Eudora-Reg-Code The registration code as produced by the registration system
Profile Profile information. This takes the form of a relatively short, e.g., 127
bytes, ASCII string. A profile is generated for each user during the
registration process.
Eudora-Needs- If this field contains “YES”, then the user should be nagged to register
Registration: their copy of Eudora. This is used by installers that generate RegCodes
that the software provider otherwise would not have in its database.
Mailed-To This is the address the information was mailed to. If this field is present
and does not match any of the user's personalities or “me” nickname,
the information should not be acted on.

[0079] It should be noted that the Eudora-File-Type field must be present. The other fields listed above may or may not be present.

[0080] 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:

[0081] Validity—An invalid RegCode should be ignored.

[0082] 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.

[0083] 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.

[0084] 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 .

[0085] 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.

[0086] 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. 6 B, 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.

[0087] 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.

[0088] 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.

[0089] 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.

[0090] 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.

[0091] 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.

[0092] 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.

[0093] 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).

[0094] 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.

[0095] 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.

[0096] 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 inte