GA4 Custom Dimensions
Track custom data specific to your business.
What this covers: Track custom data specific to your business, including what custom dimensions and events are, custom vs. standard dimensions: when you need custom.
Who it’s for: Marketers and site owners who want to make data-driven decisions about their website.
Key outcome: You’ll have custom dimensions are registered in ga4 admin → custom definitions with correct scope (event or user), and your site or gtm is sending the corresponding event parameters with actual values.
Time to read: 5 minutes
Part of: Analytics + Measurement series
GA4 tracks pageviews but not business context. Custom dimensions let you track which pricing tier, user type, or account status—the data that actually explains behavior. Here’s how to set them up.
What Custom Dimensions and Events Are
Events: Actions users take. GA4 tracks some automatically (page_view, scroll, click). You can include your own (plan_selected, feature_used, upgrade_clicked).
Custom dimensions: Attributes attached to users or events. “User is on the Pro plan” or “This event was from a logged-in user.”
Together, they let you answer questions like: “How many Pro users used the export feature last month?”
Custom vs. Standard Dimensions: When You Need Custom
GA4 already tracks dozens of dimensions out of the box—page title, source/medium, device category, country, browser. Before creating a custom dimension, check whether a built-in one already answers your question.
Use standard dimensions when: You want to know which pages get traffic (Page path), where visitors come from (Session source/medium), or what devices they use (Device category). These are already collected.
Use custom dimensions when: Your question involves business-specific context that GA4 cannot infer from pageviews. Examples:
- SaaS: “Do Pro users engage differently than Free users?” — user-scoped
user_plandimension - E-commerce: “Which product category gets the most add-to-carts?” — event-scoped
product_categoryon theadd_to_cartevent - Content site: “Do logged-in readers scroll further than anonymous visitors?” — user-scoped
login_statusdimension - B2B: “Which company size segment converts from trial to paid?” — user-scoped
company_sizedimension
A practical rule: if you find yourself exporting GA4 data and joining it with another spreadsheet to answer a question, that missing field should probably be a custom dimension. Send it at the source so the analysis happens inside GA4, not outside it.
Setting Up Custom Events
Option 1: Google Tag Manager (Recommended)
If you use GTM:
- Create a new tag: GA4 Event
- Set the event name (e.g., “plan_selected”)
- Add event parameters (e.g., plan_name: “pro”)
- Set the trigger (e.g., button click with specific text)
- Test in preview mode, then publish
Option 2: gtag.js Code
If you’re adding tracking directly in code:
// When user selects a plan
gtag('event', 'plan_selected', {
'plan_name': 'pro',
'plan_price': 99,
'billing_cycle': 'monthly'
});
Setting Up Custom Dimensions
In GA4 Admin:
- Go to Admin > Custom definitions
- Click “Create custom dimension”
- Name it (e.g., “User Plan”)
- Set scope: User (persists across sessions) or Event (just this event)
- Set the event parameter it maps to
Then in your code, send the user property:
// Set user properties (persist across sessions)
gtag('set', 'user_properties', {
'user_plan': 'pro',
'signup_date': '2024-01-15'
});
Useful Things to Track
User-Level Dimensions
- Current plan/tier
- Account age
- User role (admin, member, viewer)
- Industry or company size
- Signed in vs anonymous
Event-Level Dimensions
- Which feature was used
- Content type viewed
- Form step completed
- Error type encountered
- A/B test variant
Custom Events Worth Tracking
- Key feature usage (export, share, create)
- Upgrade/downgrade clicks
- Support chat opened
- Video played
- File uploaded
- Integration connected
Analyzing Custom Data
Once you’re collecting custom dimensions:
- Segment reports: Add dimension as a filter (e.g., “show only Pro users”)
- Create audiences: Admin > Audiences > “Users where user_plan = pro”
- Funnel by dimension: See how conversion differs by user type
- Explore: Use free-form or funnel explorations with custom dimensions
Limits and Gotchas
- GA4 has limits: 50 custom dimensions per property, 50 custom metrics
- User properties take time to update (not instant)
- Historical data won’t have custom dimensions from before you set them up
- PII (emails, names) should NOT be sent to GA4
Confirming Dimensions Appear in Reports
- Custom dimensions are registered in GA4 Admin
- Values are being collected (verify in DebugView)
- Dimensions appear in reports and explorations
- Data makes sense and matches expectations
Sources
- Google – Custom Dimensions & Metrics in GA4
- Google – GA4 Developer Documentation
- Google – GA4 Events & Conversions
GA4 Custom Dimensions Questions Answered
How many custom dimensions can I create in GA4?
GA4 standard (free) allows 50 event-scoped custom dimensions and 25 user-scoped custom dimensions. GA4 360 allows 125 event-scoped and 100 user-scoped. You also get 50 custom metrics in standard. Plan carefully—deleted dimensions cannot be reused and historical data for removed dimensions is lost.
What is the difference between event-scoped and user-scoped dimensions?
Event-scoped dimensions attach to individual events (e.g., button_color on a click event). User-scoped dimensions attach to the user and persist across all their events (e.g., subscription_plan, user_role). Use event-scoped for action-specific context and user-scoped for attributes that define the user across sessions.
Why isn’t my custom dimension showing data in GA4 reports?
Three common causes: the dimension isn’t registered in GA4 Admin → Custom definitions (sending the parameter isn’t enough), the parameter name in your tag doesn’t exactly match the registered name (case-sensitive), or you haven’t waited 24-48 hours for processing. Use DebugView to verify the parameter is firing before troubleshooting reports.
What are the most useful custom dimensions to set up first?
User type (logged_in vs. anonymous), content category or content group, CTA label or button text, form name, traffic source detail (UTM content), and pricing tier or plan type. These dimensions answer “who did what and why” questions that default GA4 dimensions cannot.
✓ Your GA4 Custom Dimensions Are Working When
- Custom dimensions are registered in GA4 Admin → Custom Definitions with correct scope (event or user)
- Your site or GTM is sending the corresponding event parameters with actual values
- Custom dimensions appear in GA4 Explore reports with populated data (not all “not set”)
- At least one custom report or exploration uses your new dimensions to answer a business question
Test it: Open GA4 DebugView, trigger an event on your site, and confirm your custom parameter appears with the correct value in the debug stream within 60 seconds.