Over the past two weeks, we've migrated from the old Google Analytics tags ('Classic' Google Analytics) to the new (well, less old) 'Universal' Analytics tags. I wanted to write a little bit about our experience as I haven't seen many people writing about this relatively unsexy but crucially important part of many sites' analytics pipelines.

Why we migrated

Google lists a bunch of reasons to migrate to universal analytics, namely:

- Tracking user activity across apps & other devices is possible.

- The old trackers will eventually be deprecated.

- Tracking users across multiple devices (note: we did not implement this) is possible.

- More configuration options are available.

The first three of these did not really apply to us:

- As of right now, we don't support any apps. Easy.

- I'm skeptical that Google makes analytics changes that break the good old ga.js tags in the next 5 years. There are loads of great analytics providers out there, and while google's product is great, real breaking changes wouldn't encourage people to upgrade to a new tag they might have to switch down the line.

Advertisement

- While tracking users across multiple devices has some appeal from a purely analytical perspective, there's not a lot of reason for us to do so: we aren't a SaaS company or big-ticket retailer where a conversion means tens of thousands of dollars. More importantly, we're committed to ensuring user anonymity, and that commitment extends all the way to our tag implementations.

However, we do have one fairly complex configuration issue: our user community is fragmented across our 8 owned and operated blogs, as well as additional blogs and sub-domains we host. Configuring our analytics to recognize these other domains as part of kinja, while also recognizing each distinct property as it's own site, requires jumping through a few hoops. The ability to track multiple tags on a page with Universal Analytics made the choice fairly straightforward for us.

The Good

Technically, updating our code to handle the new tags was simple, though tedious. Once the accounts were upgraded, converting from old to new pageview and event tags was straightforward.

With GA's Real-Time view and the Google Analytics Debugger, finding our errors was about as painless as I could have hoped for.

The Bad

Google has tried to downplay some of the major breaking changes for advanced implementations of Universal Analytics, but they are there. The major one is the deprecation of custom variables in favor of Custom Dimension & Metrics. While the report experience for the transition is great, it leaves a lot of questions about the right way to implement the changes, which I got wrong the first time. We mistakenly implemented our vars as events, leading to this:

That big hump to the right there is from mis-classifying variables. While this is unquestionably my fault, it's obviously very easy to introduce bugs in the process, so beware.

Advertisement

More importantly, while looking to use Google's Tag Manager, our contacts at Google alerted us to the fact that it does not work with Google Analytics Experiments, which we use and like (more about that another time). Once we learned this, we decided to scrap our initial implementation plan using the tag manager, which was obviously disappointing.

Overall

It's early, but the results from the switch have been good: we're eliminating the mis-categorization of users crossing domains and getting a much better sense of visitor behavior. Also, the new set up should be much more scalable if/when we add additional domains.

For sites with a complex domain structure or who need to track usage across devices and apps, Universal Analytics is a no-brainer: reliable, simple to implement, and easy to use. But for personal and simple media sites, I think the upgrade to universal analytics is probably not necessary: there's no meaningful functionality for those types of sites.

Thanks to Janos, Justin, Ben, Diego, and Lauren for their help with this project!

[photo credit]