Track File Downloads in Google Analytics Using MooTools

By  on  

A while back I wrote an article detailing how you can use forced downloads via PHP to track downloads. What if you could get that same data into Google Analytics? Using some simple MooTools and advanced Google Analytics tactics, now you can.

The HTML

	
	<a href="/media/video.wmv" class="download">Download This Video!</a>
	<a href="/media/document.pdf" class="download">Download This PDF!</a>
	<a href="/media/document.doc" class="download">Download This Document!</a>
	<a href="/media/archive.zip" class="download">Download This Zip File!</a>
	

Any download I want tracked, I add the "download" CSS class to.

The MooTools 1.2

window.addEvent('load', function() {
	if(pageTracker) {
		$$('.download').addEvent('click',function() {
			pageTracker._trackPageview('/downloads/' + this.get('href').replace('http://',''));
		});
	}
});

Just like tracking AJAX clicks and outbound links, we direct Google Analytics to record the event.

Now you get download counts and it gets lumped in with the rest of your Google Analytics stats.

Recent Features

  • By
    How to Create a Twitter Card

    One of my favorite social APIs was the Open Graph API adopted by Facebook.  Adding just a few META tags to each page allowed links to my article to be styled and presented the way I wanted them to, giving me a bit of control...

  • By
    An Interview with Eric Meyer

    Your early CSS books were instrumental in pushing my love for front end technologies. What was it about CSS that you fell in love with and drove you to write about it? At first blush, it was the simplicity of it as compared to the table-and-spacer...

Incredible Demos

  • By
    Making the Firefox Logo from HTML

    When each new t-shirt means staving off laundry for yet another day, swag quickly becomes the most coveted perk at any tech company. Mozilla WebDev had pretty much everything going for it: brilliant people, interesting problems, awesome office. Everything except a t-shirt. That had to change. The basic...

  • By
    MooTools TwitterGitter Plugin

    Everyone loves Twitter. Everyone loves MooTools. That's why everyone should love TwitterGitter, a MooTools plugin that retrieves a user's recent tweets and allows the user to format them however the user would like. TwitterGitter allows the user to choose the number of...

Discussion

  1. Wow, didn’t know that this was possible, this is a great trick! Thanks!

  2. Thanks man! Even i’m not a big fan of Moo, i will surely use this with jquery :P
    Thanks again ;)

  3. A while back, I wrote a jQuery plugin that automatically adds tracking for external links, downloads, and mailto’s:

    http://devblog.jasonhuck.com/2007/11/19/google-analytics-integration-with-jquery/

    Rather than adding specific classes for each of these items, I based the tracking on the characteristics of the URL.

  4. Thanks man.. I don not know the MooTool can do this.

  5. Thanks David :) everyday i learn different things from you. Thanks lot.

  6. Recently, I extended Google Analytics to add download tracking for Google’s new Asynchronous Google Analytics Model. I call the extension Entourage.js:

    http://techoctave.com/c7/posts/58-entourage-js-automatic-download-tracking-for-asynchronous-google-analytics

    One of my goals was a small footprint, so it’s narrowly scoped to track file downloads only – no mailto or external links. Also, it’s framework agnostic. I wanted developers to have the freedom to use the extension and still use whatever JavaScript framework they want.

    I love jQuery, but I’ve always had much respect for the MooTools and Prototype.js community too.

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!