Universal Analytics left beta in April and is now the standard version of Google Analytics; every classic property will be transferred to it over the coming months, and the old ga.js library will eventually stop being supported. The migration is a code change, not a report change, and it is worth doing deliberately because the new version finally lets you measure people rather than browsers. This guide covers the order of work, the three features worth implementing on day one, and the mistakes that corrupt data during the switch.
Migrating to Universal Analytics: user IDs, dimensions, events
Universal Analytics is now the standard and Google will upgrade every property. How to migrate cleanly and what User ID, custom dimensions and events unlock.
Overview
What is different
Automation & Technology · 2014
Classic Analytics ran on ga.js and stored several cookies in the browser. Universal Analytics runs on analytics.js, stores a single first-party cookie, and moves most processing to Google's servers. The practical consequences are these.
- Session and campaign timeouts, referral exclusions and search-term exclusions are configured in the property settings instead of the code.
- Custom variables are replaced by custom dimensions and metrics: 20 of each in the free version, 200 in Premium.
- A Measurement Protocol lets you send hits from any device or system, so point-of-sale, call tracking and CRM data can land in the same reports.
- The User ID feature stitches sessions from the same logged-in person across phone, tablet and desktop.
- Events, ecommerce and social interactions are sent with a simpler syntax, and a new Enhanced Ecommerce plugin, announced this spring and rolling out in beta, adds product impression, cart and checkout funnel reporting.
Reports look much the same. The underlying model has changed from "visits" to "sessions" and from "visitors" to "users", and the data is more accurate as a result.
The migration in order
Automation & Technology · 2014
Google splits the upgrade into two steps: a property transfer, which it will do for you, and a tracking code update, which you must do. Treat the whole thing as a project with a test view.
- Inventory what you have. List every custom variable, event, virtual pageview, ecommerce call, cross-domain setup, goal and filter in the current property. Most of this lives in the code and in the view settings; write it down in one document.
- Transfer the property. In the Admin section, under Property, choose Universal Analytics Upgrade and start the transfer. It takes 24 to 48 hours, during which classic data keeps flowing.
- Create a test view. Add a new unfiltered view and a filtered one that matches production, so you can compare numbers before and after.
- Rewrite the tracking code. Replace the ga.js snippet with analytics.js on every template. If you use Google Tag Manager, switch the tag type to Universal Analytics and reuse your existing triggers; this is the easiest path and the moment to adopt Tag Manager if you have not.
- Re-implement custom variables as custom dimensions. Define each dimension in the property first, note its index, then send it from the code with the new syntax. Decide scope carefully: hit, session, user or product.
- Convert events, ecommerce and virtual pageviews. The ga('send', 'event', ...) and ga('send', 'pageview', ...) forms replace the old _trackEvent and _trackPageview arrays.
- Move settings out of the code. Session timeout, campaign timeout, referral exclusions (add your own domain and any payment gateway) and organic search sources now live in Admin.
- Verify. Run the site with the Google Analytics Debugger extension, check Real-Time reports, then compare a week of data in the test view against the classic property. Expect small differences in sessions and bounce rate; expect large ones only if something is wrong.
- Switch and document. Remove the old code everywhere, update annotations with the migration date, and keep the inventory document as the measurement plan.
| Classic Analytics | Universal Analytics | Note |
|---|---|---|
| _setCustomVar (5 slots) | Custom dimensions (20) | Define in Admin before sending |
| _trackEvent | ga('send', 'event') | Same category, action, label, value |
| _addTrans / _addItem | ecommerce plugin | Enhanced Ecommerce is separate |
| Timeouts in code | Property settings | Set referral exclusions here |
Custom dimensions worth defining first
Automation & Technology · 2014
Twenty slots are plenty if you use them for questions you will actually ask. The dimensions below pay for themselves on almost every business site.
- Logged-in status (session scope): compares behavior of members and visitors.
- Customer type or plan (user scope): new versus returning buyer, free versus paid, trade versus retail.
- Content attributes (hit scope): author, category, publish date and word count for any site that publishes.
- Form or lead type (hit scope): which inquiry form, which product line.
- Internal traffic flag (user scope): set from the office network or a cookie, so a filter can remove staff.
Custom metrics are worth adding for things that are counted rather than categorized: leads by value, articles read to the end, errors shown. Keep a single register of indexes, names and scopes; a dimension sent to the wrong index is almost impossible to untangle later.
The decisions behind the topic.
Every piece we publish starts with the questions a business owner actually asks. The full answers are at the end of the page.
Events: a naming convention before the first tag
Automation & Technology · 2014
Universal Analytics makes events easy to send, which is exactly why they turn into a mess. Agree a convention first and record it in the measurement plan.
Use Category for the type of object (Video, Form, Download, Outbound Link, Navigation), Action for what happened (Play, Submit, Click, Complete), and Label for the specific instance (the file name, form name or URL). Keep capitalization consistent; "Form" and "form" are two categories in reports. Decide which events count as interactions and which do not, because non-interaction events keep bounce rate honest for things like scroll tracking.
Then turn the events that represent business outcomes into goals, and assign goal values even if they are estimates. A site with ten well-named events and four valued goals produces more useful reports than one with two hundred events and none.
User ID: measuring people across devices
Automation & Technology · 2014
User ID is the feature that justifies the migration for any site with accounts. When a visitor logs in, you send your internal user identifier with each hit; Google Analytics then creates a dedicated User ID view in which sessions from the same person are joined across devices, with cross-device reports showing device overlap and paths.
Three rules. The identifier must be your own non-personal ID, never an email address or name, and your privacy policy must say what you collect. The User ID view only contains sessions where the ID was sent, so keep your regular views alongside it. And enable session unification so that hits before login in the same session are attributed to the user.
The Measurement Protocol extends the same idea offline: a CRM can send a "lead qualified" event with the user's client ID or user ID, and a call tracking vendor can log calls as events, so the reports finally show what happened after the form.
Platforms this usually involves
We work with the stack that fits the journey rather than forcing a fixed toolset.
Mistakes that corrupt the data
Automation & Technology · 2014
Running both snippets. Doubled sessions and a bounce rate near zero are the giveaway. Audit every template and every plugin that injects analytics code.
Forgetting referral exclusions. Without your own domain and your payment processor in the exclusion list, every return from PayPal starts a new session and steals the conversion credit.
Skipping the test view. Comparing against last month is not a test. Run the two implementations side by side for at least a week.
Reusing dimension indexes. Once an index has meant one thing, retire it rather than repurposing it.
Sending personal data. Email addresses in URLs, in events or in User ID violate the terms of service and can get the property terminated.
How Sigma Extreme approaches this
Automation & Technology · 2014
Discover: we inventory your current implementation, the goals and reports people actually use, and the systems, such as CRM, ecommerce platform and call tracking, that hold the rest of the customer story. Plan: we write a measurement plan that defines events, dimensions, goals, views and filters, and agree what questions the reports must answer. Build: our systems integration team implements the tracking through Google Tag Manager, connects offline data through the Measurement Protocol, and our web team makes the template changes, with the growth team setting up goals, dashboards and campaign tagging standards. Improve: we validate for a month, then review quarterly as the site and the business change. Because brand, growth, web and technology sit on one team, the measurement reflects the whole customer journey rather than one department's slice of it.
How we've done it before
Automation & Technology · 2014
The Digital Transformation engagement is the representative example. A multi-site business with inconsistent classic Analytics installations consolidated onto Universal Analytics through Tag Manager, with a single measurement plan, custom dimensions for customer type and region, User ID for its account holders, and CRM outcomes sent back through the Measurement Protocol. The result was one set of reports in which marketing spend could be followed through to qualified leads and repeat purchases, which changed how budgets were set the following year.
Related case studies
Representative delivery patterns showing how this connects with the rest of the system.
Digital Transformation Layer
Improve customer-facing journeys around existing systems instead of replacing everything.
Read case study →Cloud & CommerceCommerce Infrastructure Upgrade
A more reliable hosting, deployment and monitoring foundation for a customer-facing commerce experience.
Read case study →If your property is about to be transferred and you want the code change done properly, request a proposal and tell us your platform, whether you use Tag Manager, and which systems hold your customer data. We will scope the migration and the measurement plan together.
Frequently asked
Do I have to migrate to Universal Analytics?
Yes, eventually. Universal Analytics came out of beta in April and Google has said that all classic properties will be automatically transferred, with ga.js and the old tracking methods eventually no longer processing new data. The auto-transfer moves your property settings but not your code; you still need to replace the tracking snippet to use the new features.
Will I lose my historical data when I upgrade?
No. The upgrade happens in place and your historical reports stay in the same property. The risk is in the switch-over: if the new code is installed alongside the old, or custom variables are not re-implemented as custom dimensions, you will see doubled sessions or missing segments. Test in a separate view before replacing the code site-wide.
What is the User ID feature and should I use it?
User ID lets you send your own non-personal identifier for logged-in users so that their sessions across devices are stitched together in a dedicated reporting view. It is valuable for any site with accounts or subscriptions. You must not send email addresses, names or anything personally identifiable; use an internal numeric ID and update your privacy policy.
Request a service proposal
This form is tied specifically to Systems Integration. Share enough context for us to frame the right first phase.
Make the systems you already use exchange the right information at the right time.
Explore service →Growth & DigitalDigital Strategy & AdvisoryTurn scattered digital activity into one commercial roadmap.
Explore service →Web & CommerceWebsite Design & DevelopmentPremium websites built around clarity, conversion and maintainability.
Explore service →Next stepRequest a proposalTell us the goal; we come back with scope, timeline and price.
Start the conversation →Related thinking from the same part of the business.
Messenger chatbots arrive: the first useful cases for business
Facebook opened Messenger to bots at F8. What a bot can really do today, which business cases pay off first, and how to build one without embarrassing yourself.
Automation & TechnologyEmail deliverability in 2016: Gmail tabs, engagement and list hygiene
Reaching the inbox now depends on how recipients behave, not just on authentication. How Gmail decides, what to fix in your list and how to measure placement.
Automation & TechnologyCustomer data platforms: do you need one, or better integration?
CDPs are the hottest category in marketing technology. Here is what one does, what it costs, and a test for whether you need one or just cleaner plumbing.
Have a clear brief — or just a business problem?
We can turn either into a structured scope, timeline and proposal.
- A written scope with deliverables, dependencies and exclusions
- One coordinated team across strategy, creative, web and technology
- Work priced around the engagement, not a generic package
- Clients supported worldwide, in your time zone



