Detecting Google Universal Analytics

By  on  

Just about everyone uses Google Analytics and why shouldn't they?  The amount of useful data you can pull from Google Analytics, especially if you use custom dimensions, is amazing.  Whether you're A/B testing, trying to increase engagement, or improve sales, Google Analytics is just about perfect.

I recently experimented with detecting external link clicks with the current version of Google Analytics called Universal Analytics.  In doing so I realized that utilities like Ghostery blocked GA, which is fine, but they also shim the ga function that I was using to detect if the third party service was loaded.  Damn.  It turns out you need to do an additional check:

if(window.ga && ga.create) {
	// Do you ga stuff
	ga('send', 'pageview');
}

Checking for the Analytics's custom create method ensures that Google's utility is there and not simply shimmed by Ghostery or a likewise service!

Recent Features

  • By
    Responsive Images: The Ultimate Guide

    Chances are that any Web designers using our Ghostlab browser testing app, which allows seamless testing across all devices simultaneously, will have worked with responsive design in some shape or form. And as today's websites and devices become ever more varied, a plethora of responsive images...

  • By
    JavaScript Promise API

    While synchronous code is easier to follow and debug, async is generally better for performance and flexibility. Why "hold up the show" when you can trigger numerous requests at once and then handle them when each is ready?  Promises are becoming a big part of the JavaScript world...

Incredible Demos

  • By
    MooTools Star Ratings with MooStarRating

    I've said it over and over but I'll say it again:  JavaScript's main role in web applications is to enhance otherwise boring, static functionality provided by the browser.  One perfect example of this is the Javascript/AJAX-powered star rating systems that have become popular over the...

  • By
    MooTools History Plugin

    One of the reasons I love AJAX technology so much is because it allows us to avoid unnecessary page loads.  Why download the header, footer, and other static data multiple times if that specific data never changes?  It's a waste of time, processing, and bandwidth.  Unfortunately...

Discussion

  1. > Just about everyone uses Google Analytics and why shouldn’t they?

    Google Analytics is one of the key pieces of the Orwellian world which Google is building for us. Virtually every website puts this innocent looking piece of JavaScript on all their pages. It gathers people’s browsing habits and centralizes this information in Google’s data farms. That data end up being sold on the data market and refined by data brokers such as the Acxiom company or given away for free to intelligence agencies, as everyone is now aware of. I understand why you do it and I’m not blaming you, I used to do the same until I realized what I was contributing to by doing so. I hope you’ll agree that we should thrive to make the web a tool of freedom and not a weapon of control. It’s not that people at Google are bad either, it’s just that any company that grows so big fatally end up being dehumanized. Piwik works fine ;-)

  2. Great, thanks for posting – this works well. After years of checking for _gaq comes to and end…

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