All Guides
Analytics + Measurement

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_plan dimension
  • E-commerce: “Which product category gets the most add-to-carts?” — event-scoped product_category on the add_to_cart event
  • Content site: “Do logged-in readers scroll further than anonymous visitors?” — user-scoped login_status dimension
  • B2B: “Which company size segment converts from trial to paid?” — user-scoped company_size dimension

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:

  1. Create a new tag: GA4 Event
  2. Set the event name (e.g., “plan_selected”)
  3. Add event parameters (e.g., plan_name: “pro”)
  4. Set the trigger (e.g., button click with specific text)
  5. 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:

  1. Go to Admin > Custom definitions
  2. Click “Create custom dimension”
  3. Name it (e.g., “User Plan”)
  4. Set scope: User (persists across sessions) or Event (just this event)
  5. 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

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.