Custom dimensions in GA4 are user-defined attributes — attached to events or user profiles — that extend GA4's default data model to capture business-specific context.
Quick Answer
Custom dimensions in GA4 are user-defined attributes — attached to events or user profiles — that extend GA4's default data model to capture business-specific context.
GA4 allows 50 event-scoped and 25 user-scoped custom dimensions per property — plan your schema carefully
Dimensions must be registered in GA4 Admin before they appear in reports — collection starts from registration date only
User-scoped dimensions persist across sessions and are ideal for CRM attributes like customer segment or plan type
Key Takeaways
GA4 allows 50 event-scoped and 25 user-scoped custom dimensions per property — plan your schema carefully
Dimensions must be registered in GA4 Admin before they appear in reports — collection starts from registration date only
User-scoped dimensions persist across sessions and are ideal for CRM attributes like customer segment or plan type
How Custom Dimensions in GA4 Works
GA4 custom dimensions come in two scopes: event-scoped (attached to a specific event, like form_type = "demo-request") and user-scoped (attached to the user profile and persist across sessions, like customer_segment = "enterprise"). A third scope — item-scoped — exists for ecommerce product data. Each property allows up to 50 event-scoped and 25 user-scoped custom dimensions. Once registered in Admin, the dimension becomes available in all Exploration reports and in the Looker Studio GA4 connector.
Why Custom Dimensions in GA4 Matters for B2B Marketing
For B2B marketing analytics, custom dimensions unlock segmentation that's impossible with GA4's default data. Common implementations include: industry vertical (passed from CRM via GTM), account tier (SMB, mid-market, enterprise), lead score range, content topic or funnel stage (awareness, consideration, decision), and A/B test variant. These dimensions allow you to compare conversion rates, session quality, and funnel progression across meaningful business segments rather than just traffic sources.
Custom Dimensions in GA4: Best Practices & Strategic Application
Implementation best practice: define your dimension schema in a tracking plan before registering in GA4 Admin — you cannot rename or repurpose a registered dimension without losing historical data continuity. Send dimension values as event parameters via GTM data layer pushes. For user-scoped dimensions, set them on the first pageview after login or form submission when you have identity context. Verify values appear correctly in DebugView before deploying.
Agency Perspective: Custom Dimensions in GA4 in Practice
A common agency mistake is registering custom dimensions before confirming the underlying events are firing correctly. Another is confusing custom dimensions with custom metrics — dimensions are qualitative labels (strings), while metrics are quantitative values (numbers). Registering a numeric value as a dimension wastes a dimension slot and prevents mathematical aggregation. Audit your dimension list quarterly to retire unused dimensions and free slots for higher-value attributes.
Frequently Asked Questions: Custom Dimensions in GA4
Custom dimensions in GA4 are user-defined attributes — attached to events or user profiles — that extend GA4's default data model to capture business-specific context.
Custom dimensions are qualitative attributes (text values) used to segment and filter data, such as industry = "SaaS" or content_topic = "SEO". Custom metrics are quantitative values used for mathematical analysis, such as lead_score = 85 or video_watch_percent = 72. The data type determines which type you should register.
No. GA4 only begins populating a custom dimension in reports from the date it's registered in Admin. Events sent before registration did collect the parameter value in raw form (visible in BigQuery), but the dimension won't appear in standard GA4 reports retroactively. This makes early schema planning critical.
The most reliable method is to push the value into the GTM data layer upon page load (for server-rendered pages) or after login (for authenticated sessions). GTM then reads the data layer variable and sends it as a parameter with your GA4 events. For server-side implementations, you can enrich the GA4 Measurement Protocol payload directly from your CRM data.
MV3 Marketing helps B2B companies apply these strategies to drive measurable pipeline growth. Our team executes analytics setup for technology, SaaS, and professional services companies.
ID used to identify users for 24 hours after last activity
24 hours
_gat
Used to monitor number of Google Analytics server requests when using Google Tag Manager
1 minute
_gac_
Contains information related to marketing campaigns of the user. These are shared with Google AdWords / Google Ads when the Google Ads and Google Analytics accounts are linked together.
90 days
__utma
ID used to identify users and sessions
2 years after last activity
__utmt
Used to monitor number of Google Analytics server requests
10 minutes
__utmb
Used to distinguish new sessions and visits. This cookie is set when the GA.js javascript library is loaded and there is no existing __utmb cookie. The cookie is updated every time data is sent to the Google Analytics server.
30 minutes after last activity
__utmc
Used only with old Urchin versions of Google Analytics and not with GA.js. Was used to distinguish between new sessions and visits at the end of a session.
End of session (browser)
__utmz
Contains information about the traffic source or campaign that directed user to the website. The cookie is set when the GA.js javascript is loaded and updated when data is sent to the Google Anaytics server
6 months after last activity
__utmv
Contains custom information set by the web developer via the _setCustomVar method in Google Analytics. This cookie is updated every time new data is sent to the Google Analytics server.
2 years after last activity
__utmx
Used to determine whether a user is included in an A / B or Multivariate test.
18 months
_ga
ID used to identify users
2 years
_gali
Used by Google Analytics to determine which links on a page are being clicked