GA4 Custom Dimensions: How to Create Them in 6 Steps
GA4 custom dimensions turn the event parameters and user properties you send into fields you can report on. Send the parameter first, register it in Admin under Custom definitions, then wait 24 to 48 hours before it appears in reports.
A custom dimension is a registered event parameter or user property. Until you register it, GA4 receives the value but standard reports and explorations cannot show it.
Standard properties allow 50 event-scoped, 25 user-scoped and 10 item-scoped custom dimensions, so each slot needs a reason.
The scope and the parameter name cannot be changed after you save, and archiving a dimension cannot be undone.
Avoid high-cardinality values such as user IDs, session IDs and timestamps. They can push useful rows into the (other) bucket.
Most GA4 properties I open send far more detail than anyone can see.
The form name, the service type, the logged-in status. All arriving with every event, and none of it available in a single report.
The missing piece is almost always the same: nobody registered the parameters as GA4 custom dimensions.
This guide shows how to create them in six steps, and how to avoid wasting the limited slots you get.
What Is a Custom Dimension in GA4?
A custom dimension is an event parameter, user property or item parameter that you have registered in GA4 so you can report on it.
GA4 collects standard dimensions like page path, source and device on its own. Custom dimensions cover the details specific to your business.
There are three scopes:
Scope
What it describes
Example
Event
One event
form_name on generate_lead
User
The person, across their events
customer_type = trade or retail
Item
One product inside an e-commerce event
item size or colour
Registering is the step people miss.
Your tag can send form_name for months, and you still cannot break key events down by it until the dimension exists.
Before You Start
You need three things:
The Editor role or above on the property. Google requires it to create event-scoped dimensions.
A parameter you can send, through Tag Manager or the site code.
Room under your limits. Check Quota information on the Custom definitions page.
For user-scoped dimensions, send the value as a user property instead of an event parameter.
Two details matter here:
Spell the parameter name exactly as you will register it. The event parameter field cannot be changed after saving the dimension.
Watch values that look like numbers. Google notes that text resembling a number is converted, so a code like 94E40 becomes 9.4e+41. Prefix such codes with a letter.
Step 4: Check the Parameter Arrives in DebugView
Before you register anything, confirm the value reaches GA4.
Turn on Tag Manager's preview mode or Tag Assistant.
Trigger the event on the site, such as submitting the form.
In GA4, open Admin, then DebugView under Data display.
Click the event and look for your parameter and its value.
Check three things: the parameter is present, the value is right, and it is not empty on some pages or forms.
If it is missing, the problem is in the tag or the variable.
In Admin, under Data display, click Custom definitions.
Select the Custom dimensions tab.
Click Create custom dimensions.
Fill in the fields below, then click Save.
Field
What to enter
Can it change later?
Dimension name
Readable name for reports, such as "Form name"
Yes
Scope
Event, User or Item
No
Description
What it holds and who added it
Yes
Event parameter (or user property)
The exact name your tag sends, such as form_name
No
Hyphens are not allowed in the dimension name. Underscores and spaces are.
Pro tip: Use the description field as documentation. "Form that produced the lead. Sent by GTM tag GA4 - generate_lead. Added Oct 2026." saves the next analyst an hour of guessing.
Step 6: Wait, Then Use It in Reports
According to Google, the dimension becomes available 24 to 48 hours after the data was sent and the dimension was created.
Then put it to work:
Standard reports: add it as a secondary dimension, or add it to a detail report through report customisation.
Explorations: import it in the Variables column and use it as a breakdown or filter.
Audiences: build an audience from users with a given value, such as customer_type equals trade.
In my experience, values only appear from around the time the dimension is registered.
Earlier events that carried the parameter do not fill in.
A form_name breakdown of a broken key event is still broken.
How to Manage Custom Dimensions Over Time
Custom dimensions pile up. Every agency adds a few, and nobody removes any.
Keep them tidy with three habits:
Keep a register. One row per dimension: name, scope, parameter, purpose, owner and date added.
Archive what nobody uses.Google's archiving guide says archiving frees a slot, but it cannot be undone. Audiences that use the dimension stop gaining users, and explorations and segments that use it will not load. Export the list of affected items first.
Watch cardinality. If a report shows a large (other) row, a high-cardinality dimension may be the cause. Move that kind of detail to BigQuery, which holds every raw parameter whether or not it was registered. My piece on GA4 data retention covers why BigQuery is worth linking early.
Unregistered parameters, missing dimensions and (other) rows all feature in my GA4 audit checklist.
Register Your First Dimension Today
Pick one parameter your tags already send that someone keeps asking about. form_name is usually the easiest win.
Check it in DebugView, register it with a proper description, and look at the report in two days.
If you would rather plan the whole set at once, choosing dimensions, scopes and data layer fields together is part of how I build a GA4 implementation.
What is the difference between an event parameter and a custom dimension in GA4?+–
An event parameter is the extra detail you send with an event, such as form_name with a generate_lead event. A custom dimension is that parameter registered in GA4 Admin so it becomes available in reports, explorations and audiences. You can send many parameters, but only registered ones show up as dimensions you can filter and break down by.
How long do GA4 custom dimensions take to show data?+–
Google Analytics Help says you can use a new custom dimension in reports 24 to 48 hours after the custom data was sent and the dimension was created. Until then you may see (not set) or nothing at all. DebugView shows the parameter arriving straight away, so use it to confirm the setup while you wait.
Do GA4 custom dimensions work on historical data?+–
In my experience, no. Reports show values for a custom dimension from around the time it is registered, not for earlier events that carried the same parameter. That is why I register dimensions as soon as the parameter goes live. If you link BigQuery, the raw parameter values are in the export whether or not they were registered.
What happens when I hit the custom dimension limit in GA4?+–
You cannot create more until you free a slot. Archiving an unused dimension frees one, but archiving cannot be undone and it invalidates audiences, explorations and segments that use it. Google also notes that after deleting dimensions you need to wait 48 hours before adding new ones, so plan replacements in advance.
Independent SEO consultant · 6+ years in SEO · 60+ client websites worked on
I'm an independent SEO consultant with 6+ years in SEO. I run audits, migrations and content programmes for businesses in Europe, the UK and the USA, and I build the automation behind my own research.