views:

66

answers:

3

I am currently writing an interal advertising system for a company client's website, where the adverts will only be seen by internal users, and all transactions take place internally to the site (i.e. the adverts are for member-only content available on the site).

Does anyone have any recommendations as to the best way to track the conversion rate of these adverts (i.e. views:clicks:sales)?

EDIT

I'm not looking for a 'Why don't you use google analystics'-type answer, I'm looking into possible architecture outlines, i.e. a 'why don't use store a guid in a cache temporarily and see if it ties to the advert' kind of answer.

/EDIT

In a previous job I did something based on an internal cache, which simply did view:click tracking, however the addition of the sales rate makes this task more complex, especially if we take into account the idea that someone may click through to an advert and not purchase immediately.

Cheers, Ed

(N.B. I'm leaving this purposely vague in order to (hopefully) get some answers that provide ideas I've yet to have thought of by coming at the problem from a different angle)

A: 

I am not sure if it would work for you (maybe you need some in-house developed specific solution), but with Google Website Optimizer you can create whole scenarios and track every step of the transaction up to the conversion (+ much more features). http://www.google.com/websiteoptimizer

Piotr Jakubowski
Oh, needs to be *very* custom, I'm looking for an architecture outline. But cheers for the input :)
Ed Woodcock
+1  A: 

A typical approach would be to use cookies for tracking the users activity through the site, e.g.

  1. User views the advert - on this page would exist an img tag which points to a server script that returns a single pixe image. The server script would check for an existing cookie on the users machine, if one isn't found then generate a GUID for the user, and create one. Then save any details required about the impression (IP, date time etc), aginst this GUID

  2. User clicks on the advert. This would tak ethe user to a page which looks for the cookie created when the advert was viewed, stores details of the click, and drops a click cookie on the users machine, with a guid identifying the click

  3. Transaction completed. At this point have another pixel on the page which looks for the click cookie and stores the fact that the click has converted into a sale. Would also be very simple to pass in a querystring param with a sales reference

I would typically have 3 tables, one each for impression, click and conversion, with each storing as much data as is necessary. With this type of architecture you are then able to track by user, and also specific view->click->sale

One consideration is that cookies are not going to be 100% as they maybe blocked on some machines, however you could take steps to counter that by also storing the necessary Guids in a session, which is attempted first. if there is no session then look for a cookie, and then if there is no cookie you could fallback on IP address. If this is all internal and you make sure that all of the tracking runs on the same domain as the website you should have very few problems with cookies however

Macros
A: 

Pixels and cookies are both very brittle, and you end up relying too much on a browser loading data properly.

I'd suggest using an API which is triggered on a sale event. This way it "always" works, and won't be done accidently. You'll also be able to reconcile data more easily.

MonkeyMagic