Category - Internet Marketing

Hiring on Elance: How to get it right
Make Your Phone ‘Kerching’ When You Make A Sale
Never Trust Adwords Conversion Tracking

Hiring on Elance: How to get it right

ElanceLike many other internet marketers, I like stuff done right. Nobody else can see inside my head, so I have always been guilty of trying to do everything myself.
Copy writing, accounts, SEO, design, I’ve spent countless hours beavering away, sometimes quite inefficiently building links or designing logos. After a while I realised that I was limited by the amount of hours in a day. It’s simply impossible to grow a business all by yourself. You simply must learn to delegate. You need to outsource.

Around 10 years ago I discovered Elance. There are loads of other freelancer sites, but Elance is the site which I started with and stuck with ever since.

In theory, you post your job on the Elance site, choose from the flurry of proposals from eager workers, then watch as your work magically gets done for you. For a charge, obviously.

Unfortunately, it isn’t always like this. In fact, unless your worker is carefully screened, your project accurately specified and meticulously project managed, you will probably end in a frustrated argument and no decent website or design out of it at the other end.

Here are my helpful hints of how to get projects done on Elance, the right way.

Job Description

Make sure to be as detailed as possible when writing the description of your project.
List all of the tasks you require them to take and what you expect at the end of it.
30 minutes spent here can literally make the difference between finding the right candidates or useless candidates.

Make sure you specify ALL of the required skills. If you’re having a website built and you hire a PHP developer, don’t expect him to know any jQuery, unless you specify it.

Screening Workers

In my experience, projects posted to Elance typically receive around 5-20 proposals.
Use the 1-5 rating system to your advantage to score the workers. Once all are rated, it makes it much easier to pick the best.

Start by going through and hiding all of the proposals which look generic and don’t look right for your needs. Many workers won’t have the relevant skills or experience. Personally, I only accept workers who have a decent amount of earnings and 4+ stars. I also remove workers who don’t provide examples of past work. Often, a lot of designers for example, churn out some awful low quality designs. You have been warned!
You can afford to be picky here. If they aren’t perfect for the job, ditch them.
Instead of rejecting proposals, I normally just hide them. This makes it possible to change your mind later if it doesn’t work out with your chosen worker.
I almost never choose the cheapest bid. If a bid looks too low to be true, it probably is. There are some very low quality workers out there, particularly in eastern countries. If you want something done right, expect to pay a fair price for a decent worker with strong skills and plenty of experience.
If you are hiring from a western country such as the USA or UK, expect to pay a little more. When hiring article writers, I would ONLY hire native English speakers, otherwise you will get low quality content. If possible, get your worker on the phone, just to check all is well. I recently hired a worker from the USA to write articles, only to discover that he was connecting via a US VPN as a proxy server from India! The higher rates for Western countries likely lured this worker to commit fraud. Be aware.

Starting the project

Before work commences, I always upload an NDA and basic contract. You can download templates of these documents from the net and alter them to your requirements. This just gives you an extra bit of protection.
I make it clear to the worker that by accepting the project, they are accepting the requirements in the documents.
Now is a good time to upload a full technical specification. Be as specific as possible about every detail of your project. If it’s not in the spec, you probably won’t see it done.
Detail all of the functionality of the system and it’s different parts.

Project phases

I always break my development projects into milestones, with a percentage paid for each one. This helps you get working code early on and limits your losses greatly if something goes wrong. At each milestone, get the full source code completed so far, this makes it possible for another developer to pick up where they left off.
My final stage is usually “All functionality completed, fully tested and approved by me. Full source code provided and system fully working on production server”

In Summary

Freelance websites are an excellent source of labour from across the world at reasonable rates.
However, don’t expect it to be easy. Using them effectively to get work of a reasonable standard requires you to put some effort in and properly manage your projects.
As with anything, there is a learning curve involved. The best thing is just to jump in, make those mistakes and learn from them. Just don’t lose too much money on those mistakes!

Make Your Phone ‘Kerching’ When You Make A Sale

cash-registerBeing the egotistical git I am, I wanted my phone to make a ‘kerching’ sound each time I made an affiliate sale. Nothing beats dozing off on a lazy Sunday evening and hearing your cash register ring out. Here’s how I made it happen…

First, you need to receive an email each time you make a sale. If your affiliate network will do this, then the first bit is already done. If not, copy the script below into a php file called something like  ‘xml-to-email.php’ and upload it to your web server. Full instructions are in comments at the top of the file. You will most likely have to change the regex variable to work with your affiliate network’s own feed format.

/* #########################################################
Email When You Make a Sale
Developed by Hayden Kibble July 2009
Install instructions:
1. Put your affiliate network login and your email details into the variables below
2. You will probably have to edit '$regex_saletime' to match the sale time/date for your paticular aff networks xml feed
2. Upload this file to your web server.
3. Create a file called 'sales.txt' in the same directory as this script and make sure it has read/write permissions
4. Visit the page and it should show a blank page. An email will probably be sent as it picks up all your recent sales
5. Set a cron job up on your web server to run this script every 10 mins or so
6. If you have problems with any of the above, Google is your friend!
######################################################### */
$base_url = "";
$feed_user = "USERNAME-HERE";
$feed_pass = "PASSWORD-HERE";
$regex_saletime = "/<date>(.*)<\/date>/U";
$email_from = "";
$email_to = "";
$email_subject = "You Made a Sale!";
// ##### Do Not Edit Below This Line! #####
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $base_url);
// Set your login and password for authentication
curl_setopt($ch, CURLOPT_USERPWD, $feed_user . ':' . $feed_pass);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// get the data and close the session
$data = curl_exec($ch) or die("Error Getting Feed.");
$dates = array();
// Read previous sales times from database
$fileData = array();
$myFile = "sales.txt";
$fh = fopen($myFile, 'r');
$fileData = fread($fh, filesize($myFile));
// Split the file into lines
$fileLines = explode("\n",$fileData);
$newsale = false;
$fh = fopen($myFile, 'a') or die("can't open file");
// See if this sale has already been logged. If not, log it and set 'new sale' variable
foreach($dates[1] as $date){
if (!in_array($date,$fileLines)){
$newsale = true;
$sale_time = $date;
fwrite($fh, $date . "\n");
if ($newsale){
mail($email_to,$email_subject,"You have made a sale.\nSale Time: ".$sale_time,"From: " . $email_from);

To test, empty the  sales.txt file you created and run (access) the script. It will see your recent sales have not been logged and fire off the email. Make sure the email does not go to your junk folder.

If you want your computer to play a ‘kerching’ upon making a sale, you can simply set up a rule in Microsoft Outlook to play the sound upon receiving an email with ‘Payment Received’ in the subject. You get the idea.

For those of you who want the full-on portable cash register, continue on to create a gmail account with a difficult to guess name just for these emails. If you share this address anywhere it will get spammed. We do not want this as you will start hearing an awful lot of incorrect kerching’s!

You now need to set your phone up to use your gmail account. Make it check for new emails every 10 mins or so (depending on how often you set your cron job to run the script) and set this kerching wav as your notification sound.

You are now set! When the php script runs intermittently on the cron job, it parses the feed for new sales. When it finds a new sale it sends an email to your phone, which plays a ‘kerching’ sound on receipt!

Never Trust Adwords Conversion Tracking

conversion-trackingAs any affiliate marketer knows, it’s a numbers game. You need to track, tweak and split-test your way to success.

99% of affiliate marketers don’t track which of their adwords ads are profitable and which are losing them money. That’s why 99% of affiliate marketers fail.

In theory, Adwords conversion tracking is the perfect solution. It allows you to track not just what adgroups or ads are converting, but even the keywords leading to sales. I fell in love with Adwords conversion tracking as I knew it would lead to my success. The reality, however, is that it does not manage to register every conversion every time. In fact, in my experience, it only manages to register 50%. This is due to a number of reasons, which include:

  • Adwords uses Javascript to track conversions.
  • Not everyone has javascript enabled or even installed.
  • Adwords uses a 30 day cookie. If your affiliate network uses a 45 or 60 day cookie, it will not track conversions after the 30 days. Similarly, if your affiliate network uses a short cookie like, Adwords will track extra conversions
  • The visitor may close the ‘purchase complete’ page with the tracking code installed before it has fully loaded. Adwords won’t catch the sale.
  • A customer could bookmark the page with the tracking code installed, causing it to be fired when they return

Suddenly, it seems that beautiful dream of knowing the exact ROI of each ad group, ad and keyword may be just another busting bubble in the over-hyper affiliate marketing world. Well, I’m ecstatic to announce that you can still track this stuff. It just takes a little bit more work. And for near-perfect tracking, it is worth every second.

The trick is to append a variable to all of your ad URLs. Then you have your landing page attach the variable to your affiliate link. The affiliate network should then display the variable in your conversion report. After a couple of months or so you can check how much an ad has made you in sales, then subtract the cost of clicks for that ad over the same period. If you’ve paid a lot more on clicks than that ad made you in sales, bin it. If it cost a little more, drop your CPC and bring it into profitability.

Most affiliate networks have different rules regarding the variables they show on your stats. For instance, some may require that you give your variable a certain name. Look through their help pages for more info on what you should call the variable, or whether they allow you to create different ‘hop links’ or aliases for different ads etc.

Let’s say I want to track which ads for blue widgets are profitable. I could create an ad with the following URL:


Then in the source code of the landingpage.php file, I would add this at the top:

$affurl = "" . $_GET['ad'];

Now the ‘ad’ variable would be passed all the way from my advert to my affiliate network. So they would see:


You’d now see ad=myad1 in your sales report next to any sales when happened as a result of someone clicking on that ad.

Copyright © 2018. Created by Hayden Kibble.