GA4 gives you 50 event-scoped custom dimensions, 25 user-scoped custom dimensions, 50 event-scoped custom metrics, and 5 user-scoped custom metrics. Most properties use a fraction of these and still manage to fill the wrong ones with junk that nobody reports on.

The setup itself is trivial. The real question is what to register, why, and how to structure it so that the data is actually useful when you open Explorations six months later.

This post covers scope in plain terms, the strategic decisions around quota, and the practical reporting uses that justify each type of dimension and metric.


What Custom Dimensions and Metrics Actually Are

GA4 tracks everything as events. Events have parameters. Parameters are the raw data attached to an event — things like product_name, order_value, user_tier, article_author, video_duration.

These parameters are collected by your tags and stored in GA4’s raw event data. But they are not automatically visible in reports. To use a parameter in reports, Explorations, or audiences, you have to register it as a custom dimension or metric in the GA4 Admin.

Registration does two things: it tells GA4 to surface that parameter in the reporting interface, and it assigns a scope that determines how the parameter is associated with users and events.

Without registration, the raw data exists in BigQuery (if you have the export set up) but is invisible in the GA4 UI.


Scope: The Most Important Decision You Will Make

Every custom dimension has a scope: event, user, or item. Getting this wrong means the data is attached to the wrong unit of analysis, and the numbers you see in reports will not mean what you think they mean.

Event Scope

An event-scoped dimension captures a value that is specific to a single event. It answers the question: what was true at the moment this event happened?

Examples:

Event-scoped dimensions are used to break down event counts and conversion rates. They appear as dimensions in Explorations and standard reports and let you segment: “how many purchases used a coupon vs not” or “which page type had the highest scroll depth.”

Quota: 50 event-scoped custom dimensions per property.

User Scope

A user-scoped dimension captures a persistent attribute of a user — something that is true about them across sessions, not just at a single moment. GA4 stores the most recently set value and associates it with the user going forward.

Examples:

User-scoped dimensions are used to segment audiences and analyze behavior differences across user groups. They are the right tool when you want to answer: “do pro users convert at a higher rate than free users across all sessions?”

Quota: 25 user-scoped custom dimensions per property.

Item Scope

Item-scoped dimensions attach to the product items array in ecommerce events. They let you add product attributes beyond the standard GA4 ecommerce fields.

Examples:

Item-scoped dimensions appear in ecommerce reports and let you break down revenue and purchases by product attributes that GA4 does not track by default.

Quota: 10 item-scoped custom dimensions per property.


How to Register a Custom Dimension

In GA4: Admin > Data display > Custom definitions > Create custom dimension.

Fields:

Custom metrics follow the same flow but require a unit type (Standard, Currency, Distance, Time).


The Quota Problem: What You Should Never Register

50 event-scoped dimensions sounds like plenty until a team of three people starts registering dimensions for every analytics request without a governance process.

Do not register:

Do register:

The frame is: if you cannot name a specific report or audience that needs this dimension, do not register it.


Strategy for Event-Scoped Dimensions

The most useful event-scoped dimensions segment your key events by a property that changes the interpretation of the event.

Page classification:

Register a page_type dimension (values: homepage, product, category, blog, checkout, confirmation). Push it on every page_view event. This turns every GA4 standard report into a segmentable view — you can now see bounce rate, engagement, and conversion paths broken down by page type, not just individual URLs.

Content attributes for media sites:

If you publish content: article_author, content_category, content_tag, word_count. These let you answer “which author drives the most engaged sessions” or “which content category leads to the most conversions.”

Conversion qualifiers:

On purchase events: coupon_code, payment_method, is_first_purchase (true/false). These let you analyze order quality and discount dependency without leaving GA4.

Form identification:

If you have multiple forms: form_name or form_id on your form_submit event. Lets you break down form conversion rates by form in a single report instead of filtering by page URL for each form separately.


Strategy for User-Scoped Dimensions

User-scoped dimensions are most valuable for segmenting behavior by account type, acquisition context, or CRM attributes.

Account/subscription type:

If you have free and paid tiers, a plan_type user property set at login is one of the highest-value dimensions in a SaaS GA4 property. Every report becomes segmentable by plan — engagement, retention, feature adoption.

Acquisition context:

signup_source set at registration time (not the session source — the source that was attributed to the account creation) lets you analyze long-term retention and LTV by acquisition channel. This is the dimension that answers “are users from organic search more valuable than users from paid campaigns?”

CRM segments:

If your backend syncs customer segments to GA4 via the Measurement Protocol or User-ID feature, register those segments as user-scoped dimensions. customer_lifetime_value_tier, churn_risk, account_health_score — these make GA4 a window into behavioral differences between CRM-defined customer groups.


Using Custom Dimensions in Explorations

Custom dimensions registered in the Admin are available immediately in Explorations as dimensions in the dimension picker.

The reporting patterns that make custom dimensions most useful:

Free-form with custom dimension as row:

Create a Free-form Exploration. Add your page_type dimension as rows. Add Sessions, Engaged Sessions, Conversions as metrics. You now have a page-type-level performance report.

Funnel Exploration with custom dimension filter:

Build a checkout funnel. Add a segment filter for plan_type = free and another for plan_type = pro. Compare the funnel completion rates side by side. This is a report that is impossible to build in standard reports.

User Explorer with user-scoped dimensions:

Open User Explorer. Add your customer_segment user-scoped dimension as a column. Browse individual user journeys filtered to a specific segment. Useful for qualitative analysis of high-value user behavior.

Segment builder using user properties:

In Explorations, build a user segment where loyalty_tier exactly matches “gold.” Apply this segment to any Exploration to see how your best customers behave differently from your average user.


Custom Dimensions in Standard Reports

Custom dimensions also appear in standard reports but with more limited configuration options.

In the standard reports, go to any report > Customize report (pencil icon, top right) > Dimensions. Your registered custom dimensions appear in the dimension picker and can be added as secondary dimensions or used to configure the report’s primary breakdown.

This is particularly useful in the Traffic Acquisition report (adding signup_source as a secondary dimension to see long-term retention by acquisition source) and in the Ecommerce reports (adding coupon_code to the purchase breakdown).


Auditing What You Have

Before registering anything new, audit what already exists in your property.

Admin > Data display > Custom definitions shows all registered custom dimensions and metrics, their scope, the parameter they map to, and when they were last updated.

Common issues to look for:

For dimensions with zero data: check the parameter name in DebugView or in a real-time report to confirm the exact spelling. GA4 custom dimensions are case-sensitive — PageType and page_type are different parameters.


Key Takeaway

Custom dimensions are not a setup task. They are an analytical infrastructure decision. What you register determines what questions you can answer in GA4 for the next several years. Build around your actual reporting needs, not around what might be useful someday.

The three most valuable investments for most properties: a page_type event-scoped dimension for page-level segmentation, a plan_type or account_type user-scoped dimension for user group analysis, and item-scoped dimensions for any product attributes that matter to your merchandising or profitability analysis.

Everything else should be justified by a specific, recurring reporting need before it takes up quota.

Up next in the GA4 Advanced Series: GA4 Predictive Audiences — How to Use Purchase Probability and Churn Signals in Google Ads

Related Posts

GA4 Channel Groupings: Why the Default Is Wrong and How to Fix It

12 min read

GA4Google AnalyticsGA4 Advanced Series

GA4 Cohort Analysis: How to Measure Retention and Campaign Quality Over Time

11 min read

GA4Google AnalyticsGA4 Advanced Series

GA4 Reporting Identity: Why Your User Counts Are Wrong and How to Fix It

11 min read

GA4Google AnalyticsGA4 Advanced Series
Adnan Agic

Adnan Agic

Google Ads Strategist & Technical Marketing Expert with 5+ years experience managing $10M+ in ad spend across 100+ accounts.

Need Help With Your Google Ads?

I help e-commerce brands scale profitably with data-driven PPC strategies.

Get In Touch
Back to Blog