TL;DR, Quick Answer
8 min readA GA4 custom dimension is a registered field that lets reports and explorations show the values of one of your own event parameters, user properties or item parameters. A standard property allows 50 event-scoped, 25 user-scoped and 10 item-scoped custom dimensions, and Google says data shows up 24 to 48 hours after the parameter is sent and the dimension is created. Do not register unique IDs, session IDs or timestamps, because high-cardinality values get condensed into the (other) row.
What are GA4 custom dimensions?
Google Analytics 4 only shows your own event parameters and user properties in reports after you register them as GA4 custom dimensions, a step in Admin under Custom definitions that maps one parameter name to one named report field. Until you register a parameter, GA4 still receives it, but standard reports and explorations have no dimension to put it in. Register a parameter as soon as you start sending it.
Google's help centre puts the purpose plainly: a custom dimension "goes beyond the standard data automatically collected and surfaced by Google Analytics." The split between dimensions and metrics follows the data type. Google says you set up "custom dimensions (for descriptive data) and custom metrics (for numerical data)." A plan name, a logged-in state or a payment type is a dimension. A number you want summed, such as a quantity, belongs in a custom metric.
The parameter itself is created in your code or in Google Tag Manager. The custom dimension is only the registration on the GA4 side. That two-part setup is the main source of confusion, because sending a parameter feels like the job is done when the report still has nothing to show. If you are still deciding which parameters deserve a slot, the guide on how to pick dimensions from the decisions they inform covers that planning step.
What scopes can a GA4 custom dimension have?
A GA4 custom dimension has one of three scopes, event, user or item, and the scope decides which piece of collected data it reads and which rows it can describe. You pick the scope when you create the dimension, and Google states "You can't change this field after you save the new dimension."
| Scope | Reads from | Example from Google's help pages | Use it for |
|---|---|---|---|
| Event | A custom event parameter | payment_type on the add_payment_info event | Details about one action, such as which link or which video |
| User | A custom user property | profession set as a user property | Facts about the user that hold across events |
| Item | A parameter inside the items array | Item colour or item size on purchase or add_to_cart | Ecommerce product attributes |
Event scope is the one most sites need. Google describes it as the way to report on "custom event parameters, which measure details about user actions captured through an event." One event-scoped dimension covers that parameter on every event that sends it, which is a change from GA4's early custom-parameter reporting where each event used its own slot. Once you report on event tracking data at this level, a single link_type dimension serves your click, download and signup events at once.
How many custom dimensions does GA4 allow?
A standard GA4 property allows 50 event-scoped, 25 user-scoped and 10 item-scoped custom dimensions, and a Google Analytics 360 property raises those to 125, 100 and 25. The same table on Google's help page caps custom metrics and calculated metrics.
| Custom definition | Standard property | 360 property |
|---|---|---|
| Event-scoped custom dimensions | 50 | 125 |
| User-scoped custom dimensions | 25 | 100 |
| Item-scoped custom dimensions | 10 | 25 |
| Custom metrics | 50 | 125 |
| Calculated metrics | 5 | 50 |
Admin shows how close you are to each cap. Google says to open Custom definitions and click "Quota information on the top right." Freeing a slot is slower than taking one. Google's note reads "If you hit the limit for custom dimensions, you'll need to wait 48 hours after deleting dimensions to add new ones." The configuration limits page marks user-scoped and event-scoped custom dimensions as items you can archive when you are close to the limit.
Google also warns against spending slots on data GA4 already has: registering a parameter "that is already a predefined dimension, such as the page and screen dimensions, or transaction ID, is not a best practice," because "it will use one of your custom dimension quota." Check the predefined list before you register anything.

How do you create a custom dimension in GA4?
You create a custom dimension in Admin under Data display, Custom definitions, and you need the Editor role or above on the property. Google's procedure for an event-scoped dimension runs in five steps.
- Confirm the parameter is arriving. Google suggests selecting the event in the "Event count by Event name card in the Realtime report."
- In Admin, under Data display, click Custom definitions and open the Custom dimensions tab.
- Click Create custom dimensions.
- Fill in the dimension name, the scope, an optional description and the exact event parameter name. Google says "You can't use hyphens in the name, but you can use underscores and spaces instead."
- Click Save.
The parameter name must match your code exactly. Google marks both the scope and the event parameter field as fixed once saved, so a typo in the parameter field means deleting the dimension and creating it again, with the 48-hour wait if you are at the quota.
What collection limits apply before a parameter reaches GA4?
GA4's event collection limits drop data before it ever reaches a custom dimension: each event carries at most 25 event parameters, parameter names stop at 40 characters and parameter values stop at 100 characters. Google states that Analytics "doesn't log events, event parameters, and user properties that exceed the following limits."
User properties have tighter rules. A property can hold 25 user properties, each name can run to 24 characters and each value to 36 characters. Ecommerce events accept "up to 27 item-level custom parameters" on top of the prescribed item parameters. Google adds that these character limits are the same for single-width and double-width languages, and that "The encoded URL character length is used when counting character limits."
One more trap affects values that look like numbers. Google warns that "any value in a custom dimension that resembles a number will be treated as a number, even if it was originally formatted as text," and gives the example of "94E40" being read as scientific notation. If a plan code or SKU can look numeric, add a letter prefix before you send it.

Flowsery
Start Your 14-Day Free Trial
Real-time dashboard
Goal tracking
Cookie-free tracking
Why should you avoid unique IDs in GA4 custom dimensions?
GA4 custom dimensions that hold a unique value per user, per session or per timestamp create high cardinality, and Google says those values "may negatively impact your reports and explorations, and cause data to be condensed under the (other) row." Google lists three examples to avoid: a unique ID per user, a session ID, and a timestamp.
For user identifiers Google points to a separate feature. Its help page says to avoid "Using a custom dimension for a unique ID per user; instead, use the User-ID feature." The developer guide for user IDs repeats the warning: "Don't set custom dimensions based on user IDs." There is also a privacy reason. Values in a custom dimension appear in reports and audience builders, which is why the guide to identifiers that count as personal data applies here too.
Low-cardinality values are the ones that pay off. A dimension with five plan names or three logged-in states splits every report cleanly, while one with 50,000 order IDs splits nothing and pushes rows into (other).
- A unique ID per user, a session ID or a timestamp
- 50,000 order IDs split nothing
- Rows get condensed under (other)
- Five plan names or three logged-in states
- Every report splits cleanly
- For user identifiers, use the User-ID feature instead
When does data from a new custom dimension appear?
Data from a new GA4 custom dimension appears in reports 24 to 48 hours after the parameter is sent and the dimension is created, according to Google's setup pages. Google describes the order as: you add the parameter to your code, users send it, "You create a custom dimension or metric," and "After 24-48 hours, you can start to report on and advertise with the custom dimension or metric."
Google's help pages do not promise that GA4 fills in values for days before you registered the dimension, so plan as if it will not. Register the dimension on the day the parameter ships. Once the dimension exists, you can add it to a free-form exploration from the Custom tab of the Dimensions picker, or use it as a condition when you build an audience. If the parameter belongs to an event you have marked as one of your key events, the new dimension lets you split those key events by its values.
How does Flowsery handle custom events without a registration step?
Flowsery records custom events with a single function call, such as window.flowsery("signup"), and shows them in its dashboard with no separate registration screen, according to its goal and event tracking page. Flowsery describes tracking "button clicks, form submissions, file downloads, video plays" this way, and lets you "Attach revenue values to events to measure the dollar impact of each action." Events are tracked without cookies or personal data, so there is no user-ID slot to fill and no high-cardinality identifier to keep out of reports. If your GA4 property is short on custom dimension quota mainly because of conversion tracking, Flowsery's goals and custom events cover that part without a quota table.
Frequently asked questions
What is the difference between a custom dimension and an event parameter in GA4?
An event parameter is the data your code sends with an event. A custom dimension is the registration in GA4 Admin that turns one parameter name into a report field. You need both: the parameter carries the value and the dimension makes it visible in reports and explorations.
How many custom dimensions can a free GA4 property have?
A standard property allows 50 event-scoped, 25 user-scoped and 10 item-scoped custom dimensions. It also allows 50 custom metrics and 5 calculated metrics. Google Analytics 360 raises these to 125, 100, 25, 125 and 50.
Can I change the scope of a GA4 custom dimension after saving it?
No. Google states that the scope and the event parameter field cannot be changed after you save the dimension. To fix either one, you delete the dimension and create a new one, and Google says you wait 48 hours after deleting before you can add new ones when you are at the limit.
Why does my GA4 custom dimension show (not set)?
Google describes (not set) as the placeholder Analytics uses "when it hasn't received any information for the dimension you have selected." For a custom dimension, that means some events in the date range did not carry the parameter. Check that the parameter name in your code matches the registered name exactly, and remember that data appears 24 to 48 hours after the dimension is created.
Should I store a user ID in a GA4 custom dimension?
No. Google lists a unique ID per user as a high-cardinality dimension to avoid and points to the User-ID feature instead. Its developer guide says directly "Don't set custom dimensions based on user IDs."
How long can a GA4 event parameter value be?
An event parameter value can be 100 characters. Google lists three exceptions: page_title can be 300 characters, page_referrer 420 and page_location 1,000. Parameter names stop at 40 characters, and each event carries at most 25 parameters.
How long until a GA4 custom dimension shows data?
Google says data appears 24 to 48 hours after the parameter is sent and the dimension is created. Google's help pages do not promise that GA4 fills in values from before you registered the dimension. Register it on the day the parameter ships.
Should I register page or transaction ID as a GA4 custom dimension?
Google says registering a parameter that is already a predefined dimension, such as the page and screen dimensions or transaction ID, is not a best practice. It uses one of your custom dimension quota for data GA4 already has. Check the predefined list before you register anything.
What is the difference between a GA4 custom dimension and a custom metric?
A custom dimension holds descriptive data, such as a plan name, a logged-in state or a payment type. A custom metric holds numerical data you want summed, such as a quantity. A standard property allows 50 custom metrics alongside its dimension quotas.
Flowsery
Start Your 14-Day Free Trial
Real-time dashboard
Goal tracking
Cookie-free tracking
Which role do I need to create a custom dimension in GA4?
You need the Editor role or above on the property. Then open Admin, go to Data display, Custom definitions, and the Custom dimensions tab, and click Create custom dimensions. Fill in the name, scope, optional description and exact parameter name, then click Save.
Was This Article Helpful?
Let us know what you think!
See us more often in Google
One click marks Flowsery as a preferred source, so our articles sit higher in your Top Stories, AI Mode, and AI Overviews.
Before you go...
Flowsery
Revenue-first analytics for your website
Track every visitor, source, and conversion in real time. Simple, powerful, and cookie-free.
Real-time dashboard
Goal tracking
Cookie-free tracking
Related Glossary Terms


Setting GA4 User Properties and Reporting on Them
Set GA4 user properties with gtag or Tag Manager, register them as user-scoped custom dimensions and stay inside the 25-property limit.


How to Build GA4 Calculated Metrics Inside a Five-Slot Quota
Google caps GA4 calculated metrics at 5 per standard property. Learn the formula syntax, the units, where they appear and what a formula can't use.


How to Add Google Analytics Annotations in GA4 and Keep a Change Log
In GA4, Google Analytics annotations pin a dated note to line graphs. Who can add them, the 60 and 150 character limits, the 1,000 cap, and change log use.


How GA4 Event Parameters Carry the Detail Behind Each Event
Google caps GA4 event parameters at 25 per event. See the name and value limits, reserved names, and why custom ones stay out of reports.


Why Your GA4 Bounce Rate Is Just Engagement Rate Flipped
Your GA4 bounce rate is the share of sessions that were not engaged. How Google defines it, how it differs from Universal Analytics, and where to add it.


What the GA4 Landing Page Report Counts and Where It Goes Blank
Google's GA4 landing page report lists the first page of every session. Where to find it, its default metrics, why (not set) rows appear and how to add source.
Related Articles


How GA4 Site Search Tracking Records What Visitors Type
Set up GA4 site search with enhanced measurement, add your own query parameters, find the Search term dimension and track searches without a URL.


How to Link Search Console to GA4 and Publish Its Reports
Learn how to link Search Console to GA4 in Admin, which roles you need, how to publish the two reports in Library and what the data can't join.


Setting Up GA4 Content Grouping With One Parameter
Set up GA4 content grouping with the content_group parameter in gtag or Tag Manager, read the Content group dimension and keep (not set) rows out.

