Track Google Analytics and Google AdWords conversions on click with jQuery
Today we needed to track conversions in Google Analytic and Google AdWords when a user clicked a button. There are a fair few posts around with different ways to do this but as it's something we've needed to do before so I thought I'd wrap it up into a quick jQuery plugin.
I've popped the script below for you and on github as a gist here: https://gist.github.com/3946934
Please note: To track Google Analytics, you will need to make sure that the standard Google Analytics tracking code (the new version) is included on your page.
The jQuery Plugin
/*!
* Conversion Tracker: a jQuery Plugin that tracks an event in both Google Analytics and Google AdWords
* @author: Tim Gaunt (@timgaunt)
* @url: http://blogs.thesitedoctor.co.uk/tim
* @documentation: http://blogs.thesitedoctor.co.uk/tim
* @published: 24/10/2012
* @license Creative Commons Attribution Non-Commercial Share Alike 3.0 Licence
* http://creativecommons.org/licenses/by-nc-sa/3.0/
*
* ----------------------
* Usage
* ----------------------
* $('a').trackConversion({ goalId: Your AdWords Id });
*
*/
;if(typeof jQuery != 'undefined') {
jQuery(function($) {
$.fn.extend({
trackConversion: function(options) {
var settings = $.extend({}, $.fn.trackConversion.defaults, options);
return this.each(function () {
var $$ = $(this),
o = $.metadata ? $.extend({}, settings, $$.metadata()) : settings;
$$.click(function(e){
if(getValue($$, o.trackAnalytics) && (typeof _gaq != 'undefined')){
_gaq.push(['_trackEvent', getValue($$, o.label), getValue($$, o.action), getValue($$, o.value)]);
}
if(getValue($$, o.trackAdWords) && getValue($$, o.goalId) > 0){
var randomNum = new Date().getMilliseconds();
var trackUrl = "http://www.googleadservices.com/pagead/conversion/" + getValue($$, o.goalId) + "/?random=" + randomNum + "&value=" + getValue($$, o.conversionValue) + "&label=" + getValue($$, o.label) + "&guid=ON&script=0&url=" + getValue($$, o.url);
$('<img />', {src:trackUrl, width:1, height:1 });
}
});
});
function getValue(link, value) {
return (typeof value !== "function") ? value : value(link);
}
}
});
$.fn.trackConversion.defaults = {
trackAnalytics:true,
trackAdWords:true,
url: function(){ return encodeURI(location.href); },
goalId: 0,
label: "Conversion",
action: "Click",
value: "",
conversionValue: 1
};
}(jQuery));
}
Liked this post? Got a suggestion? Leave a comment