WO2002023432A1 - Tracking method and system for marketing software - Google Patents

Tracking method and system for marketing software Download PDF

Info

Publication number
WO2002023432A1
WO2002023432A1 PCT/US2001/028054 US0128054W WO0223432A1 WO 2002023432 A1 WO2002023432 A1 WO 2002023432A1 US 0128054 W US0128054 W US 0128054W WO 0223432 A1 WO0223432 A1 WO 0223432A1
Authority
WO
WIPO (PCT)
Prior art keywords
software
fingeφrint
computer
distribution
message
Prior art date
Application number
PCT/US2001/028054
Other languages
French (fr)
Inventor
Stephen J. Cunningham
Kurt D. Spaker
Original Assignee
Cunningham Stephen J
Spaker Kurt D
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cunningham Stephen J, Spaker Kurt D filed Critical Cunningham Stephen J
Priority to AU2001288878A priority Critical patent/AU2001288878A1/en
Publication of WO2002023432A1 publication Critical patent/WO2002023432A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/16Program or content traceability, e.g. by watermarking

Definitions

  • 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.
  • 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.
  • 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 is to disable certain key features of the product during the trial period.
  • 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.
  • trial software 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.
  • the marketer 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.
  • 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.
  • a method for marketing a software product comprises including 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;
  • 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. 1 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
  • Fig 14 shows a sample Activation Code Registration transmission.
  • Fig 1 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.
  • 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.
  • the prospect can either elect to purchase an activation code from the vendor 118 or stop using the software 112.
  • 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.
  • 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.
  • FIG. 1 shows a conceptual flowchart of the steps for implementing the preferred embodiment of the present invention.
  • the marketer determines what information is to be tracked 130.
  • 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.
  • the distribution software is delivered to the prospect 136.
  • 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.
  • the marketer determines which information he or she wishes to track.
  • 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.
  • 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.
  • the information can be recovered by looking up the Software Finge ⁇ rint 122 in the table of Fig 4.
  • Software Fingerprint Attachment Method 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.
  • the software is distributed via a software installer application.
  • 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 ViceTM installer running under the Mac OS 9 Operating System
  • 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.
  • the method for attaching the Software Finge ⁇ rint 122 has been described above. The process by which it is attached depends on the circumstances.
  • the vendor ships preconfigured software, i.e. software with the appropriate Software Finge ⁇ rint 122 already attached.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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
  • the Software Finge ⁇ rint 122 is attached to the software.
  • 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.
  • the links described in Fig 7 invoke the Perl script listed 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;
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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 ViceTM 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.
  • the software appUcation 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.
  • 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.
  • 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.
  • Fig 12 shows a sample of one of the registration dialog screens that is presented to the prospect in the preferred implementation.
  • the prospect is asked to supply an e ⁇ ail address.
  • the information is transmitted to the vendor via the SMTP protocol (see Internet Standards, RFC 821 Simple Mail Transfer Protocol (SMTP)).
  • SMTP Simple Mail Transfer Protocol
  • 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.
  • 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
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • the online purchase mechanism offered by eSeUerateTM, Inc. could additionaUy transmit this information.
  • the information could be transmitted by cgi to a purchase Web page, by a datagram, or other similar method.
  • 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.
  • 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.
  • 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;
  • 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.
  • CGI Common Gateway Interface
  • An external appUcation such as a database server, order-entry system, or affiliate ID tracking system
  • 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.
  • a Macintosh resource of type 'CODE' which contains an executable block of code.
  • DLL Dynamic Link Library
  • 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.
  • FTP File Transfer Protocol
  • HTML HyperText Markup Language
  • HTML 2.0 is currently the primary standard used for generating Web documents.
  • tags are embedded within the informational content of the document.
  • 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.
  • standard protocols such as TCP/IP and HTTP
  • 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.
  • IRC cUent 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 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.
  • 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
  • SMTP Simple MaU Transfer Protocol
  • MTA message transfer agent
  • SMTP is generaUy used to send messages from a mad ctient to a maU server.
  • URL Uniform Resource Locator
  • 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.
  • 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.
  • 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.
  • 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 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.
  • Web documents typically referred to as Web documents or Web pages
  • client and server software components which provide user access to such documents using standardized Internet protocols.
  • HTTP HyperText Transfer Protocol
  • Web pages are encoded using HTML.
  • 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.

Abstract

A method and system for marketing software which allows the end to end tracking of the software sales process from promotion and distribution, through the trial phase, to the final purchase. At every step, information about prospects and customers and measurements of the effectiveness of both marketing programs and distribution channels is available to the marketer. This is accomplished by including a Software Fingerprint (122) with the distribution software, generating a Hardware Fingerprint for the user's computer, and transmitting this information back to the vendor at key points in the process.

Description

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.

Claims

Claims: We claim:
1. A method for tracking the distribution of a software product comprising: (a) including a software fingeφrint with a set of distribution software,
(b) composing a message to be automaticaUy transmitted from the computer on which the copy of said software product is instaUed to a computer accessible by the party doing the tracking, said message providing notification of the instaUation and said software fingeφrint, whereby information of interest may be ascertained as said software product is dispersed into the marketplace by the coUection of said instaUation notification messages without reliance on a purchase transaction interchange.
2. The method of claim 1 wherein said software fingeφrint is included on demand with said set of distribution software in response to a request for a copy of said software product, said software fingeφrint containing information that reflects information about the request for the copy of said software product.
3. The method of claim 2 wherein said software fingeφrint is obtained from a portion of a URL.
4. The method of claim 2 wherein said request for a copy of said software product is a request to electronically download said set of distribution software and said software fingeφrint is included in said set of distribution software during the electronic transmittal of said set of distribution software to the requesting party.
5. The method of claim 4 wherein a CGI on a Web site system hosting said set of distribution software electronicaUy transmits said set of distribution software to said requesting party, and replaces a default software fingeφrint value contained in the software in a pre-determined location with the current software fingeφrint associated with the transaction.
6. The method of claim 1 wherein a hardware fingeφrint for the computer on which the software has been instaUed is returned with said instaUation notification message containing said software fingeφrint.
7. The method of claim 1 wherein said instaUation notification message is included as part another message that is transmitted from the computer on which the copy of said software product is instaUed to a computer accessible by the party doing the tracking, said transmission being a necessary part of the process required to instatt and operate the software and independent of any purchase transaction.
8. The method of claim 1 wherein, said software fingeφrint maps to some unique combination of more than one marketing parameters selected from the group of marketing parameters consisting of distributor, promotion, marketing affϊtiate, software production date, software download date, identity of computer doing the download, and software physical media identifier.
9. The method of claim 1 wherein said software fingeφrint is obtained from a portion of a URL.
10. The method of claim 1 wherein said software fingeφrint indicates a particular software physical media pubUsher and wherein said software fingeφrint is written into a software physical medium distributed by said software physical media pubUsher such that instaUations of the software product are attributed to said software physical media pubUsher.
11. The method of claim 1 wherein said software product is distributed and sold with the assistance of associates, comprising:
(a) assigning a software fingeφrint to each associate, which uniquely identifies said associate,
(b) providing a Web site system that accepts requests to electronically download said set of distribution software, (c) providing said associates with a customized URL which contains said software fingeφrint and aUows parties interested in obtaining said software product to download said set of distribution software,
(d) receiving from the computer of said interested party a request message which contains said software fingeφrint and extracting said software fingeφrint from said message, said request message being generated in response to selection by said interested party of an associate's customized URL, (e) electronicaUy transmitting software to the computer of said interested party in response to said request message, and embedding said software fingeφrint in the software before completion of the download via a software program running on said Web site system,
(f) utilizing said instaUation notification messages to track how many downloads and eventual purchases resulted from each associate, and (g) compensating said associate for any sale of said software product that was initiaUy obtained using said associate's customized URL.
12. The method of claim 1 wherein said software product is distributed and sold with the assistance of associates, comprising:
(a) assigning a software fingeφrint to each associate, which uniquely identifies said associate, (b) providing a Web site system that accepts requests to electronically download said set of distribution software,
(c) providing said associates with one or more customized URLs which contain said software fingeφrint and identify a web page contained in said Web site system to return to the computer of a party interested in obtaining said software product, (d) receiving from the computer of said interested party a request message which contains said software fingeφrint and web page identifier, and extracting said software fingeφrint and web page identifier from said request message, said request message having been generated in response to selection by said interested party of an associate's customized URL, (e) transmitting the web page identified in said request message to the computer of said interested party, and tracking said software fingeφrint as said interested party navigates the Web site system prior to downloading software,
(f) electronicaUy transmitting software to the computer of said interested party in response to a request message, and embedding said software fingeφrint in the software before completion of the download via a software program running on said Web site system,
(g) utilizing said instaUation notification messages to track how many downloads and eventual purchases resulted from each associate, and
(h) compensating said associate for any sale of said software product that was initiaUy obtained using said associate's customized URLs.
13. A computer implemented system which implements a program by which the distribution of software products can be tracked, the system comprising:
(a) a request processing system which receives requests for a software product and generates a software fingeφrint associated with said request, (b) a distribution system which aggregates the required set of distribution software, said distribution system aggregating the required set of distribution software containing said software fingeφrint,
(c) a means for distributing the set of distribution software containing the software fingeφrint to a requesting party, and
(d) a tracking system which receives and records a message from the requesting party computer on which said software product has been instaUed, said message containing said software fingeφrint.
14. The system of claim 13 wherein said tracking system records a message from the requesting party computer on which said software product has been installed, said message containing a hardware fingeφrint for the computer on which the software product has been instaUed as weU as said software fingeφrint.
15. A method for installing a software product comprising:
(a) accessing a software fingeφrint which has been included with a set of distribution software,
(b) composing a message to be automaticaUy transmitted from the computer on which the copy of said software product is instaUed to a computer accessible by the party doing the tracking, said message providing notification of the instaUation and said software fingeφrint.
16. The method of claim 15 wherein a hardware fingeφrint for the computer on which the software has been instaUed is returned with said installation notification message.
17. A method for detecting and tracking unauthorized use of an authorization code for software comprising:
(a) generating a hardware fingeφrint for the computer on which the software has been instaUed,
(b) fransπήtting said hardware fingeφrint to the person doing the tracking along with the authorization code.
PCT/US2001/028054 2000-09-12 2001-09-07 Tracking method and system for marketing software WO2002023432A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2001288878A AU2001288878A1 (en) 2000-09-12 2001-09-07 Tracking method and system for marketing software

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US66020700A 2000-09-12 2000-09-12
US09/660,207 2000-09-12

Publications (1)

Publication Number Publication Date
WO2002023432A1 true WO2002023432A1 (en) 2002-03-21

Family

ID=24648585

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/028054 WO2002023432A1 (en) 2000-09-12 2001-09-07 Tracking method and system for marketing software

Country Status (2)

Country Link
AU (1) AU2001288878A1 (en)
WO (1) WO2002023432A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7490319B2 (en) 2003-11-04 2009-02-10 Kimberly-Clark Worldwide, Inc. Testing tool comprising an automated multidimensional traceability matrix for implementing and validating complex software systems
WO2015009458A1 (en) * 2013-07-16 2015-01-22 Dropbox, Inc. Light installer
WO2015094441A1 (en) * 2013-12-19 2015-06-25 Dropbox, Inc. Pre-authorizing a client application to access a user account on a content management system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4685055A (en) * 1985-07-01 1987-08-04 Thomas Richard B Method and system for controlling use of protected software
US5940504A (en) * 1991-07-01 1999-08-17 Infologic Software, Inc. Licensing management system and method in which datagrams including an address of a licensee and indicative of use of a licensed product are sent from the licensee's site

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4685055A (en) * 1985-07-01 1987-08-04 Thomas Richard B Method and system for controlling use of protected software
US5940504A (en) * 1991-07-01 1999-08-17 Infologic Software, Inc. Licensing management system and method in which datagrams including an address of a licensee and indicative of use of a licensed product are sent from the licensee's site

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7490319B2 (en) 2003-11-04 2009-02-10 Kimberly-Clark Worldwide, Inc. Testing tool comprising an automated multidimensional traceability matrix for implementing and validating complex software systems
WO2015009458A1 (en) * 2013-07-16 2015-01-22 Dropbox, Inc. Light installer
US9298439B2 (en) 2013-07-16 2016-03-29 Dropbox, Inc. System and method for installing a client application using a light installer
US9928051B2 (en) 2013-07-16 2018-03-27 Dropbox, Inc. System and method for installing a client application using a light installer
WO2015094441A1 (en) * 2013-12-19 2015-06-25 Dropbox, Inc. Pre-authorizing a client application to access a user account on a content management system
US9258291B2 (en) 2013-12-19 2016-02-09 Dropbox, Inc. Pre-authorizing a client application to access a user account on a content management system
US9973504B2 (en) 2013-12-19 2018-05-15 Dropbox, Inc. Pre-authorizing a client application to access a user account on a content management system
US10484383B2 (en) 2013-12-19 2019-11-19 Dropbox, Inc. Pre-authorizing a client application to access a user account on a content management system

Also Published As

Publication number Publication date
AU2001288878A1 (en) 2002-03-26

Similar Documents

Publication Publication Date Title
TWI488049B (en) Point of presence distribution mechanism for digital content objects
US6804660B2 (en) System method and article of manufacture for internet based affiliate pooling
US5968125A (en) Process for optimizing the effectiveness of a hypertext element
US6442549B1 (en) Method, product, and apparatus for processing reusable information
Graham The HTML sourcebook
US7233973B2 (en) Evolving interactive dialog box for an internet web page
US8122336B2 (en) Web page link-tracking system
US7886067B2 (en) Internet-based system and method for distributing interstitial advertisements
US6973492B2 (en) Method and apparatus for collecting page load abandons in click stream data
US20100138700A1 (en) Method of remotely monitoring an internet web site
US20020107701A1 (en) Systems and methods for metering content on the internet
US20130117687A1 (en) System and method for dynamically changing the content of an internet web page
US20030046361A1 (en) Method and apparatus for redirection of server external hyper-link references
AU7066200A (en) Distributing promotional and advertising material based upon internet usage
JP2007018532A (en) Automatic tracking system and method for distributable software
US20020178213A1 (en) Remote URL munging
US20070203784A1 (en) Method of analyzing email content of registered users of a website and present these users with an offer
Dyson et al. Architecting enterprise solutions: patterns for high-capability internet-based systems
US7376594B2 (en) Method for distributing images via a network
US20130019152A1 (en) Method and Apparatus for Tracking Exit Destinations of Web Page
US20020178186A1 (en) Remote URL munging business method
Amarasekara et al. Controlling risks and fraud in affiliate marketing: A simulation and testing environment
EP2056571A2 (en) System for measuring web traffic
WO2002023432A1 (en) Tracking method and system for marketing software
Corning et al. Working with active server pages

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

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

AL Designated countries for regional patents

Kind code of ref document: A1

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

121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP