How to create a custom dimension in GA4
GA4 only lets you report on a parameter once you register it as a custom dimension. Send a useful value with your events, like membership tier, article author, or form type, and a custom dimension is what turns it into something you can break reports down by.
The two steps
- Send the parameter: include it on your event, usually via GTM reading from a data layer, for example
plan_type: "pro". - Register it: in GA4 Admin, Custom definitions, create a custom dimension mapped to that parameter name.
The limits to know
- There is a cap on event-scoped custom dimensions per property, so register the ones that earn their place.
- Registering is not retroactive: the dimension only shows data from when you created it onward.
- High-cardinality values (thousands of unique ones) can get bucketed into (other).
Why yours might show (not set)
If the custom dimension reports (not set), the event fired without the parameter, so GA4 had nothing to record. Fix the data layer so the value is present before the event fires, then the dimension fills correctly.
Want us to check your tracking in 10 seconds?
Pop in your domain and we will show you what is firing, what is not, and where data is leaking. Free, no signup.
Check my tracking freeGet a plain-English audit
We check your live GA4, Google Tag Manager and consent setup by hand and tell you exactly what is wrong. The audit comes off any build.
See how it works & pricingDatahound are analytics and ad-tracking specialists. We fix broken GA4, Google Tag Manager and server-side tracking so every sale, form and call gets counted. Back to datahound.agency · All tracking guides · Why GA4 shows (not set)