|
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 streamed 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:
http://dl.filekicker.com/nc/file/128714-COXA/software.exe
Can be changed to include the tracking code "cd"
like this:
http://dl.filekicker.com/nc/file/128714-COXA/software-cd.exe
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 software-cd.exe. If software 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:
<SCRIPT LANGUAGE="JavaScript" src="/tracking.js"></SCRIPT>
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:
<SCRIPT>rewriteDownloadLinkAsLink("128714-COXA",
"software", "exe");Download Now </SCRIPT>
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 Software:
rewriteEcommerceLinkAsLink("http://secure.emetrix.com/order/product.asp?PID=1748830",
"id")
And of course we should add <NOSCRIPT>
</NOSCRIPT>
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 download.com I
may chose "dc" as my tracking code and provide
download these links to my site when I upload
my files:
http://dl.filekicker.com/nc/file/128714-COXA/software-dc.exe
http://mail.qwerks.com/tracking/tracking.html?id=dc
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 Software as an example.
http://mail.qwerks.com/tracking/tracking-links.html
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.
FileKicker - Software File Hosting

http://www.filekicker.com
Related Articles:
How
Accurate are a Software Developer's Statistics?
Referring Sites
Statistics
Emetrix
Sales Tracking Trends
Days
to Sale
|