GA4 gives you 50 custom dimensions and 50 custom metrics per property, but many implementations waste these slots by registering the wrong type. Numeric data registered as a custom dimension cannot be aggregated in reports. Text data registered as a custom metric causes errors. Choosing correctly is a technical requirement that determines whether you can use your data meaningfully in GA4’s reporting interface.

The Fundamental Difference

Custom dimensions are categorical attributes that describe how to group or filter your data — the “what kind of” properties. Custom metrics are numerical quantities that can be summed, averaged, or used in ratios — the “how much” properties. If you want to calculate the average value of your data across sessions, it must be a custom metric. If you want to use your data as a filter or row breakdown in a report, it must be a custom dimension.

Scope: Event, User, and Item

  • Event scope: The value applies to a single event occurrence. Most custom data is event-scoped. Example: a “video_duration” custom metric on a video_play event records the duration of that specific video.
  • User scope: The value applies to the user and persists across all sessions. The most recently seen value overrides older values. Example: a “subscription_tier” custom dimension reflecting the user’s current plan.
  • Item scope: Available only for e-commerce item data. Applies to individual product entries in purchase, add_to_cart, or view_item events.

Scope mismatch is a common error. Registering a value that changes per event (like page_read_percentage) as user scope means only the last value recorded for each user will appear in reports, losing all the per-event variance. Register it as event scope instead.

GA4 Custom Metrics vs Custom Dimensions: Which One Your Data Actually Needs

Custom Metric Types

Custom metrics have three subtypes: Standard (for whole numbers or decimals), Currency (for monetary values that should be formatted as currency in reports), and Time (for durations in seconds that GA4 will format as hours:minutes:seconds). Use Currency for revenue, cost, and order value data. Use Time for engagement durations and video watch time. Use Standard for counts, scores, quantities, and percentages.

When to Use Custom Dimensions for Numeric Data

There are legitimate cases for registering numeric data as a custom dimension. If you want to filter or group by a numeric value but never aggregate it, a custom dimension is appropriate. For example, a “price_tier” that takes values like 1, 2, or 3 is categorical even though it uses numbers. Identifiers that happen to be numeric — order_id, user_id — should always be custom dimensions. You never want to sum or average an order ID.

Registering Custom Definitions in GTM

GA4 tags in GTM can pass any event parameter as key-value pairs without pre-registration. The data will appear in DebugView and BigQuery immediately. However, the parameter will NOT appear in GA4’s standard reports or Explore tool until you register it in Admin → Custom Definitions. This means you can build and test your implementation in GTM, verify the parameter data is arriving correctly in DebugView, and then register the custom dimension or metric afterward.

The 24-Hour Delay

After registering a new custom dimension or metric, there is typically a 24-48 hour delay before historical data appears in GA4 reports. Data collected before registration is not retroactively attributed to the new dimension in UI reports. However, the data IS present in BigQuery from the moment the first event was collected — GA4 exports all event parameters to BigQuery regardless of whether they are registered as custom dimensions. Query unregistered parameters in BigQuery immediately, even before they appear in the GA4 UI.

Managing Your Custom Definition Slots

Review your custom definitions quarterly at Admin → Custom Definitions. Look for dimensions and metrics that are no longer being populated (because the underlying event or parameter was renamed), duplicates with slightly different names, and unused slots that could be reclaimed. You cannot delete a custom dimension and immediately reuse its slot — GA4 retains deleted definitions and their data. You can however edit an existing definition to repurpose it for new data if the old data is no longer relevant.

Guide

Leave a Comment