Analytics and Tracking

Custom Dimension

Also called Custom definition

Extra descriptive fields you send to analytics so reports can split data by something the standard setup never records.

Quick facts: Custom Dimension

Category
Analytics and Tracking
Also called
Custom definition
Level
Intermediate
Affects
Report depth, audience building, dashboard usefulness
Where to see it
GA4 (Admin, Custom definitions), Google Tag Manager, Looker Studio
In this article4
  1. How a custom dimension works
  2. Why custom dimensions matter
  3. Common mistakes with custom dimensions
  4. How to act on it

How a custom dimension works

Analytics arrives already knowing a fixed set of facts about a visit: page, source, device, country. A custom dimension is how you add one of your own. The site sends an extra parameter alongside an event — the form name, an article’s author, a membership tier, the branch a booking belongs to — and you register that parameter in the admin settings so reports are allowed to group by it.

Registration also fixes the scope, which is the step people skip. An event-scoped dimension describes a single action. A user-scoped one stays attached to the person across their visits. An item-scoped one describes a product inside an ecommerce event. The same value registered at the wrong scope produces a report that looks perfectly plausible and quietly answers a different question.

Why custom dimensions matter

They turn a generic report into one about your business. Without them, every form submission is the same event and every article is the same page. With them you can see which form, which author, which service line, which city branch — the splits that actually decide what to do next week.

They carry through to other tools as well. A dimension registered in GA4 becomes available in explorations, in audience definitions and in Looker Studio, so one extra value collected once ends up answering questions in several places instead of demanding a new piece of tracking each time.

Common mistakes with custom dimensions

The most serious is sending personal information. Names, email addresses, phone numbers and anything else identifying a person breach Google’s terms, put the property at risk, and cannot be scrubbed out cleanly once collected. If records need joining later, send an internal identifier that means nothing outside your own systems and keep the personal details where they belong.

The next is expecting history. Collection starts when the dimension is registered and shows nothing for the period before, which catches out anyone who creates one in order to explain last quarter. Two more are worth naming: registering a value with almost unlimited variety, which pushes rows into an unhelpful catch-all bucket, and registering something analytics already collects, which spends one of a limited set of slots for no gain.

How to act on it

Start from the question rather than from the data. Write out the report you want to read, work backwards to the single value that would make it possible, and only then decide what the site should send. Most properties need far fewer custom dimensions than they end up with, and every one is a permanent maintenance obligation for whoever inherits the account.

Send the value through the data layer so it is set deliberately rather than scraped off the page, name parameters the same way across every template, and keep a short register of what each one means, who asked for it and where it comes from. Register early, before the traffic you care about arrives, then check the first day of real data instead of trusting the configuration — this is one of the pieces most often left half-finished in a GA4 setup.

Do and do not

Do

  • Write the report you want before creating the field
  • Choose the scope deliberately: event, user or item
  • Register it before the traffic you care about arrives

Do not

  • Send names, email addresses or phone numbers
  • Register a value with almost unlimited variety
  • Duplicate a field analytics already collects

Questions people ask about this

What is the difference between a dimension and a metric?

A dimension describes something; a metric counts it. Country, device, form name and article author are dimensions, while sessions, conversions and revenue are metrics. In a report the dimensions become the rows and the metrics become the columns beside them. A custom dimension gives you a new way to split the rows, not a new thing to count.

Can I see custom dimension data from before I set it up?

No. Collection begins when the parameter starts being sent and the dimension is registered, and analytics cannot apply a new field to events that never carried it. If you need a comparison over time, register it and wait. That is the strongest argument for creating the dimensions you know you will want early rather than at reporting time.

Is it safe to send a customer ID as a custom dimension?

An internal identifier that means nothing outside your own systems is generally acceptable. A name, an email address or a phone number is not, and sending one breaches Google's terms. Where analytics data has to be joined to a CRM record, send the opaque identifier and keep the personal details in the system that is built to hold them.

Related terms

Found this useful?

Share it, or ask an AI to summarise it

Back to the glossary

Knowing the term is the easy part

Applying it to your own site and budget is the work. Book a call and I will tell you what actually applies to you.