Quick answer
A custom dimension is a user-defined attribute, such as plan tier, author or product category, attached to analytics data at event, session, user, account or item scope so reports can be grouped and filtered by it.
What are custom dimensions?
A custom dimension is an attribute you define yourself and attach to your analytics data so you can group, filter and compare by it. Built-in dimensions cover things every site has: page, country, device, traffic source. Custom dimensions cover what is specific to your business: plan tier, author of an article, logged-in status, product category, experiment variant, store region.
Dimensions describe who, what or where (text or categories). Metrics count or measure (sessions, revenue, conversion rate). A report usually shows metrics broken down by one or more dimensions: revenue by plan tier, sign-ups by author.
Scopes: what a dimension describes
| Scope | Describes | Example | Value changes |
|---|---|---|---|
| Event (hit) | One action | button_location = "header" on a click | Every event |
| Session | One visit | Landing campaign group | Per visit |
| User | One person | plan = "pro", signup_year = 2025 | When the person changes |
| Account / group | A company or workspace | industry = "retail", seats = 40 | When the account changes |
| Item / product | A product in an order | brand, size | Per item |
Choosing the wrong scope is the most common mistake. Plan tier stored on each event will show the tier at the time of the event; stored on the user, it shows the current tier for all their past events. Both are valid; decide which question you are answering.
Worked example: which plan generates the most support chats?
A SaaS team wants to compare support chat volume by customer plan (sample data). They add a user-scoped dimension plan and an event property topic on the chat-started event:
| Plan (user dimension) | Active users | Chats started | Chats per 100 users | Top topic (event dimension) |
|---|---|---|---|---|
| Free | 8,400 | 1,260 | 15 | Installation |
| Pro | 1,900 | 532 | 28 | Billing |
| Business | 310 | 155 | 50 | Integrations |
Without the custom dimension, the team saw only total chats. With it, Business customers turn out to contact support at more than three times the Free rate, mostly about integrations, which points to documentation and onboarding work for that plan.
Designing good custom dimensions
- Start from questions. "How does activation differ by industry?" implies an account-scoped
industrydimension. - Pick the scope deliberately (see the table above).
- Use a fixed list of values. "Pro", "pro" and "PRO" become three rows. Define allowed values in your tracking plan.
- Keep the number of distinct values manageable. A dimension with thousands of unique values (IDs, full URLs, free text) is unreadable as a breakdown; use it for filtering or export instead.
- Never put personal data in dimensions: no emails, names or phone numbers.
- Document each one with an owner and definition; see data taxonomy.
Custom dimensions vs custom metrics
A custom dimension groups data ("plan = pro"); a custom metric is a number you define ("trial days remaining", "revenue per seat") that can be summed or averaged. You often need both: metric by dimension. See create custom metrics.
How different tools handle them
In Google Analytics 4, custom dimensions are registered in the admin and limited in number per property (for standard properties, 50 event-scoped and 25 user-scoped). Event-based tools such as TapCub treat every event property and user property as a potential dimension without a separate registration step, so the limits are about governance rather than quota.
In TapCub
Any property you send with an event, or set on a person or account, can be used to break down and filter reports. The web script accepts up to 20 properties per event (keys up to 50 characters, text values up to 200). Under Data › Property dictionary you can set each key's type, mark sensitive keys, add validation rules, and apply governance: a value whitelist that stores everything else as __other, or Export only to keep a key out of breakdowns. If tracking is already live, virtual properties derive a new dimension from rules, for example a section value from the page path prefix, without shipping code. See events and properties and segments.
Sources
- Google Analytics Help. About custom dimensions and metrics.
- Google Analytics Help. Configuration limits.
- TapCub documentation. Property definitions.
Was this explanation clear?
We use your answers to fix and expand this page.
Couldn’t send. Please try again in a minute.
Thanks for the feedback. We’ll use it to improve this page.You’ve already sent feedback on this page. Thanks.

Product Experience Specialist
Writes about product experience, practical workflows, and growth, turning complex processes into clear steps for everyday decisions.