Like many startups, I use CPC ads to attract attention to WhisperGifts. I bid a set fee per click for particular search words on Google, and for ads shown to my target demographic on Facebook. I wanted to track an individual signup to their source CPC campaign, so put together a really quick bit of Django middleware to help me out.
All I do is stash the value of
utm_campaign (set by Google or Facebook) into a cookie called
class CampaignMiddleware(object): def process_response(self, request, response): from registry.models import Campaign if 'utm_campaign' in request.GET.keys(): if 'wgcampaign' not in request.COOKIES.keys(): # add campaign cookie c = request.GET.get('utm_campaign', None) response.set_signed_cookie('wgcampaign', c, max_age=31536000, httponly=True) return response
At signup time, I read out the cookie into the users table:
try: campaign_code = request.get_signed_cookie('wgcampaign', None) except: campaign_code = None user.campaign_code = campaign_code
Simple! I've now got the capability to track actual revenue by campaign source - a very handy tool to identify which campaigns might warrant higher or lower spending.
I'm aware this isn't rocket science, but I figured it's worthwhile sharing - it makes more sense to me to track these things directly in my own database, than to try and match data from the AdWords panel with various analytics services.
Happy CPC bidding!