TRACKING METHOD AND SYSTEM FOR MARKETING SOFTWARE
BACKGROUND - FIELD OF INVENTION
This invention relates to the marketing of computer software, particularly via electronic commerce, specifically to methods for tracking and measuring the effectiveness of different distribution channels and marketing programs and obtaining both prospect and customer data.
BACKGROUND - DESCRIPTION OF PRIOR ART
Fig 1 is a conceptual diagram of the current way software is typically marketed and should be referred to in the discussion that follows. Definitions of technical terms used in this description are provided in the Glossary at the end of the specification. After developing a product 100 the vendor places "trial" versions of it in various distribution channels 102.
These trial versions are meant to allow a prospect to use the product freely for a limited period of time. They include code such that when the time expires, the software becomes inoperable. Another approach (see U.S. patent 5,907,617 to Ronning) is to disable certain key features of the product during the trial period.
In either case, at the conclusion of the trial period, the prospect is required to purchase an "activation code" which when entered into the product enables full operability.
A third approach, known in the industry as "shareware", leaves the software fully operable at the end of the trial period, relying on the prospect's internal sense of right and wrong to exact payment. An activation code may still be required to disable reminder notices.
In another approach, known in the industry as "freeware", fully operational software is distributed without expectation of payment from the user. In this case the "trial" period extends indefinitely. This may be done for a
plurality of reasons including establishment of market share, collection of associated advertising revenues, and joint promotions with a "for sale" product. It is to be emphasized, that although payment is not expected from the user in this case, the marketer expects profits to arise from a related source, for example advertising revenues or sales of related products. Thus, the marketer of "freeware" shares a common set of needs with marketers who distribute "trial" software for profit, although the expected source of the profit is different. Therefore, the term "trial software" as used herein should be understood to include "freeware" insofar as the needs of the two are conjoint and their distribution modalities are similar.
Many different distribution channels for the trial software are used. The most common are Web sites, FTP sites, and aggregations of trial software on CD ROMS. In addition there are typically many simultaneous instances of each type. For example, the trial software may be placed on many different Web sites in addition to the vendor's own. It is to the vendor's advantage to make the trial software as widely available as possible. This advantage is offset by the expense of placing the software in the various channels and monitoring the ongoing interaction with each channel.
Concurrent with placing trial versions in the distribution channels, the marketer typically places promotions 104 in various media to advertise the availability of the trial version. Typical media include print advertising, Web advertising, Usenet posts, Email advertising, etc. Again, it is to the vendor's advantage to advertise the availability of the software as widely as possible within the constraints of a budget.
Once an interested prospect becomes aware of the availability of the product through one of the vendor's promotions 106, he or she obtains a copy 108 from one of the distribution channels, installs it on his computer 110, and evaluates it. If it meets his approval 114, he purchases an activation code 116 from the vendor 118 after the trial period has expired. If it does not meet with his approval 112, he simply discards the software after the trial period has expired. Of course, in the case of "freeware", the "trial period" is indefinite and no payment is expected or activation code required.
The current process has a number of shortcomings and disadvantages: (a) Under the prior art system as shown in Fig 1, there is no way to measure the effectiveness of the distribution channels, i.e. which channels result in the most sales. This is important both to minimize the expense of using multiple distribution channels and to maximize sales by using the most effective ones. For example, the marketer might replace low producing channels with other channels that are be more productive or new channels with characteristics in common with the most productive channels. In the case of an online distribution channel, such as a Web or FTP server, it may be possible to obtain a count of the number of trial modules distributed; however, many distributors do not have or do not offer this capability. In addition, even if a count can be obtained, there is no way to determine how many of the distributed modules from that channel actually resulted in sales, other than to query the customer when he applies for an activation code. Customers are frequently reluctant to provide this information and even when they do, its accuracy is questionable given the amount of time that has elapsed. The population that downloads sample software tends to do so
frequently. Thus asking where the prospect downloaded the software from is unlikely to yield a useful answer if the prospect has subsequently downloaded several dozen software samples from a dozen download sites.
(b) Under the prior art system as shown in Fig 1, there is no way to measure the effectiveness of the different promotions, i.e. which promotions result in the most sales. This is important both to rninimize the expense of conducting multiple promotions and to maximize sales by repeatedly using the most effective ones. One can rely on indirect measures, such as attempting to correlate the number of purchases which occur a length of time, corresponding to the trial period, after the promotion has run, but this is a very rough estimate only and doesn't work for ongoing or multiple simultaneous promotions.
Again, in the case of online distribution, there are techniques that can match a Web bit with a promotion by means of a cgi embedded in a URL. See for example U.S. patent 6,006,197 to dΕon and Bolt. Thus, one can count the number of trial modules downloaded as a result of a given promotion if the distributor has implemented such a technique (most have not). However, once again, a trial does not equate to a sale and there is no way short of asking the customer at the time of sale to get this information; and the customer is even less likely to remember the specific promotion than the distribution channel. (c) Under the prior art system as shown in Fig 1, there is no way to know how many trials are in progress at a given point in time. This is important to know so that future sales volumes can be predicted and trends discovered. These are fundamental measures for the efficient management of any business.
In the case of online distribution, this number could be estimated by monitoring all online distributors on an ongoing basis. Aside from the expense and effort of doing this, many of these distributors don't even keep the necessary records.
(d) For those prospects who elect not to purchase an activation code, there is no way to find out their objections. This is a critical piece of information for the vendor because if he doesn't know their objections, he can't make changes to overcome them.
(e) Under the prior art system as shown in Fig 1, there is nothing to prevent a customer who has purchased an activation code from giving it to someone else, enabling that person to activate his own copy of the trial software without paying for it This is known in the software industry as "piracy". The Software Industry Information Association estimates that 36% of all business software worldwide is "pirated", equating to an annual revenue loss of $12 billion. ef: May 2000 SUA Report). In some areas of the world, the same source estimates "piracy" rates of 98% ; however there is currently no way to know. Techniques have been proposed to combat this "piracy" of activation codes. See, for example, U.S. patent
5,337,357 to Chou, which describes a technique for deriving the activation code from a hardware fingerprint associated with the purchaser's computer. However, these techniques have not found widespread adoption because of the complexity of their administration, user resistance, and lack of hard data (as opposed to estimates) of the extent of "piracy" which could be used to justify the added expense of anti- "piracy" measures.
(f) Under the prior art system as shown in Fig 1, it is very difficult to implement any sort of program that pays commissions based on sales or referrals that result in sales. Such programs include the use of sales agents and so called "affiliate" programs. In an affiliate program, the affiliate recommends the vendor's product to others, and receives a commission when someone buys, based on the affiliate's recommendation. This type of program is commonly used with great success to increase sales in other industries and other sectors. See for example U.S. patent 6,029,141 to amazon.com. However, as discussed above, since the sale of the software occurs only after a trial period, it is difficult to know who should get the commission. The purchase transaction is usually with a different entity than the entity that made the recommendation or supplied the trial product.
The marketer of "freeware" faces a similar set of measurement and tracking needs that suffer the same shortcomings as described above. Although there is no sale and hence "piracy" is not an issue, multiple distribution channels and promotions are used and it is important to gauge their effectiveness. In addition, it is important to know how many copies of a particular product or version are actually in operation at any point in time. Similarly, affiliate programs may make sense to achieve the widest distributioa
SUMMARY In accordance with the present invention, a method for marketing a software product comprises including a
"Software Fingerprint" with the set of distribution software and subsequently returning the Software Fingerprint, along with a "Hardware Fmgerprint" for the computer on which the software is installed, to the party doing the tracking to allow tracking an individual customer from his initial response to a promotion, through a trial period, to the eventual purchase. Objects and Advantages
The Objects and Advantages of the present invention are:
(a) Tp provide a method to measure the effectiveness of the distribution channels, i.e. which channels result in the most sales, using information gathered independently of participation by distributor or responses gathered from the customer; (b) To provide a method to measure the effectiveness of different promotions, i.e. which promotions result in the most sales, using information gathered independently of responses gathered from the customer;
(c) To provide a method to monitor how many trials are in progress at a given point in time, using information gathered independently of participation by distributor or responses gathered from the customer;
(d) To provide a method for sampling prospects who elect not to purchase an activation code in order to find out their objections;
(e) To provide a method for monitoring installations which result from software "piracy" (as defined above) in order to quantify their number and, if the number justifies, combat the problem;
(f) To provide a method to enable relationships and marketing programs which pay commissions for sales based on referrals;
(g) To provide a method to for tracking the distribution of software that does not result in a sale, including "freeware".
Still further objects and advantages will become apparent from a consideration on the ensuing description and drawings.
DRAWING FIGURES
Fig 1 is a conceptual diagram of the prior art end-to-end software marketing process based on the provision of sample copies of software;
Fig 2 shows the process of Fig 1 as modified by this invention;
Fig 3 is a conceptual overview of the operation of this invention; Fig 4 shows a sample Software Fingerprint assignment scheme;
Fig 5 is an example of code for handling the Software Finge rint;
Fig 6 shows the request URL, web page format;
Fig 7 shows the request URL. download format;
Fig 8 shows a sample Usenet post; Fig 9 is an example of code to handle installer requests;
Fig 10 is an example of code to "hot stamp" the downloaded module;
Fig 11 shows the Hardware Fingerprint code;
Fig 12 shows a sample Trial Registration screen;
Fig 13 shows a sample Trial Registration transmission; and Fig 14 shows a sample Activation Code Registration transmission.
Reference Numerals in the Drawings
100 Product Developed 130 Determine Information to be Tracked
102 Distribution Channels 132 Develop Software Fingerprint Assignment
104 Promotions Placed Rules
106 Prospect Sees Promotion 20 134 Attach Fingerprint to Software
108 Prospect Obtains Software 136 Deliver Software to Prospect
110 Prospect Trials Software 138 Prospect Installs Software
112 Prospect Decides not to Buy 140 Recover Software Fingerprint
114 Prospect Decides to Buy 142 GenerateHardwareFingerprint
116 Prospect Obtains Activation Code 25 144 Transmit to Vendor
118 Vendor 146 Vendor Web Site Domain
120 Customer Activates Software 148 Directory and Name of Software
122 Software Fingerprint Fingerprint Tracking Software
124 Trial Registration Transmission 150 Web Page to Return to the Client
126 Activation Registration Transmission 30 152 Directory and Name of Software Product
128 Survey Transmission to Download
DESCRIPTION OF THE PREFERRED EMBODIMENT OF THE INVENTION
- Figs. 1 and 2 - Main Embodiment Fig 1, as discussed in "Background — Prior Art" above, is a conceptual diagram of the typical software marketing process. Fig 2 shows the modifications to this process, which comprise the current invention.
Every copy of the trial software that is distributed to a prospect is assigned a unique identifier or code called the Software Fingeφrint 122. The Software Fingerprint is chosen in such a way as to uniquely identify the distribution channel 102 from which the software was obtained and the specific promotion 104 to which the prospect responded to obtain the software. It may also be used to identify other information, for example the affiliate who recommended the software in a Sales Affiliate type of program.
When the prospect subsequently installs the trial software on his computer and runs the software for the first time 110, the Software Fingerprint is transmitted back to the vendor 124, along with a "Hardware Fingerprint", which uniquely identifies the prospect's computer, and additional marketing information. At the completion of the trial period the prospect can either elect to purchase an activation code from the vendor 118 or stop using the software 112. In the case of purchase, when the customer activates the software 120 by entering the activation code, the Software Fingerprint, Hardware Fingeφrint, activation code, and additional information are again transmitted to the vendor 126.
If the prospect decides not to buy 112, he is presented with an option to fill out a survey as to the reason why. If he chooses to do so, this information along with the Software Fingeφrint and Hardware Fingeφrint are transmitted to the vendor 128.
Advantages From the description above, a number of advantages of current invention become evident:
(a) The marketer now has hard data with which to measure the effectiveness of the distribution channels. The number of both trials and purchases resulting from each channel can be ascertained with precision. Thus, the use of ineffective channels can be discontinued, saving the time and expense of dealing with them. Instead, resources can be redirected to those that are the most effective. For example, a publishing company might charge the software vendor to include a copy of his software on a CD that the publishing company distributes. Using the current invention, the vendor can now evaluate the cost of this in light of the purchases that result.
(b) The marketer now has hard data with which to measure the effectiveness of different promotions. The number of both trials and purchases resulting from each promotion can be ascertained with precision. Thus, the use of ineffective promotions and/or media campaigns can be discontinued, saving the time and expense of dealing with them. Instead, resources can be redirected to those which are the most effective. For example, a pubUshing company might charge the software vendor to advertise in its periodical or place a link on its Web page. Using the current invention, the vendor can now evaluate the cost of this in light of the purchases that result.
(c) The marketer now has hard data with which to monitor how many trials are in progress at a given point in time. This information is critical to forecast revenues and to detect trends such as a drop in the number of trials initiated or in the ratio of trials which convert to purchases. Using this information, the marketer can take steps to correct problems before they have a chance to seriously impact the business. For example, if a drop in trials is detected, more money can be spent on advertising.
(d) The marketer now has a method for sampling prospects who elect not to purchase an activation code to find out their objections. Although, it is to be expected that not all prospects will respond, a significant fraction will, and the information they provide will be invaluable in making marketing decisions about the product. For example, if the data show that many prospects feel the software is too expensive, a pricing action can be taken to increase sales. Furthermore, with the current invention, the results of that pricing action can be monitored immediately.
(e) The marketer now has a method for monitoring installations that result from software "piracy". With this hard data, a rational business decision can be made as to how much should be spent to defeat "piracy". For example, if the data show that "piracy" represents o fy a small fraction of the total installations, it may make sense to simply ignore it rather than spend money trying to defeat it. The piracy figure can be further broken down by activation codes so that rampant piracy linked to one activation code can be identified and specially handled. And finally, because the Hardware Fingeφrint uniquely identifies multiple installations of the same activation code, the vendor has hard evidence to pursue legal damages from the customer who distributed the activation code.
(f) The marketer now has a method to enable marketing programs which pay commissions for sales based on referrals. For example, a customer referral program that pays commissions to customers whose referrals bring in new customers is now possible. The marketer simply assigns each customer their own Software Fingeφrint and pays a commission when a new customer registers using that Software Fingeφrint. Note that it is not even necessary for the new customer and the old customer to know one another. The old customer may have simply published a URL containing his Software Fingeφrint on the Web, for example.
(g) The marketer of "freeware" now has available a comparable set of tools as enumerated above to measure the distribution of the "freeware" into the marketplace and to optimize the corresponding marketing expense.
Operation To facilitate a complete understanding of the invention, the description of the preferred embodiment is arranged within the following sections:
1. Overview
2. Software Fingeφrint Assignment
3. Software Fingeφrint Attachment Method 4. Software Fingeφrint Attachment Process
5. Preferred Embodiment: Web Based Distribution
6. Hardware Fingeφrint Generation
7. Transmissions to the Vendor
1. Overview Fig 3 shows a conceptual flowchart of the steps for implementing the preferred embodiment of the present invention. First, the marketer determines what information is to be tracked 130. Next the marketer develops rules 132 to relate this information to the Software Fingeφrint 122. A Software Fingeφrint 122 is then included with each copy of the distribution software 134. Finally the distribution software is delivered to the prospect 136. When the prospect runs the software 138, the Software Fingeφrint 122 is recovered 140. A unique Hardware Fingeφrint is generated 142, and both fingeφrints are subsequently transmitted back to the vendor 144 at various points in the process along with other marketing information. The following sections elaborate on each of these steps.
2. Software Fingerprint Assignment
After developing the product 100, the marketer determines which information he or she wishes to track. In the preferred embodiment, the distributor, the promotion, and the affiliate are tracked. Those of ordinary skill in the art can take the present disclosure and adapt it to capture other relevant information by making the necessary adjustment in the Software Fingeφrint 122 and in the information processing steps. Examples of other types of information that could be tracked by adaptations of the disclosed method include: the date the software was produced or downloaded, the date the promotion was placed, the CD on which it was included, etc.
This information is then mapped unambiguously to the Software Fingeφrint 122. Fig 4 illustrates the information mapping used in the preferred embodiment. In this case, the Software Fingeφrint 122 is simply a sequential number entered in a table. Each row of the table records the distributor, promotion, and/or affiliate associated with that Software Fingeφrint 122. Note that it is not necessary that all columns in a row be populated. For example, a given Software Fingeφrint 122 could be assigned to a specific distributor independent of any promotion while another might specify both the distributor and the promotion. The marketer has complete flexibility.
It is clear that many other assignment schemas are possible. For example, each distributor, promotion, and affiliate could be assigned a sequential number from three independent series and the Software Fingeφrint 122 constructed by concatenating the three numbers. The key is that no matter what mapping is chosen, the original information can be unambiguously recovered from the Software Fingeφrint 122 at a later time. For example, in the preferred embodiment, the information can be recovered by looking up the Software Fingeφrint 122 in the table of Fig 4.
3. Software Fingerprint Attachment Method In accordance with one aspect of the invention, it is necessary for the Software Fingeφrint 122 to be embedded in the software application or a related file that is included with the software application so that it can be accessed and transmitted back to the vendor, for example during registration processes.
In the preferred embodiment, the software is distributed via a software installer application. In this case, the installer application itself contains the Software Fingeφrint 122. The software then obtains the Software Fingeφrint 122 from the installer application.
Figs 5a,b show an example of how to do this, using an external code resource for a Macintosh MindVision Vice™ installer running under the Mac OS 9 Operating System In this case, the installer application contains a custom resource in the resource fork of the installer. This resource is added to the installer application by the software developer, and is used to hold the Software Fingeφrint 122; the software installer is set up to execute the software code of Figs 5a and 5b after the software has been installed. This code resource reads the Software
Fingeφrint 122 from the installer resource and writes it out to a similar resource in the software application just installed.
It should be understood that while this example applies to a Macintosh computer, developed and sold by Apple Computer, Inc., and a MindVision Vice™ installer, developed and sold by MindVision, Inc., the principles are applicable to all platforms and installers. For instance, a Windows MindVision Vice™ installer would execute a custom DLL to perform the Software Fingeφrint 122 transfer from the installer to the software application.
Many implementations of this functionality, with and without installer applications and across multiple hardware and software architectures, will be readily apparent to those skilled in the art.
4. Software Fingerprint Attachment Process
The method for attaching the Software Fingeφrint 122 has been described above. The process by which it is attached depends on the circumstances. In the simplest embodiment, the vendor ships preconfigured software, i.e. software with the appropriate Software Fingeφrint 122 already attached. For example, the software might be shipped to a publisher who incoφorates the software on physical medium such as a CD ROM. In this case, the software would be preconfigured with the Software Fingeφrint 122 identifying the publisher.
Alternately, the vendor may supply a code that the intended recipient can use to obtain a copy of the software "on demand" with the appropriate Software Fingeφrint 122 attached. This latter method is more flexible and powerful and is particularly suited for online distribution.
Online distribution of software enables "on demand" customization of the delivered software package. For example, it is possible to "stamp" the outgoing package with a Software Fingeφrint 122 based on whether the recipient is a distributor, prospect, customer, affiliate, etc; whether the recipient is responding to a promotion and if so which one; whether the recipient was referred from another site and if so which one; what date and time the software was downloaded and from which computer, etc.
Online distribution takes many forms: Web, FTP, IRC, Email, etc. Each can be configured to distribute software individually customized with a Software Fingeφrint 122 based on information about the recipient. Below, we describe one such embodiment: Web based distribution.
5. Preferred Embodiment: Web Based Distribution
In this case, URLs from which the prospect may download the software, or enter a distributor's web site, are created for placement in promotions, advertisements, assignment to participants in an affiliate program, etc. These URLs contain the embedded Software Fingeφrint 122 that will be transferred to the software.
In one implementation of the invention a custom format is specified for URLs which address a vendor or distributor's web page. The prospect accesses this web page to obtain additional information, after which he may choose to download the software. Such URLs include a unique Software Fingeφrint 122 and identify the web page hosted by the software distributor 150. This format is illustrated in Fig 6 and comprises the distributor Web Site Domain Name 146 + directory and name of the Software Fingeφrint tracking software 148 + Software Fingeφrint 122 + Web page to return to the client 150.
Alternately, a custom format is also specified for URLs that request a download directly. Such URLs include a unique Software Fingeφrint 122 and identify a software product for download. This format is illustrated in Fig 7 and comprises the distributor Web Site Domain Name 146 + directory and name of the product to download 152 + Software Fingeφrint 122.
Fig 8 shows a sample promotion as posted to the Usenet. The URL specifies the distributor's Web page and includes the Software Fingeφrint 122. Although the sample shows a post to the Usenet, other media work equally as well including but not limited to print advertising, Web advertising, and Email advertising. In all cases, the prospect's use of the specified URL passes information including the Software Fingeφrint 122, which is then incoφorated with the package of software provided to the prospect.
Referring to Fig 6, the URL addresses a web page which invokes a specialized cgi program 148 that handles the incoming Software Fingeφrint 122 and returns the requested web page. Figs 9a,b provide a source code listing in the Perl scripting language for an example cgi that handles the incoming Software Fingeφrint 122.
The code shown in Figs 9a,b will extract the Software Fingeφrint 122 and return a modified version of the requested web page 150. The requested web page 150 will be modified such that any links to other local web pages will be changed to invoke the code shown in Figs 9a,b rather than simply loading a static web page. For instance, using the link illustrated in Fig 7. as an example, if there is a link to "page2.htm" contained in "page.htm", the code shown in Figs 9a,b will change the link to the following: htφ://www.domam.com/cgi-bin/product.pl?12345/page2.htm Thus each subsequent request for a web page repeats the format of the link in Fig 6. The code shown in Figs
9a,b does not modify absolute links to pages outside the domain. The code shown in Figs 9a,b thus provides a simple mechanism for maintainin a Software Fingeφrint 122 as a user navigates from web page to web page within a distributor's web site.
The code shown in Figs 9a,b also has special case handling for any link to a downloadable software installer named "Software.bin". The code shown in Figs 9a,b will change the download link for this software installer to the following: htφ://www.domam.com/cgi-bin/Software.bin?12345
This adheres to the example URL format for downloadable software illustrated in Fig 7.
When a prospect downloads software from a distributor, the Software Fingeφrint 122 is attached to the software. In the preferred embodiment, the location within the software package reserved for the Software
Fingeφrint 122 is overwritten with the Software Fingeφrint 122 during the download. Figs 10a,b provide an example source code listing in the Perl scripting language for returning a software product and " hot stamping" the software with a Software Fingeφrint 122. In this example, the links described in Fig 7 invoke the Perl script listed in Figs 10a,b. Furthermore, in the example code in Figs 10a,b the precise location of the Software Fingeφrint 122 value contained witiύn the software is 2,968,530 bytes from the beginning of the file. This value is merely an example. The actual offset in any particular software package must be determined by the developer. The code contained in Figs 10a,b thus defines this file offset as a constant:
$source_offset = 2968530; In this example the software stores the Software Fingeφrint 122 in a custom resource occupying four bytes, beginning at file offset 2968530. The code contained in Figs 10a,b returns the software normally until it reaches file offset 2968530, at which time it returns the Software Fingeφrint 122, padded to four bytes. It then skips the default four byte Software Fingeφrint 122 contained in the software and returns the rest of the software normally.
Software is commonly distributed via installer applications. Installer applications contain the software in a compressed format, and upon execution, decompress and load the software unto the user's computer system In this case it is often not possible to "hot stamp" the software itself. For instance, if the software is stored within the installer in a proprietary compression format, it may not be possible to determine the location reserved for the Software Fingeφrint 122, or the format with which to " hot stamp" a new Software Fingeφrint 122. In addition, many installer programs utilize checksum algorithms to verify the integrity of the software prior to installation. If the part of the software comprising the Software Fingeφrint 122 has been overwritten the checksums may fail, causing the installer to report errors or even abort the installation.
In the event that software is distributed via a software installer application it is necessary to "hot stamp" the installer application rather than the software appUcation itself, as described in Section 4 above. The software then obtains the Software Fingeφrint 122 from the instaUer appUcation.
In the example described in Section 4 above, the instaUer appUcation contains a custom resource in the resource fork of the installer. This resource is added to the instaUer appUcation by the software developer, and is used to hold the Software Fingeφrint 122. During a download of the instaUer, a cgi "hot stamps" this resource with the incoming Software Fingeφrint 122. An example cgi to do this is provided in Figs 10a,b. As explained above, the software installer is set up to execute a custom code resource after the software has been installed. This code resource reads the source ID from the instaUer resource and writes it out to a similar resource in the software appUcation just instaUed. Figs 5a,b provide an example source code listing for an external code resource for a Macintosh MindVision Vice™ installer running under the Mac OS 9 Operating System. It is clear that alternate embodiments are possible if the instaUer vendor modifies the instaUer to allow the "hot stamping" of the software directly. Other techniques, such as including the Software Fingeφrint 122 in a separate file that is part of the distribution software will also be apparent to those skilled in the art.
6. Hardware Fingerprint Generation
In accordance with one aspect of the invention it is necessary for the software appUcation to generate or obtain a unique identifier for the prospect or customer's computer. This identifier is called the Hardware Fingeφrint. The Hardware Fingeφrint should be generated or obtained when the software is first executed after instaUation, or during instaUation by the software instaUer.
Fig 11 shows an example algorithm for a Macintosh software appUcation, running under the Mac OS 9 Operating System, which generates a unique Fingeφrint. In this case, rather than capturing a unique characteristic of the computer, a unique characteristic is created by generating a unique number and storing it on the computer. The Hardware Fingeφrint is a pseudorandom string of characters generated when the software is run for the first time. Because the pseudorandom number generator is imtiaUzed by the number of clock ticks since the last reboot, the odds of two computers yielding the same number are remote. The Hardware Fingeφrint is then stored for future reference.
In another embodiment, the Hardware Fingeφrint can be derived from a hardware serial number that can be read by the software. For example, some microprocessors have unique serial numbers embedded in them. In this case, the Hardware Fingeφrint would not have to be stored, since it can be regenerated on demand.
It is obvious that there are many possible embodiments of identifiers that uniquely identify a specific computer. Any of these wiU work.
7. Initial Transmission to the Vendor
During the software instaUation process, the prospect may be asked to provide additional marketing information. For example, Fig 12 shows a sample of one of the registration dialog screens that is presented to the prospect in the preferred implementation. In this example, the prospect is asked to supply an eπail address. Although, as discussed above, many prospects are reluctant to give this information, and many wiU give false information, a fraction wiU give truthful information, which the marketer may find useful.
It is to be emphasized that the present invention does not require the additional marketing information be provided by the prospect, but advantage is merely being taken of the opportunity to ask. Clearly, the marketer may also choose to ask for other information of interest or none at aU. Once the software has been successfuUy instaUed, the embedded Software Fingeφrint 122 and Hardware
Fingeφrint, along with additional marketing information, must be transmitted back to the vendor.
In the preferred embodiment, the information is transmitted to the vendor via the SMTP protocol (see Internet Standards, RFC 821 Simple Mail Transfer Protocol (SMTP)). This involves the creation and sending of a simple Email message to the vendor's SMTP server and is handled entirely by the software, without any required user action. The fransmittal is prompted and executed when the prospect completes the registration process. Fig 13 is an example of such an Email message.
Fig 13 also shows an example of additional marketing information, which can be added to the Email. In this case, the additional information includes the prospect's name, organization, and EmaU address, the version of the Operating System being run, the processor model, and the competitive product currently being used. This information is gathered by the software during the instaUation by reading various locations in memory and/or by querying the prospect as part of the registration dialog as described above. Again, although this additional information is useful, it is not required as part of the inventioa In fact, many prospects are reluctant to provide this informatioa
In another potential embodiment, the information is transmitted via the HTTP protocol to a cgi running on the vendor's web server. The information can then be forwarded to the vendor via Email, or incoφorated directly into an online database.
In another potential embodiment, the information is transmitted via a datagram sent to vendor's web server. It is clear that there are many possible means for teansnύtting the information to the vendor. It is also clear that this information can be transmitted autonomously as part of the instaUation process, with or without the prospect's knowledge, or included with another message that results from a dialogue with the prospect, again with or without
the prospect's knowledge: the choice of options is a marketing decision. AU that is required is that the message transmission be "automatic" - that is the transmission be a necessary part of the process required to instaU and operate the software and independent of any purchase transaction.
At this point the vendor 118 knows that a trial has begun, and from the Software Fingeφrint 122, which distributor 102 provided the trial software, and which promotion 104 resulted in the trial. He also has a Hardware Fingeφrint with which to identify the prospect in the future. In addition, he may have other key marketing information about the prospect if he chose to obtain it. This wiU ultimately aUow the vendor to track sales yields versus trials for particular processors or operating systems.
In the case of "freeware", this wiU likely be the final information gathered from the instaUation. 8. Subsequent Transmissions to the Vendor
The prospect now trials the software for the specified period of time 110. At any time thereafter, including before the trial period expires, the prospect may decide to buy the software 114 or abandon it 112.
In the event that the prospect decides not to buy the software 112, he may be asked why by a dialogue, simfiar to the registration dialog discussed above and embedded in the trial software. The answer 128 is then transmitted back to the vendor 118 using the same technique as described above for the transmittal of the original Trial Registration 124.
In the event that the prospect decides to buy the software 114, he obtains an activation code 116 from the vendor 118. The prospect then must enter this activation code to "unlock" the software 120. The process for activation of trial software is well known in the art (see for example U.S. patent 6,044,741 to Colvin) and is described here merely to provide context for the present invention. The precise mechanism of "unlocking" the software is determined and implemented by the vendor, and may involve eliminating the trial period, activating features which may have been restricted for the trial, or in the case of shareware, eUminating the reminders to register. In the preferred embodiment the activation code, the Software Fingeφrint 122, and the Hardware Fingeφrint, along with any additional marketing information are again transmitted 126 back to the vendor 118 using the same method as described above for the transmittal of the initial Trial Registration Information. Fig 14 is an example EmaU message that can be used to transmit this information to the vendor.
In an alternate embodiment, the Software Fingeφrint 122, Hardware Fingeφrint, and additional marketing information may be transmitted to the vendor as part of the same online session in which the activation code is purchased. For example, the online purchase mechanism offered by eSeUerate™, Inc. could additionaUy transmit this information. Alternately, the information could be transmitted by cgi to a purchase Web page, by a datagram, or other similar method.
In any event, the vendor 118 now has enough information to associate the purchase with a specific distributor 102, a specific promotion 104, a specific computer based on the Hardware Fingeφrint, a specific activation code, and a specific customer with a specific name, mailing address, and email address (which is routinely obtained as part of the purchase session), as weU as with the other marketing information which was obtained.
Since "pirated" copies of the software wiU also be required to pass through this process, the vendor 118 will also be able to detect "pirated" instaUations. That is, a "pirated" instaUation will have the same activation code as a legitimate customer but not the same Hardware Fingeφrint Using this information, the vendor 118 may take the appropriate steps to stop the "piracy". Conclusion, Ramifications, Scope
Accordingly, the reader wiU see that aspects of the disclosed invention can be used to monitor the end to end software marketing process thus giving the marketer the abifity to eliminate ineffective programs and channels and focus resources on those which produce the best results. Furthermore, the disclosed invention has additional advantages in that: • it provides the marketer with hard data with which to quantify the effectiveness of the distribution channels; the number of both trials and purchases resulting from each channel can be ascertained with precision;
• it provides the marketer with hard data with which to quantify the effectiveness of different promotions; the number of both trials and purchases resulting from each promotion can be ascertained with precision;
• it provides the marketer with hard data with which to monitor how many trials are in progress at a given point in time; using this information, the marketer can take steps to correct problems before they have a chance to seriously impact the business.;
• it aUows the marketer to contact prospects who elect not to purchase an activation code to find out their objections;
• it provides the marketer with a means to monitor and quantify the number of instaUations which result from software "piracy";
• it enables marketing programs which pay commissions for sales based on referrals.
Although the description above contains many specificities, these should not be construed as limiting the scope of the invention but merely providing illustrations of some of the presently preferred embodiments of this invention. For example, the system can be applied to software written in other languages, for other platforms, etc; the Software Fingeφrint can be related to the other information via a database, etc.; the Hardware Fingeφrint could be constructed from reading specific hardware configurations, stored differently, or not stored at aU if it could be repUcated at wiU, etc; the transmissions to the vendor can occur in real time, using other protocols, etc; the software physical distribution medium can be a disk, a DVD, a tape, etc: the system can be appUed to "shareware", "freeware", and even programs not distributed initiaUy as trial versions. Thus the scope of the invention should be determined by the appended claims and their legal equivalents, rather than by the examples given. Those unfamiliar with the legal tests for equivalency should consult a person registered to practice before the patent authority which granted this patent such as the United States Patent and Trademark Office or its counteφart.
Glossary Of Terms and Acronyms
The foUowing terms and acronyms are used throughout the detaUed description. Note that it is common usage to use both the capitaUzed and uncapitaUzed forms of internet acronyms interchangeably. Thus, for example, both "cgi" and "CGF, "http" and "HTTP", etc. are often seen. Unless otherwise noted, both forms are meant to be equivalent in this specification.
CGI (Common Gateway Interface). A standard for interfacing an external appUcation (such as a database server, order-entry system, or affiliate ID tracking system) with a WWW HTTP server. CGI specifies how to pass arguments to the executing appUcation as part of the HTTP request. It also defines a set of environment variables.
CGI program or script. Any program or script that adheres to the CGI specification. CGI programs or scripts function as the glue between HTML pages and other programs on the WWW server, and are typicaUy used to return dynamic HTML content to, accept information from, or record information about people running WWW browsers on the Internet.
Code Resource. A Macintosh resource of type 'CODE' which contains an executable block of code.
Customer. Someone who has purchased a product DLL (Dynamic Link Library). A fibrary of executable functions or data that can be used by a Windows appUcation. Typically, a DLL provides one or more particular functions and a program accesses the functions by creating either a static or dynamic link to the DLL. A static link remains constant during program execution whue a dynamic tink is created by the program as needed. DLLs can also contain just data. DLL files usually end with the extension ,dU,.exe., drv, or .fon. Download. To transfer data (such as multimedia files or software programs) from a host system (such as a
WWW server or FTP server) to a cUent system, especiaUy a microcomputer or specialized peripheral.
Freeware. Software distributed at no charge.
FTP (File Transfer Protocol). A protocol used on the Internet for sending files over a TCP/IP network. It provides faciUties for transferring files to and from remote computer systems. HTML (HyperText Markup Language). A standard coding convention and set of codes for attaching presentation and Unking attributes to informational content within documents. (HTML 2.0 is currently the primary standard used for generating Web documents.) During a document authoring stage, the HTML codes (referred to as "tags") are embedded within the informational content of the document. When the Web document (or HTML document) is subsequently transferred from a Web server to a browser, the codes are inteφreted by the browser and used to parse and display the document. AdditionaUy in specifying how the Web browser is to display the document HTML tags can be used to create links to other Web documents (commonly referred to as "hyperlinks"). For more information on HTML, see Ian S. Graham, The HTML Source Book, John Wiley and Sons, Inc., 1995 (ISBN 0471-11894-4).
HTTP (HyperText Transport Protocol). The standard World Wide Web cUent-server protocol used for the exchange of information (such as HTML documents, and cUent requests for such documents) between a browser and a Web server. HTTP includes a number of different types of messages which can be sent from the client to the server to request different types of server actions. For example, a "GET" message, which has the format GET, causes the server to return the document or file located at the specified URL.
Hyperlink. A navigational link from one document to another, or from one portion (or component) of a document to another. TypicaUy, a hyperlink is displayed as a highlighted word or phrase that can be selected by clicking on it using a mouse to jump to the associated document or documented portion.
Internet. A coUection of interconnected (pubUc and/or private) networks that are linked together by a set of standard protocols (such as TCP/IP and HTTP) to form a global, distributed network. (While this term is intended to refer to what is now commonly known as the Internet, it is also intended to encompass variations which may be made in the future, including changes and additions to existing standard protocols.)
IRC (Internet Relay Chat). An Internet chat system developed by Jarkko Oikarinen in Finland in the late 1980s. IRC provides a way of communicating in real time with people from aU over the world. It consists of various separate networks of IRC servers, machines that allow users to connect to IRC. To join an IRC discussion, you need an IRC cUent and Internet access. The IRC ctient is a program that runs on your computer and sends and receives messages to and from an IRC server. The IRC server, in turn, is responsible for making sure that aU messages are broadcast to everyone participating in a discussion.
Perl (Practical Extraction and Report Language). An inteφretive programming language developed by Larry Wall, especiaUy designed for processing text. Because of its strong text processing abiUties, Perl has become one of the most popular languages for writing CGI scripts. Perl is typically used under UNIX systems.
Prospect. Someone who a marketer beUeves is a potential purchaser of a product.
Resource. A piece of data stored in the Resource Fork of a Macintosh file that can be accessed by a Type and ID value. Resources are typicaUy used to store textual data, graphics, and user interface elements. Resource Fork. The part of a Macintosh file that contains speciaUy indexed data caUed resources.
RFC (Request for Comments). A series of notes about the Internet, started in 1969 (when the Internet was the ARPANET). Each RFC is designated by an RFC number, and can be submitted by anyone. EventuaUy, if it gains enough interest, it may evolve into an Internet standard.
Shareware. Software for which the author requests (as opposed to requires) some payment, usuatty in the accompanying documentation files or in an announcement made by the software itself. Such payment may buy additional support, documentation or functionaUty.
SMTP (Simple MaU Transfer Protocol). The standard protocol for sending e-mail messages between servers. It is a TCP/IP protocol that defines the message format and the message transfer agent (MTA), which stores and forwards the maU. Most e-mail systems that send maU over the Internet use SMTP to send messages from one
server to another; the messages can then be retrieved with an e-mail cUent using either the POP or IMAP protocol. In addition, SMTP is generaUy used to send messages from a mad ctient to a maU server.
URL (Uniform Resource Locator). A unique address which fuUy specifies the location of a file or other resource on the Internet. The general format of a URL is protocol://machine adάress.port path/filename.
The port specification is optional, and if none is entered by the user, the browser defaults to the standard port for whatever service is specified as the protocol. For example, if HTTP is specified as the protocol, the browser wiU use the HTTP default port of 80.
For more information see RFC 1738. Usenet. Usenet is a world-wide distributed discussion system. It consists of a set of "newsgroups" with names that are classified hierarchicaUy by subject. "Articles" or "messages" are "posted" to these newsgroups by people on computers with the appropriate software. These articles are then broadcast to other interconnected computer systems via a wide variety of networks. Some newsgroups are "moderated"; in these newsgroups, the articles are first sent to a moderator for approval before appearing in the newsgroup. Usenet is avauable on a wide variety of computer systems and networks, but the bulk of modern Usenet traffic is transported over either the Internet or UUCP.
Web Page. A block of data available on the World Wide Web, identified by a URL. In the simplest, most common case, a web page is a file written in HTML, stored on the server. It may refer to images which appear as part of the page when it is displayed by a web browser. It is also possible for the server to generate pages dynamically in response to a request, e.g. using a CGI script. Web Site. A computer system that serves informational content over a network using the standard protocols of the World Wide Web. TypicaUy, a Web site corresponds to a particular Internet domain name, such as "amazon.com," and includes the content associated with a particular organization. As used herein, the term is generaUy intended to encompass both (i) the hardware/software server components that serve the informational content over the network, and (n) the "back end" hardware/software components, including any non-standard or speciaUzed components, that interact with the server components to perform services for Web site users.
World Wide Web ("Web"). Used herein to refer generaUy to both (i) a distributed coUection of interlinked, user-viewable hypertext documents (commonly referred to as Web documents or Web pages) that are accessible via the Internet, and (u) the client and server software components which provide user access to such documents using standardized Internet protocols. Currently, the primary standard protocol for aUowing applications to locate and acquire Web documents is HTTP, and the Web pages are encoded using HTML. However, the terms "Web" and "World Wide Web" are intended to encompass future markup languages and transport protocols which maybe used in place of (or in addition to) HTML and HTTP.