Clickbank vs. Google AdWords Discrepancies

A client recently contacted me to ask why Google AdWords was reporting conversions but the clickbank affiliate account the Google AdWords ad linked to showed zero conversions.  The names have been changed to protect the innocent.  That includes the site - I have no idea about websites selling pipecleaners.

The "Basic" Process

  1. Joe the plumber (just to be topical) searches in Google for a phrase that triggers my client's AdWords ad for bestpipecleaners.com.  
  2. If Joe clicks the link, Google AdWords places a cookie on his machine that lasts 30 days to record the Ad that drove him to the site
  3. Google AdWords redirects Joe to the link in the Ad, in this case my client's clickbank affiliate link
  4. Clickbank creates a clickbank cookie good for 60 days to record the affiliate ID responsible for taking Joe to the clickbank destination URL, in this case, my client's landing page finally.
  5. Joe goes from the landing page to a few more pages and then hits the purchase button
  6. The purchase button goes to the clickbank checkout process
  7. Clickbank pulls the 60 day clickbank cookie from Joe's machine
  8. When he completes the sale, the affiliate ID from his cookie is credited with the sale
  9. Clickbank redirects Joe to the thank you page on my client's site
  10. The thank you page is tagged with the affiliate tracking code and Joe closes his browser and goes to fix some pipes.

Simple huh?  So in this case clickbank correctly accounts for one sale from my client's affiliate ID and Google AdWords records one conversion against the Ad that convinced Joe to purchase.

The Blockage in the Pipes
Josephine the plumber searches in Google for a phrase that triggers my client's ad and follows a similar path as Joe but when she gets to the landing pages, she doesn't trust the hype, leaves the website and goes to fix some pipes.  

A week later she is still trying to solve her underlying problem so she goes back to her computer and finds another website on the topic, pipecleanerreviews.com. Unbeknownst to her, this site is also an affiliate of my client and after she sees a review of my client's product, she decides it might work after all and clicks the link to visit my client's landing page again at bestpipecleaners.com.  Behind the scenes, the URL she clicked on is a clickbank link with pipecleanerreviews.com's clickbank id instead of my client's clickbank id.

  1. Clickbank records the affiliate id as pipecleanerreviews.com in the cookie on Josephine's machine, replacing the original affiliate id of bestpipecleaners.com
  2. Clickbank redirects her to bestpipecleaners.com and she completes the sale
  3. Clickbank pulls the cookie from her machine (pipecleanerreviews.com's affiliate id) and so they get the credit for the sale
  4. Clickbank redirects her to the thank you page which is also tracked with pipecleanerreviews.com's conversion tracking code (in addition to bestpipecleaners.com's code), and she goes off to fix some pipes.

The problem in this scenario, is that the thankyou page has both Google AdWords conversion codes and so both AdWords accounts (bestpipecleaners.com and pipecleanerreview.com) will record a conversion, when clickbank only credited a single affiliate with the conversion.

There are many other scenarios that play out in a similar way and she might have visited many sites.  In fact some of the links from my client's site bestpipecleaners.com points to pipecleanerreviews.com because it's a good idea to let people get third party opinions of your products to help them decide if it's worth buying.  

To accurately measure the AdWords campaign, the first search she did was not responsible wholly for the sale but since conversions are absolute we have to decide who gets the credit.  Regardless of your opinion on this, clickbank believes the last affiliate ID used should get the credit since they ultimately generated the sale.  Google AdWords however has split the credit because of the conversion code existing for both affiliates on the thank you page.  

The BestPipeCleaner for the job
If we want to change this behavior to make it match clickbank we have to show only the Google AdWords conversion code for the affiliate recorded by clickbank.  Fortunately, Clickbank reports the affiliate ID (if there was one) in the URL as the variable cbaffi when the visitor is sent to the thank you page so it is a simple matter of detecting which affiliate ID was passed and showing the appropriate tracking code snippet.  This could be a google snippet, a Yahoo PPC snippet or any other conversion code really, we just need to show one or none. 

The URL will look something like this where zzzzzzz is the affiliate ID and ... means there is much more than I want to type out:
/common/thankyou.cfm?item=9&cbreceipt=xxxxxxx&time=1224443502&cbpop=yyyyyyy&cbaffi=zzzzzzz&cname=...

For my solution I propose a database table of unique affiliate IDs mapped to their tracking code snippet but if you are only dealing with a few affiliates you could manually write this out to a property list or structure if you can carefully escape any quotes or double quotes that might break your code.

  1. If the affiliate ID is blank or isn't passed to the thank you page, do nothing and skip to the rest of the page
  2. If the affiliate ID is not blank, look-up the affiliate ID in the database:
    1. If there are no matches do nothing and skip to the rest of the page
    2. If there is one result, display the conversion tracking code and then show the rest of the page
    3. If there are mulitple results for the affiliate ID, loop over the rows and write each snippet out then show the rest of the page

Ideally, each affiliate would have only one snippet per ID but it is foreseeable that an affiliate might be promoting your site on Google, Yahoo and several other conversion tracking channels.  If you don't give them a unique affiliate ID per channel, they will record a conversion against each in the unlikely event that someone saw an affiliates Google ad, then their Yahoo ad before making a purchase.  It's a complex scenario but worth noting.  If you can, give them a unique affiliate ID for each separate ad medium they use (Google, Yahoo) so they can see the stats they need.

For help with your Google AdWords issues take a look thru my consulting site and contact me.  If you need help with Clickbank I have to confess it's not my specialty but I can try to help. 

I've also worked extensively with third party e-commerce providers to configure Google Analytics to ensure revenue is recorded against the correct referral sources which is a related issue.

Comments (Comment Moderation is enabled. Your comment will not appear until approved.)
Jaime's Gravatar Great write up Adam. The only drawback I see is that Clickbank (or really the affiliate) is the one that assigns the affiliate IDs for each affiliate. So, if the affiliate is using multiple channels to drive traffic, there is no way to separate out the traffic by affiliate ID alone.

One thought to help with this would be a Clickbank Tracking ID. You can pass a TID on the hoplink to identify a channel of traffic responsible for the sale. But, I'm not sure that the TID is passed back to the Thank You page in the URL. My guess is that it is, but I haven't tested that to be sure.

If the TID is passed to the Thank You page, and you were working that closely with affiliates, you could insert specific tracking codes based on the combination of affiliate ID and TID.

Hope that comes in helpful.

PS: Good to see you getting involved in some internet marketing. We'll have to team up on something soon.

thanks
Jaime
# Posted By Jaime | 10/30/08 7:30 PM
Adam Howitt's Gravatar Well, there's internet marketing and internet marketing...

A clickbank URL is typically item.affiliate.hop.etc. but you can use item as a sub-affiliate ID if you want to get tricky...
# Posted By Adam Howitt | 10/31/08 10:48 AM
Jaime's Gravatar Just for clarity the clickbank URL for an affiliate hoplink is affiliateid.vendorid.hop.clickbank.net, but the affiliate can add an additional URL parameter of TID that shows up in their Clickbank reports to help with conversion and traffic tracking. So, you could have affiliateid.vendorid.hop.clickbank.net?TID=adwords or affiliateid.vendorid.hop.clickbank.net?TID=yahoo
or for best affiliate tracking a unique ID per traffic channel.

It's the TID that you could use to help include appropriate tracking code for an affiliate that may be driving traffic in multiple ways that wants to see conversion stats for each traffic channel.

The vendor could certainly setup different products and use the item ID for tracking, but I don't think it's possible for the affiliate to specify the product ID in the normal hop URL, so it wouldn't really help the affiliate that way.

You may still be able to make it work with custom URL parameters and separate product IDs, but this kind of thing is exactly why Clickbank added the TID parameter a little a couple years ago.

If affiliates are interested in tracking down to the keyword and ad unit level, then Xtreme Conversions would be a great tool to look at. It's not completely automated, but it can really help to track conversions at the ad unit/traffic channel or even keyword level.
# Posted By Jaime | 10/31/08 11:22 AM
Adam Howitt's Gravatar Ah, thx. I was mixing my URLs confusing product URLs with affiliate URLs. Hence the disclaimer at the bottom of the blog entry ;-)
# Posted By Adam Howitt | 10/31/08 11:27 AM
Jaime's Gravatar No problem :). Having attacked the Clickbank URL structure from both the vendor side and the affiliate side, I've learned the hard way that it can be a pain to keep track of everything.

PS: another thought on your original issue is that someone may be cookie-stuffing your customer's prospects. There are quite a few dishonest affiliates out there who will stuff a prospect's browser with all kinds of affiliate cookies for products that they aren't even directly promoting. Then, if the prospect ends up back on any one of those product landing pages, the dishonest affiliate will get credit for the sale, even though they weren't really the one who referred the sale. It's becoming a more and more common problem. It's also one of the biggest drawbacks of "last cookie" affiliate programs like Clickbank.
# Posted By Jaime | 10/31/08 12:48 PM