Getting Started

Dimensions and metrics in GA4 (what you need to know)

Understand the difference between dimensions and metrics in Google Analytics 4. Learn about custom dimensions, limits, and how to use them effectively.

A
Antoine
January 14, 20266 min read

Dimensions and metrics are the building blocks of every GA4 report. Understanding what they are and how to use , especially custom ones, is essential for getting real insights from your data.

Let me break this down.

The basics

TypeWhat it isExamples
DimensionDescribes your data (text/category)Country, Page path, Device type
MetricMeasures your data (number)Users, Sessions, Conversions

Think of it this way:

  • Dimensions answer: "What is it?"
  • Metrics answer: "How much?"

Built-in vs custom

GA4 provides many dimensions and metrics out of the box. But you can also create custom ones for data specific to your business.

Built-in dimensions (examples)

CategoryDimensions
UserCountry, City, Age, Gender
SessionSource, Medium, Campaign
PagePage path, Page title, Content group
DeviceDevice category, Browser, OS
EventEvent name

Built-in metrics (examples)

CategoryMetrics
UserTotal users, Active users, New users
SessionSessions, Engaged sessions
EngagementEngagement rate, Average engagement time
EventsEvent count, Key events
RevenueTotal revenue, Purchase revenue

Custom dimensions: when you need them

Use custom dimensions when you need to track information that GA4 doesn't collect by default.

Common use cases

Custom dimensionWhat it tracks
User roleLogged-in user type (admin, customer, guest)
Content authorWho wrote the article
Product categoryBeyond standard e-commerce
Membership levelFree, Pro, Enterprise
A/B test variantWhich test variation they saw

Types of custom dimensions

ScopeApplies toUse for
Event-scopedSingle eventButton clicked, form submitted, page attribute
User-scopedAll events from userUser type, subscription status
Item-scopedE-commerce itemsProduct attributes beyond defaults

Creating custom dimensions

Step 1: Send the parameter

First, you need to send the data with your events.

Via gtag.js:

gtag('event', 'page_view', {
  'content_author': 'Antoine',
  'content_type': 'blog_post'
});

Via GTM: Add event parameters to your GA4 Event tag.

Step 2: Register in GA4

GA4 won't report on parameters until you register them.

  1. Go to Admin → Custom definitions
  2. Click Create custom dimension
  3. Fill in:
    • Dimension name: What you'll see in reports (e.g., "Content Author")
    • Scope: Event, User, or Item
    • Event parameter: The exact parameter name you're sending (e.g., content_author)
  4. Click Save

Step 3: Wait and verify

  • New dimensions appear in reports within 24-48 hours
  • Historical data before registration isn't retroactive
  • Test in DebugView to confirm data is coming through

Custom metrics

Custom metrics work similarly but for numeric values.

Common use cases

Custom metricWhat it measures
Reading timeTime spent reading content
ScoreGame scores, quiz results
Stock levelInventory quantity
Custom revenueNon-standard revenue types

Creating custom metrics

  1. Go to Admin → Custom definitions → Custom metrics
  2. Click Create custom metric
  3. Fill in:
    • Metric name: Display name
    • Scope: Event
    • Event parameter: Parameter name
    • Unit of measurement: Standard, Currency, Distance, etc.
  4. Click Save

Limits to know

TypeStandard GA4GA4 360
Event-scoped dimensions50125
User-scoped dimensions25100
Item-scoped dimensions1025
Event-scoped metrics50125

50 event-scoped dimensions sounds like a lot, but plan carefully. You can't delete them (only archive).

Best practices

Naming conventions

Use consistent, descriptive names:

GoodBad
content_categorycat
user_membership_levellevel
product_stock_statusstatus

Avoid high-cardinality dimensions

High cardinality = too many unique values (500+ per day).

High cardinality (avoid)Better alternative
Exact timestampHour buckets
User emailUser ID
Full URL with parametersPage path only
Session IDSegment by behavior

High-cardinality dimensions cause data to be grouped into "(other)" in reports.

Don't register what you don't analyze

Each custom dimension counts against your limit. Only register what you'll actually use in reports or audiences.

Send consistent values

Case matters. premium and Premium are different values. Standardize in your implementation.

Using dimensions and metrics in reports

Standard reports

You can add secondary dimensions to most reports:

  1. Click on a report
  2. Click + to add a dimension
  3. Select from available dimensions

Explorations

Explorations give you full flexibility:

  1. Create a new Exploration
  2. Add dimensions and metrics from the panel
  3. Build custom tables, funnels, or path analyses

Incompatible combinations

Sometimes a dimension and metric can't be used together (grayed out in the interface). This happens when:

  • They come from different scopes
  • The data model doesn't support the combination
  • The exploration technique doesn't allow it

The "(not set)" problem

You'll see "(not set)" when:

  • The parameter wasn't sent for that event
  • Data hasn't been received yet
  • The dimension is new and no data exists

Fix: Ensure your implementation always sends a value, even a default one like "none" or "unknown."

Practical examples

User membership tracking

// On login, set user properties
gtag('set', 'user_properties', {
  membership_level: 'pro',
  signup_date: '2024-01-15'
});

Register as user-scoped dimension.

Content categorization

gtag('event', 'page_view', {
  content_category: 'tutorials',
  content_author: 'Antoine',
  content_length: 'long'
});

Register each as event-scoped dimension.

Custom engagement metric

// Track reading progress
gtag('event', 'reading_progress', {
  article_id: 'abc123',
  percent_read: 75  // Register this as custom metric
});

Next steps

Once you understand dimensions and metrics:

  1. Create custom events with meaningful parameters
  2. Build dashboards using your custom data
  3. Set up audiences based on custom dimensions

For a cleaner way to visualize your GA4 , including custom dimensions, try Analayer.

See your analytics clearly

Stop struggling with Google Analytics. Connect your account and get a cleaner, simpler view of your data in seconds.