A Complete Guide to Custom Dimensions in Google Analytics 4

An analytics report for custom dimensions in Google Analytics 4.

Table of Contents

Standard Google Analytics reports offer a wealth of information right out of the box. You can see which countries your visitors come from, what pages they view, and how they found your website. This data is valuable, but it is also generic. It tells a story that could apply to any website, from a local bakery to a global software company. The problem is that your business isn’t generic. You have unique products, specific customer types, and distinct content strategies that default reports simply cannot capture. To get truly meaningful insights, you need to move beyond this standard data. This is where you unlock the real power of analytics.

The solution is found in a powerful feature called custom dimensions. Think of custom dimensions as your way of teaching Google Analytics what is uniquely important to your business. They allow you to collect and analyze data that Google does not automatically track, giving you a much clearer picture of your user behavior.

This article will serve as your complete guide to understanding and using custom dimensions in Google Analytics 4. We will explore what they are, how they differ from their counterpart, custom metrics, and the critical concept of scope. Most importantly, we will walk through the exact steps to implement and report on them, transforming your generic analytics platform into a specialized tool for making smarter, data driven decisions.

 

What Are Custom Dimensions? A Technical Definition

A blue pie chart for custom dimensions.
Custom dimensions in a pie chart — image by dede from pixabay

 

To understand custom dimensions, we must first understand the concept of a dimension in Google Analytics. A dimension is an attribute or a characteristic of your data. It is a descriptive label that you can use to organize, segment, and analyze information. Think of it as a category. In your standard reports, dimensions include things like ‘City’, ‘Browser’, ‘Device Category’, and ‘Page Title’. These are non numerical values that provide context to your data. They answer questions like “who,” “what,” and “where.”

A custom dimension, therefore, is a dimension that you create yourself. It is a user defined attribute that allows you to capture information that is specific to your website or app. If Google Analytics is a giant spreadsheet, the default dimensions are the columns that are already there when you open it. A custom dimension is a new column that you add to the spreadsheet to record information that matters only to you.

For example, a blog might want to track the author of each article to see which writers generate the most traffic and engagement. Google Analytics doesn’t know who your authors are, so a default dimension for ‘Author’ does not exist. By creating a custom dimension for it, you can start collecting this data and analyzing author performance directly within your reports. This transforms your analytics from a simple traffic counter into a sophisticated content analysis tool. The use of a custom dimension makes this level of detailed analysis possible.

 

People Also Ask: Custom Dimensions vs. Custom Metrics

 

One of the most common points of confusion for those new to analytics is the difference between dimensions and metrics. This confusion extends to their “custom” counterparts. Getting this distinction right is fundamental to using them correctly. In simple terms, dimensions describe your data, while metrics measure your data.

A custom dimension provides qualitative context. It is descriptive and usually contains text values. It helps you segment your reports to understand the “who” or “what” behind the numbers.

A custom metric, on the other hand, is a quantitative measurement. It is always a number and tells you “how much” or “how many.” You create a custom metric to track a numerical value that isn’t a standard metric like ‘Sessions’ or ‘Users’.

Let’s use an example to make this clear. Imagine you have a website with videos.

  • A custom dimension could be ‘Video Category’. The values for this dimension would be text, such as ‘Educational’, ‘Entertainment’, or ‘Product Demo’. It describes the type of video.
  • A custom metric could be ‘Videos Watched to Completion’. The value for this metric would be a number, like 1, 5, or 100. It measures how many videos were finished.

You could then use the custom dimension to segment the custom metric. You could build a report that shows ‘Videos Watched to Completion’ (the metric) for each ‘Video Category’ (the dimension). This would tell you that users watched 50 ‘Educational’ videos to completion but only 10 ‘Product Demo’ videos. This is an insight you simply could not get without creating both custom dimensions and custom metrics.

Here is a simple table to summarize the key differences:

Feature Custom Dimensions Custom Metrics
Type of Data Descriptive, Textual (Qualitative) Numerical (Quantitative)
Purpose To group, segment, and categorize data To count or measure data
Answers “Who,” “What,” “Where” “How Many,” “How Much”
Example user_status (‘Logged In’, ‘Guest’) form_submissions (1, 2, 3…)

 

Understanding this difference is the first step in building a robust and meaningful analytics setup. Choosing the right tool, whether it is one of the many custom dimensions or a custom metric, is essential for accurate reporting.

 

Understanding Scope: The Core of Custom Dimension Behavior

 

After you decide to create a new custom dimension, the most important setting you will choose is its scope. Scope determines which events or users the value of a custom dimension will be associated with. Getting the scope right is critical because it fundamentally changes how the data is processed and what it means in your reports. In Google Analytics 4, there are two main scopes for custom dimensions: Event and User.

 

Event Scope

 

An event scoped custom dimension applies its value only to the specific event for which it was collected. The value is temporary and is only attached to that single interaction. Once another event occurs, even one millisecond later, that value does not carry over.

This scope is ideal for capturing details about a specific action a user takes at a particular moment in time. Think of information that describes the event itself, not the user who performed the event.

Use Case: Imagine a user downloads a file from your website. You have a file_download event to track this. You might want to know what type of file was downloaded. You can create an event scoped custom dimension called file_type. When a user downloads a PDF, you send the event file_download with the parameter file_type set to ‘PDF’. That value of ‘PDF’ is only associated with that one download event. If the same user later downloads a ZIP file, a new file_download event will fire, and the file_type custom dimension for that event will have the value ‘ZIP’.

Other examples of great event scoped custom dimensions include the name of a link that was clicked, the search term used in an internal site search, or the name of a form that was submitted. All of these custom dimensions describe the specifics of a single event.

 

User Scope

 

A user scoped custom dimension, in contrast, applies its value to all events for a particular user, starting from when the value is first set. The value “sticks” to the user and is applied to every action they take, across multiple sessions, until the value is changed or the user’s data expires.

This scope is best for describing characteristics of the user themselves. These are attributes that are static or change very slowly over time.

Use Case: Let’s say you run a software as a service (SaaS) business with different subscription plans. You could create a user scoped custom dimension called subscription_plan. When a user logs in, you can set the value of this dimension to ‘Free’, ‘Pro’, or ‘Enterprise’. From that moment on, every single event that user triggers, whether it is a page_view, a button_click, or a video_start, will have the subscription_plan custom dimension associated with it, with the value you set.

This is incredibly powerful. It allows you to create a segment of all users on the ‘Pro’ plan and analyze their entire journey on your site. You can see which features they use most, what content they read, and how their behavior differs from users on the ‘Free’ plan. This level of user level segmentation is only possible with a properly configured user scoped custom dimension. Without these user level custom dimensions, you would be unable to perform such targeted analysis.

Choosing between event and user scope is a crucial decision when creating custom dimensions. Always ask yourself: “Does this data describe the action itself, or does it describe the person performing the action?” The answer will tell you which scope to use.

 

How to Create and Configure Custom Dimensions in GA4

A hand pointing to data with a black background.
Data — image by gerd altmann from pixabay

 

Now that we understand the concepts behind custom dimensions, let’s walk through the practical process of creating them. The process involves two main phases: first, sending the data to Google Analytics, and second, registering the data within the Google Analytics interface so it can be used in reports.

 

Prerequisite: Sending Custom Data to GA4

 

Before Google Analytics 4 can recognize your custom dimension, you must first send the data to it from your website or app. GA4 cannot create data out of thin air; you have to provide it. This is done by sending an event parameter along with an event. An event parameter is simply a piece of extra information attached to an event.

The most common and recommended way to do this is with Google Tag Manager (GTM). GTM is a powerful tool that allows you to manage and deploy marketing tags and tracking code snippets on your website without having to modify the code directly. You can use GTM to create a tag that fires on a specific user action (like a button click) and pulls a value from your website (like the text on the button) to send as an event parameter.

Alternatively, for those comfortable with code, you can use the Google tag (gtag.js). This involves adding a small JavaScript snippet directly to your website’s code to send events and their associated parameters.

Let’s use our blog author example. When a page loads, you would configure your website to send a page_view event. Along with the standard information, you would add a parameter called author_name with the value of the author’s name for that specific article. The code might look something like this:

gtag('event', 'page_view', { 'author_name': 'Jane Doe' });

This sends the data to GA4. Now, we need to tell GA4 how to interpret it.

 

Step by Step Configuration in the GA4 Interface

 

Once you are sending the event parameter from your website, the parameter will start showing up in your real time reports. However, to use it as a true custom dimension in your regular reports and explorations, you need to register it.

  1. Navigate to the Admin Section. Click the gear icon in the bottom left corner of your Google Analytics dashboard.
  2. Go to Custom Definitions. In the ‘Property’ column, look for the ‘Data display’ section and click on ‘Custom definitions’.
  3. Create a New Custom Dimension. You will see two tabs: ‘Custom dimensions’ and ‘Custom metrics’. Make sure you are on the correct tab and click the blue “Create custom dimensions” button.
  4. Configure Your Dimension. A configuration panel will slide out from the right. Here you need to fill in four fields:
    • Dimension name: This is the friendly name that you will see in your reports. It should be easy to understand. For our example, we would type “Author Name”.
    • Scope: This is where you choose either “Event” or “User” based on our discussion in the previous section. For our author example, we are describing an attribute of the page being viewed (the event), so we will select “Event”.
    • Description: This field is optional but highly recommended. Write a short sentence explaining what this dimension tracks. This is very helpful for other team members or for your future self. For example: “Tracks the name of the author for each blog post.”
    • Event parameter: This is the most critical field. You must select the exact name of the parameter you are sending from your website. In our case, you would select or type author_name. This name must match perfectly, as it is case sensitive.
  5. Save Your Work. Click the Save button in the top right corner.

That’s it. You have now created a custom dimension. It is important to remember that data for custom dimensions is not retroactive. You will only start seeing data populate in your reports from the moment you clicked that save button. Any data you sent before creating the custom dimension will not be processed into it.

 

Practical Use Cases and Examples

Blog in black and white on a smartphone.
Blog on smartphone — image by markus winkler from pixabay

 

The true value of custom dimensions comes from their application to your specific business goals. The possibilities are nearly endless, but here are some practical examples broken down by business type to inspire your own implementation.

 

For Content Publishers & Bloggers

 

Content heavy websites live and die by the quality and performance of their articles. Custom dimensions can provide deep insights beyond simple page views.

  • author_name: As discussed, this is a fundamental custom dimension for any multi author blog. You can build reports to see which authors generate the most engaged readers, lead to the most newsletter sign ups, or attract the most organic traffic.
  • post_category: By sending the category of each article (e.g., ‘SEO’, ‘PPC’, ‘Content Marketing’), you can analyze which topics resonate most with your audience. This helps guide your future content strategy.
  • word_count_range: Is longer content better? You can find out. Create a custom dimension that categorizes articles into word count buckets like ‘500-1000 words’, ‘1001-2000 words’, and ‘2000+ words’. Then you can analyze metrics like engagement rate and session duration for each bucket.

For E-commerce Sites

 

For an online store, understanding customer segments and product attributes is key to increasing sales.

  • customer_tier: If you have a loyalty program, a user scoped custom dimension can track whether a customer is in your ‘Gold’, ‘Silver’, or ‘Bronze’ tier. You can then compare the average order value and purchase frequency for each tier.
  • shipping_method: When a user completes a purchase, you can capture the shipping method they chose (‘Standard’, ‘Express’, ‘Overnight’) as an event scoped custom dimension. This can help you analyze the popularity and profitability of different shipping options.
  • stock_status: When a user views a product page, you could send a custom dimension that indicates if the product was ‘in-stock’ or ‘out-of-stock’. This could help you identify lost demand from users landing on pages for unavailable products.

For SaaS & B2B Companies

 

SaaS and B2B businesses often have long sales cycles and need to understand user behavior at a deep level.

  • login_status: A simple user scoped custom dimension that tracks if a user is ‘logged-in’ or ‘logged-out’ is incredibly powerful. You can compare the behavior of authenticated users versus anonymous visitors to see how they interact differently with your marketing site and application.
  • industry_type: If you ask for a user’s industry during sign up, you can store this as a user scoped custom dimension. This allows you to segment your entire user base by industry and tailor your marketing and product development efforts accordingly.
  • plan_type: Similar to the e-commerce tier example, a user scoped custom dimension for the user’s subscription plan (‘Free Trial’, ‘Basic’, ‘Premium’) is essential for understanding feature adoption and identifying upsell opportunities. The use of custom dimensions is what makes this kind of detailed analysis a reality.

How to Use Custom Dimensions in Reporting and Exploration

 

Creating custom dimensions is only half the battle. Their real power is unleashed when you use them to analyze your data. There are two primary places in GA4 where you will use your new custom dimensions: standard reports and explorations.

 

Adding as a Secondary Dimension in Standard Reports

 

The simplest way to use a custom dimension is to add it as a secondary dimension to one of the built in reports. This allows you to break down the existing report data into more granular categories.

For instance, let’s go to the Reports > Engagement > Pages and screens report. By default, this report shows you metrics like Views, Users, and Engagement Rate for each page on your site. To add our ‘Author Name’ custom dimension, you simply click the blue plus sign icon next to the primary dimension (‘Page title and screen class’). A menu will appear where you can search for and select your custom dimension. Once selected, the report will update to show you the author for each page, allowing you to see performance metrics on an author by author basis. This is a quick and effective way to enrich your standard reports with the specific custom dimensions you have created.

 

Using in GA4 Explorations

 

The real power and flexibility of GA4 is in the Explore section. Explorations allow you to build fully customized reports from scratch using a drag and drop interface. This is where your custom dimensions truly shine.

To use them here, you would create a new Free-form exploration. In the ‘Variables’ column on the left, you will see a section for ‘Dimensions’. Click the plus sign to import dimensions into your exploration. You can search for and select any custom dimensions you have created.

Once imported, you can drag your custom dimension into the ‘Rows’ or ‘Columns’ section of the report builder. For example, you could drag ‘Author Name’ into Rows. Then, you can drag metrics like ‘Sessions’, ‘Engaged sessions’, and ‘Conversions’ into the ‘Values’ section. Instantly, you have built a custom report that shows the performance of each author. You can then add filters, change visualizations, and continue to add more dimensions and metrics to drill down into your data. Using custom dimensions in Explorations unlocks a level of analysis that is simply not possible with default reports alone. It is the best way to leverage all of the unique custom dimensions you have configured.

 

Technical Limitations and Best Practices

 

While custom dimensions are incredibly powerful, there are some technical limits and best practices to keep in mind to ensure your implementation is successful and scalable.

First, be aware of the limits on how many custom dimensions you can create. For a standard, free Google Analytics 4 property, you are allowed to create:

  • 50 event scoped custom dimensions
  • 25 user scoped custom dimensions

For the larger, paid version, GA360, these limits are increased. While these numbers may seem generous, it is wise to plan your implementation carefully. Do not create a custom dimension for every single piece of data you can think of. Focus on the data that is most aligned with your key business questions and performance indicators.

Second, remember that data has a latency period. After you create a new custom dimension, it can take up to 48 hours for that data to be fully processed and available in your standard reports. You may see it sooner in the Realtime report, but for full reporting, be patient.

Finally, planning is crucial for success. Before you jump into Google Tag Manager and the GA4 interface, create a measurement plan or a data dictionary. This is a simple document, perhaps a spreadsheet, where you map out every custom dimension you want to create. For each one, you should define:

  • The friendly Dimension Name you will use in reports.
  • The exact Event Parameter name you will send (be consistent with your naming convention, such as using snake_case like author_name).
  • The Scope (Event or User).
  • A clear Description of what it tracks and when it should be sent.

This planning document ensures that you and your team are using consistent naming conventions and tracking logic. It prevents the creation of duplicate or confusing custom dimensions and serves as essential documentation for a clean and manageable analytics setup.

 

Conclusion: Unlocking Deeper Business Insights

 

In the world of digital analytics, the most valuable insights come from asking the right questions about your specific business. Standard reports provide a solid foundation, but they can’t answer the questions that are unique to you. Custom dimensions are the bridge between Google Analytics’ generic data model and your specific business needs. They are essential for transforming GA4 from a simple traffic monitoring tool into a powerful, customized business intelligence platform.

By defining what you want to track, sending the data as event parameters, and configuring it within the GA4 interface, you can segment and analyze your users’ behavior in ways that directly align with your goals. You can discover your most valuable customer segments, identify your highest performing content, and gain a much deeper understanding of how users interact with your digital properties. The effort you invest in planning and implementing a strategy for your custom dimensions will pay dividends in the form of clearer insights and more intelligent, data informed decisions. The best way to start is to identify one key piece of business data you aren’t currently tracking and implement your first custom dimension today.

Search

Recent Posts

SHARE ON SOCIAL MEDIA

Facebook
Twitter
LinkedIn
Pinterest