When it comes to affiliates, one of the most common questions I get asked is how do I know I can trust my affiliate partner? With affiliate companies popping up every single day (and closing down every single day), how do I know that the company isn’t shaving conversions or doing some other shady stuff?

Sadly, there is just one perfect way to confirm conversions and that’s to add tracking to the final success page (the page a visitor reaches once they complete the necessary action) and getting that is nearly impossible for most major corporations. Would Citi let you add a pixel on their success page? No. A smaller tech company, without all the levels of red tape, might but for many companies it’s not worth the hassle.

Tracking Clicks

That said, you can confirm clicks by simply tracking actions on your side. You can do this by setting up event tracking in Google Analytics. If you have Analytics installed, it’s a simple matter of adding code to the OnClick event handler.

There will always be a small discrepancy. Some people don’t have Javascript enabled, which renders Google Analytics inoperative (you can get around this by using PHP redirects and having the code enter a row in your database… but do you really want to increase the lag between the click and the affiliate page popping up?) and some people will click and somehow not continue through the redirect (it happens). Whatever the case, sometimes it won’t match but it should be significant. If it deviates too much, I’d be worried.

Split Test Affiliate Companies

The only way to know if an affiliate company isn’t shaving leads is by running a split test. Send half your traffic to one affiliate company, half to another. If the conversion rates deviate too much, you know who to trust. Sometimes companies can offer higher CPAs because they’re shaving leads, so the effective CPA is much lower. The only way to confirm this is by testing this way.

Be sure to run the test long enough to be confident that your data is statistically significant. If one company converts 10 out of 100 and another converts 15 out of 100, that’s a difference of 50% but it’s really only 5 people. Is that significant?

What is Significance?

The best explanation I found, which includes the math behind it, is here. Jason Cohen uses a Pearson chi-square test to calculate whether a difference is statistically significant.

Essentially the equation is:
N = number of trials, a trial is a conversion – NOT a visit
D = half the difference between winner and loser (clicks)
Significant if D2 is larger than N

For our simple examples of Company A converting 10 on 100 visits and Company B converting 15 on 100 visits, we calculate the variables to be:
N = 25
D = (15 – 10) / 2 = 2.5
D2 = 6.25
D2 is not greater than N so it is not statistically significant.

Multiple each number by a ten and what do you get?
N = 250
D = (150 – 100) / 2 = 25
D2 = 625
D2 is greater than N so it is statistically significant.

In some cases, it doesn’t take long to get to the truth. In other cases, it can take a while.

This is, of course, a win win situation. If you find out one company is statistically better, go with them after you factor in payouts. If you don’t find out either is better and both pay the same, you know have a suitable backup that you’ve vetted in case one company’s servers go down.

Lastly, remember that this does nothing to explain why one company performs better, just that one does (or doesn’t).

As President Reagan said – “Trust but verify.”

How do you verify affiliate companies?

If you were to ask anyone ten years ago whether you could build a journal on the internet and then sell it to someone or some company for a few million bucks, you’d be laughed at. Then, one by one, you see sites like Treehugger (sold to Discovery Communications for $10 million in 2007) and Bankaholic (sold to Bankrate for $15 million in 2008) and you stopped laughing. A blog is a business and every business ends – it is either sold, passed onto someone else, or it is closed. If you don’t have an exit strategy for your blog, you can safely assume you’ll fumble through the exit or you’ll shut it down.

Here are ten things you should know before selling your blog:

  1. Get your finances in order. Not all acquisitions are for strictly financial reasons but every buyer will want to see your financial books. If you plan on selling to a publicly traded corporation, have spotless books. If you plan on selling the blog for a few grand on Flippa then you can get away with something less rigorous. Accurate books will make the due diligence process much easier.
  2. Approach competitors, partners, distributors, and their mothers. The key to getting a good price for you blog is competition among buyers. The more potential buyers you have, the better because they will push up the urgency and, hopefully, the price.
  3. Get a lawyer. The sale of your blog is going to be one of the biggest financial decisions of your life, make sure everything is in order because you don’t want the deal collapsing because you forgot something trivial.
  4. Make sure you own all your content. Did you hire freelance writers? Did they sign a contract that indicates the content was “work for hire?” Do you have the rights to the images you are using on the site? Make sure you own everything.
  5. Talk to a broker. Nothing says you can’t sell your website yourself but if it’s generating significant income, consider talking to a full service broker. Almost all of them will offer a free consultation
  6. Learn the process. The basic schedule for the sale of a business is straightforward, learn it and keep track of it because you will, hopefully, be dealing with multiple buyers and it’s crucial that you keep them straight.
  7. Cut expenses. Whenever you can, try to cut the expenses associated with your business. Buyers will often default to valuing your business as a multiple of profits and expenses each into your profits
  8. Talk to your fellow bloggers. You probably know someone who has sold a site – talk to them and try to learn from their experiences. While every sale is unique, there are commonalities you can learn about just by talking to someone else. Even fellow bloggers who haven’t sold might provide insight simply because you don’t know if they’ve been approached before.
  9. It’s not always about the sale price. When you read about someone selling a business, you’ll hear about the sale price. There’s a lot more to it than that. The sale price is the marquee number but it’s hardly the final one. By structuring your sale properly, you can get a smaller sale price but walk away with more money in your pocket after taxes.
  10. It’s a long journey. If you talked to other bloggers, especially ones that have sold, you’ll learn quickly that it can be a very long process with a lot of work involved. Be mentally prepared to devote many hours of your life and that there is a chance that, even with all that work, the deal won’t go through. Losing a deal, especially after you’ve put many hours into it, can be demoralizing but it’s a possibility.

These are just ten things you should know before you sell your business – maybe in a few weeks I’ll throw ten more out there!

In Google Analytics, there are two “visit” metrics – an absolute unique visit and a “regular” visit. Google Analytics uses cookies to help track visitors to your site and the use of these cookies is crucial in incrementing visit and absolute unique visit counts. If you’ve ever wondered what the difference was and how they’re counted, you’ll be pleased to know the answer is quite simple.

Absolute Unique Visit

Google Analytics, using javascript, will deliver a cookie to your browser that helps establish a session. For the purposes of unique visits, __utma is used. The __utma cookie expires in two years, meaning someone who visits the site every single day for two years will only be counted as one absolute unique visitor.

In reality, he or she will probably visit from several browsers (each maintains their own cookies) and will probably clear cookies several times over the next two years (or their anti-spyware apps will do it for them), but theoretically the above could hold true.


A visit is merely a “user session” and that is stored as __utmb, which has an expiration of thirty minutes. If a user visits your site and then does nothing for more than thirty minutes, then the cookie expires. The next time they load the page, Analytics will see that it has expired and write a new one, thus incrementing your visits by one.

It’s unclear how the two metrics are affected if users block the setting of cookies. I tried looking online but couldn’t find a definite answer but intuition would lead me to believe that a user who blocks cookies would always be counted as a unique visitor (and thus a visitor). You would lose tracking of their behavior, since there’s no session cookie to tell Analytics where they’ve been, but you’d have correct-ish visit counts. Fortunately the number of people rejecting cookies is fairly small.

Here is a detailed discussion of Cookies and Google Analytics, which should answer pretty much any question you could possibly have, and a fantastic primer on cookies and tracking overall.

Why I Dropped Homepage Google Adsense

by jim on January 5th, 2010

Your site’s regular readership is its lifeblood, you should always strive to give them what they want and keep them coming back for more. They are the folks who take time out of their day to email you, to comment on your articles, to tell you when your wrong and to tell you when you’re right. Without them, your site would a lifeless collection of posts that really, lets be honest, are otherwise unremarkable. With readers and their own insightful comments, your posts become much richer, provide more value, and are probably more interesting. 🙂

So with that mantra always in my mind, I’m always striving to improve the user experience because I want to make the site the best it can be. That’s why I try to make it faster using tips from YSlow and why I, about a year and a half ago, decided to remove Google Adsense from Bargaineering.com’s homepage.

Metrics Don’t Lie

Metrics will always lead the way in any justification and this case is no exception. My hypothesis was that regularly readers were hitting the homepage and thus less likely to click on advertisements. Search engine and new visitors, those more likely to click on Adsense, would predominately be visit individual posts. Fortunately testing this theory was easy, I had separate channels for the two left sidebar skyscrapers on the homepage and for the two skyscrapers on individual posts. Each were the 120×600 blocks.

June 2008 was the last month I had Adsense on the homepage and CTR figures were (these are not the actual CTR figures but the ratios are correct):

  • Upper homepage skyscraper – 2.56%
  • Lower homepage skyscraper – 1.00%
  • Upper individual skyscraper – 29.77%
  • Lower individual skyscraper – 3.33%

Don’t focus on the numbers themselves because they’re not the actual CTRs, just focus on the ratios. One ad block did not get a near 30% CTR… 🙂

As you can see, the homepage ads performed horrible compared to the individual ads – as expected. In fact, the lower placed individual skyscraper beat the higher placed skyscraper on the homepage – further cementing the idea that homepage visitors simply don’t click on advertisements.


When you looked at revenue, the difference was even more pronounced (again, no actuals but ratios):

  • Upper homepage skyscraper – $2.89
  • Lower homepage skyscraper – $1.00
  • Upper individual skyscraper – $67.95
  • Lower individual skyscraper – $14.00

If I had to keep only one adsense block, I’d keep the upper individual skyscraper. Fortunately, I can decide to keep them all and I made the decision that it was better for the user if I removed homepage ads. In the end, it wouldn’t cost me much and I felt it made for a cleaner experience.

Have you made the switch to an ad-free homepage? If so, did you do a similar analysis? It not, have you considered it?

Google Website Optimizer is absolutely incredible. If you do any split testing at all, you can recognize the absolute gem that is the optimizer platform offers. Setting it up to work with WordPress does take a little bit of work but once you establish this framework, subsequent efforts will become very easy.

Incidentally, you can’t use this to split test Adsense because Adsense won’t let you track clicks in this way. To split test Adsense, using a simple rand() function and an if clause is sufficient.

There are three steps to the process:

  • Post Modifications: This section will explain what you need to do on individual posts to get tracking enabled.
  • Header Modifications: For the Optimization code to work, there is a javascript snippet you need to add to the header of each post. This snippet is custom to each test, so we need to pass some variable around to set the test number variable.
  • Footer Modifications: Much like the header code, there is footer code that serves the same function.

Post Modifications

In the Custom Fields I create two new variables:

  • showOptimizer – This will be set to 1 whenever I want the optimizer code to be included for a post. By default, when it’s not set, it’s a 0.
  • GWOtestNumber – This is the Google Website Optimizer test variable number. When you setup your test, one of the steps will include all the code you need to put on your site. Look in the Conversion Script (the last block of code) for something that says _trackPageview(“/XXXXXXXXX/goal”); – that’s the number you set here.

These variables will tell other code snippets in your header.php and footer.php how to create the Control Script (header) and Tracking Script (footer).

Tracking User Actions: In the post itself, you need to add
onClick="javascript: pageTracker._trackPageview('/XXXXXXXXX/goal');"
to each click you want to track (without the carriage return/line wrap, it should be one line). Replace XXXXXXXXX with the GWOtestNumber.

For example, on a link the link will now look like this:
<a href="http://www.google.com" onClick="javascript: pageTracker._trackPageview('/XXXXXXXXX/goal');">Google.com</a>

Identify Split Test page Sections: Finally, throw this code around the section(s) you’re going to be split testing. This goes in the beginning:
<script>utmx_section("Test Section A")</script>
And this goes after it:

Change the text (Test Section A) to something that makes sense to you.

Later, through the GWO system, you can create the other versions.

Header Modifications

The header is getting a modified version of the Control Script, with the underlined section of the original replaced with an echo of a post Custom Field. Confirm the code is correct with the code you get from Google Website Optimizer, they may have made some changes. You’re replacing the K test number value with the one you set as a Custom field, then adding some conditional code around it to only display this code if you are running optimizations on it.

$showOpt = get_post_custom_values('showOptimizer');
if ($showOpt) {
$GWOTestNumber = get_post_custom_values('GWOtestNumber');
function utmx_section(){}function utmx(){}
(function(){var k='<?php echo $GWOTestNumber[0];?> ',d=document,l=d.location,c=d.cookie;function f(n){
if(c){var i=c.indexOf(n+'=');if(i>-1){var j=c.indexOf(';',i);return c.substring(i+n.
length+1,j<0?c.length:j)}}}var x=f('__utmx'),xx=f('__utmxx'),h=l.hash;
d.write('<sc'+'ript src="'+
+new Date().valueOf()+(h?'&utmxhash='+escape(h.substr(1)):'')+
'" type="text/javascript" charset="utf-8"></sc'+'ript>')})();
<? } ?>

Footer Modifications

The footer is getting a modified version of the Tracking Script, with the bolded section of the original replaced with an echo of a post Custom Field. Again, confirm the code is correct with the code you get from Google Website Optimizer, they may have made some changes.

$showOpt = get_post_custom_values('showOptimizer');
if ($showOpt){
$GWOTestNumber = get_post_custom_values('GWOtestNumber');
<script type="text/javascript">
if(typeof(_gat)!='object')document.write('<sc'+'ript src="http'+
<script type="text/javascript">
try {
var pageTracker=_gat._getTracker("UA-4422524-4");
pageTracker._trackPageview("/<?php echo $GWOTestNumber[0];?> /test");
<?php } ?>

It sounds complicated but if you walk through it step by step, it should work. Now, whenever you want to do some GWO testing on a particular page, add/set showOptimizer to 1, add the GWOtestNumber, and set the brackets around your test area and you should be ready to go.

Let me know if you run into any problems or see an error in the code snippets.