Software Marketing Resource Articles: Mining your Sales Channel

You wrote the code, now how do you sell it?

Wednesday, April 7, 2004

Mining your Sales Channel

When my Grandfather retired he used to spend some of his time panning for gold in the mountain streams of Utah. Being a retired machinist he eventually decided to "automate" his operation and built a sluice box. Now a sluice box is basically a long box with the two ends removed. Across the bottom of the box large number of small wooden "speed bumps" are nailed. One end of the box is elevated and placed under a source of running water, usually a small waterfall or stream. Sand from the streambed is put at the top of the box and is washed down over the wooden speed bumps nailed to the bottom of the box. The heavier gold gets caught in the speed bumps and is then recovered.

Not all sand in Utah contains recoverable gold. Sometimes my Grandfather could work for an entire day and get nothing but a back ache for his trouble. But other days, if he found a rich deposit, he could recover about quarter ounce of gold with a few hours work.

Selling shareware is a lot like mining gold. We have a program that acts like our sluice box; we throw a lot of potential customers, our sand, at our program; and eventually the gold settles out. Now most of us spend the first few years as a shareware author trying to build the perfect sluice box. We tweak our program in every way we can to try to get every possible sale out of our downloads. But eventually we realize that to get more gold (sales), we are going to need more sand (downloads).

Now there are a lot of different web sites that generate downloads for our programs. There are download sites, crack sites, search engines, and newsletters that are all driving downloads of our programs. While all of these sites may generate a significant number of downloads, our job is to find which sites generate a large number of sales.

To do this we need a way to figure out which of our downloads result in sales. We have good stats from our file hosting provider which tell us where are downloads are coming from and we have good records from our e-commerce provider about who bought our program but we don't have any way of tying those two together. From a shareware developers perspective the customer drops into a black hole once they download the program and then a few magically pop out the other side when the buy.

To tie the download back to the source of the sale we don't need to transfer a large amount of data. We could easily track over 600 different sources of sales with just a two letter tracking code (26^2). And a three letter tracking code would allow us to track over 17 thousand different sources (26^3)! We just need a place to tuck our tracking code after the user downloads so we can read it back when they return to buy.

There are a couple of different places we could tuck a 2-3 letter tracking code. Each one has its set of problems but the simplest solution was recommended to my by one of our developers. The tracking code is stored in the filename itself! We call this system, dynamic naming.

With dynamic naming the web server is slightly modified so that the filename can change without breaking the download link. For example this download link:

Can be changed to include the tracking code "cd" like this:

FileKicker has a feature that makes this possible with out having to upload a new file to the web server or changing any settings.

When the customer clicks on the download link in our example, the file is saved to the user's machine as notepagerpro-cd.exe. If notepagerpro were to implement this tracking system it would grab the tracking code from the file name during the install and store it in the registry. When the user clicked the "register" button from inside the program, the tracking code would be passed to the e-commerce provider and is included in the sales stats.

Now I am a just a web guy and really don't know the details of how this is done in code. Developers who have put this in place tell me that it is fairly simple because most installers "know" the name of the file from which they were launched. How it is done most likely varies with installers and programming languages but those who have put this in place tell me that it only takes a few hours to implement.

Each download site or marketing campaign is given their own download links with embedded tracking codes. Since the tracking code is in the filename the tracking even works when the file is hosted on the download site or is delivered on a magazine cover CD.

Of course not all users download directly from the websites that link to us. Some of our marketing campaigns like Google Adwords may not even include download links to our products. And to have a fully functional tracking system we need to track these too.

As a web guy this part has always seemed pretty trivial to me. Hosting our own servers it has always been easy to script this stuff into the back end. But I have found out that the web stuff is as mysterious to most shareware developers as desktop programming is to me. And many shareware developers don't have web hosting accounts that even allow server side scripting.

Luckily all the functionality needed can be done with client side JavaScript. And even better, somebody else has done the work! We have put together some JavaScript that makes the web site modifications a snap. To modify your web page all that is needed is to upload the tracking.js to the root directory of your web server and to load the JavaScript functions in your web pages with these lines:

Once the JavaScript functions on the webpage are loaded the JavaScript will look for a query string parameter called "id" and set a cookie to make it sticky. The links on your download page will need to be replaced with JavaScript calls that will add tracking codes to your files names. Since these scripts were created for FileKicker customers and the arguments to the function are the FileKicker fileID, filename, and the files extension. For example:

Download Now

On your e-commerce pages the e-commerce links need to be replaced with JavaScript that to add the tracking codes to your order pages. Passed in to the function is your current link to your e-commerce provider's order page and the name of the parameter that the e-commerce provider uses to pass tracking information. Most e-commerce providers have this sort of functionality although the query string parameter varies. For example this would be the correct call for Emetrix and NotePage Pro:

rewriteEcommerceLinkAsLink("", "id")

And of course we should add tags with our download and e-commerce links in the unlikely event that the user has JavaScript disabled for some reason.

Once all the pieces are in place it is trivial to create a new tracking code for a download site or market campaign. A new 2 letter code is chosen and written down somewhere so it won't be forgotten and the links to the download and webpage are modified to include the new tracking code. For example if I were uploading to I may chose "dc" as my tracking code and provide download these links to my site when I upload my files:

Once those links are posted, I am tracking downloads to sales across their site. Pretty simple and easy to maintain! One caveat is that two tracking codes are already reserved. The first is "gs" which stands for "Google Search" and the other is "yh" which stands for Yahoo. Since it isn't possible to get search engines to modify their website links to include tracking codes the JavaScript looks for clicks from these sites and automatically sets a tracking ID.

I have put a demonstration page here that shows the scripts in action using the download and order links of NotePager Pro as an example.

Even though the system is relatively simple, developer who put it in place can normally track the 60-80% of their sales back to the source with in 3 to 6 months. It is an interesting exercise in itself to try to figure out where most of the sales are coming from and putting tracking codes in place. The results are usually surprising.

Once a good source of sales has been identified the problem then becomes how to increase sales from those sites. Usually there are paid advertising opportunities or you can work for better placement on the site. And if you find you can spend $1 to increase sales by $2 the challenge then becomes finding a place to spend a million dollars.

About the author:
Michael Halls manages the technical admin side of File Kicker, file hosting services for software developers.
Written by Michael Halls /
Labels: ,


Log In or Sign Up to hide these ads.

Iconico, Inc. Software Stores

Accurate Design and Development Software

24 Hour Discount Deals on Fantastic Software Applications

Iconico, Inc. Software Services

You Wrote the Code, Now How do you Sell it?

Our Official Blog

© copyright 2004-2010 Iconico, Inc. All Rights Reserved