• Courses
    • Courses
    • Course bundles
  • Blog
  • Resources
    • Youtube channel
    • E-books and Guides
    • GTM Recipes
    • View All Resources
    • GTM Community
    • GA4 community
  • Services
  • About
    • About
    • Contact
  • Login
  • Courses
    • Courses
    • Course bundles
  • Blog
  • Resources
    • Youtube channel
    • E-books and Guides
    • GTM Recipes
    • View All Resources
    • GTM Community
    • GA4 community
  • Services
  • About
    • About
    • Contact
  • Login

April 1, 2025

A Guide to Custom Dimensions in Google Analytics 4

Updated: April 1st, 2025

Google Analytics (or any other similar tool) won’t help you much if you use it just “out of the box”. I’m talking about the classic “just add one line of JavaScript to your site and start tracking”. If you want to benefit from a platform, you have to customize your data collection.

Every business is unique, and you might want to track different things to understand how different parts perform.

One of the ways you can customize it is through custom dimensions. Instead of just having some generic data, you can go deep with your setup. Even though Google Analytics 4 offers better automatic tracking capabilities (compared to Universal Analytics), that’s not enough.

In this blog post, I’ll show you how to configure Custom Dimensions in Google Analytics 4 (with Google Tag Manager).

 

Table of contents

– Here’s what you will learn in this article –

  • How to read this guide?
  • PART I: Let’s start with some theory about dimensions
    • 1.1. What is a dimension?
    • 1.2. Custom Dimensions in GA4
      • 1.2.1. Scope
      • 1.2.2. Scope in Google Analytics 4
  • PART II: The setup of custom dimensions + reports
    • 2.1. The process of creating Custom Dimensions in GA4
    • 2.2. How to Configure a Custom Dimension in GA4
    • 2.3. Register custom dimensions
    • 2.4. Where can I find custom dimensions in GA4 reports?
    • 2.5. User-scoped custom dimensions
    • 2.6. Item-scoped custom dimensions
  • Final words

 

Video tutorial

If you prefer video content, here’s a tutorial from my YouTube channel.

 

How to read this guide?

I have split this blog post into two major parts:

  • An introduction to custom dimensions
  • An example of how to configure custom dimensions in Google Analytics 4 with Google Tag Manager

If you want to skip to the practical part, feel free to do so. But if you find something confusing, then read the first part as well.

 

PART I: Let’s start with some theory about dimensions

In this part, I’ll briefly explain the dimensions and their scope in Google Analytics.

 

1.1. What is a dimension?

Let’s start with the basics (because some readers of this blog post might be new to the game). What is a dimension?

Simply put, it’s a parameter/attribute or characteristic of data. It might be an attribute of a product, event, user, website, etc. It helps us better describe and understand what is happening, where it is happening, when it is happening, etc.

If this does not sound clear, here are some examples:

  • A transaction occurs on a website. Its dimensions can be (but are not limited to):
    • Transaction ID
    • Coupon code
    • Latest traffic source, etc.
  • A user logs in to a website, and we send the event login to Google Analytics. That event’s custom dimensions might be:
    • Login method
    • User ID, etc.
  • A product is purchased. Its dimensions can be:
    • Product name
    • Product category
    • Product variant
    • Product size, etc.
  • A logged-in user opens his/her account. Dimensions of a user can be:
    • User ID
    • Registration country
    • Pricing plan, etc.

To sum up, dimension is a parameter that describes something. What about custom dimensions?

Custom dimension is any attribute you additionally configure in your analytics tool because the default functionality does not cover that. And that’s where we move to Google Analytics.

 

1.2. Custom dimensions in Google Analytics 4

Even though there are many dimensions in Google Analytics, they cannot cover all the possible situations. Thus, custom dimensions are needed. Things like Page URL are universal and apply to many cases, but what if your business sells online courses (like I do)?

In Google Analytics, you will not find any dimensions related specifically to online courses. Why? Because probably 99.9%+ of businesses using GA have nothing to do with courses. And that’s why anything related specifically to online courses should be configured manually.

Enter Custom Dimensions.

Subscribe and Get the Ebook - Mastering GA4 event tracking

1.2.1. Scope

A scope defines how a dimension or metric is applied within the data. Both built-in and custom dimensions in GA4 have scopes (we will take a closer look at them soon).

In the previous version of Google Analytics, there were four scopes:

  • User
  • Session
  • Hit (event)
  • Product

User-scoped custom dimensions are applied to all the hits of a user (hit is an event, pageview, etc.). For example, if you send a User registration country as a custom dimension, it will be applied to all the hits of that particular session AND to all the future hits sent by that user (as long as the GA cookie stays the same).

Session-scoped dimensions are applied to all hits of a particular session. For example, you could send the session ID custom dimension, and even if you send it with the last event of the session, all the previous events (of the same session) will get the value. This is done in the backend of Google Analytics.

Hit-scoped (also known as event-scoped) dimension applies only to that particular event/hit (with which the dimension was sent). For example, you could send an event “trial started” to Universal Analytics (GA3), and together with it, you could include an additional parameter, “pricing plan”. That dimension will be applied only to the “trial started” event.

Product-scoped custom dimension applies only to a particular product (that is tracked with Enhanced Ecommerce functionality). Even if you send multiple products with the same transaction, each product might have different values in their product-scoped custom dimensions, e.g., “product size”, “product color”, etc.

Why am I telling you this? Because some things have changed in Google Analytics 4.

 

1.2.2. Scope in Google Analytics 4

While session scope is still available in GA4, it applies only to some built-in dimensions (such as Landing page or Session default channel group). Session scope is not available for custom dimensions (at least not yet).

If you want to apply a dimension to all the events of a particular session, you must send that dimension with every event (that can be done on the code level (gtag) or in GTM). And the implementation depends on where you have that data in the first place. It can be in a cookie, data layer, or somewhere else.

So, right now, GA4 supports three scopes for custom dimensions:

  • User-scope (applies to all subsequent events of the user after the user-scoped custom dimension is set))
  • Event scope (applies to an event)
  • Item scope (applies to a product if you have implemented ecommerce tracking)

Speaking of user-scoped custom dimensions in GA4, it’s important to note that if a custom dimension is set in the middle of the user session, it will apply only from that particular moment going forward. Past events of the same “session” will not be modified.

 

PART II: The setup of custom dimensions + reports

Now, let’s move to the 2nd part of this blog post, where I will show you how to configure custom dimensions and where to find them in Google Analytics 4 reports.

 

2.1. The process of creating Custom Dimensions in Google Analytics 4

First, let me start with a general overview of the process, and then we’ll look at an example.

Google Analytics 4 is pretty flexible when sending custom data to GA. If you use it to mainly stream data to BigQuery and then do the analysis there, you can send any custom parameters you want, and they will be visible in BigQuery.

You can just send the event name, say, “joined_waiting_list”, and then include the parameter “course_name”. And that’s it. However, if you want to use that parameter in the GA4 interface (and you will most likely do), you must register that custom dimension in the GA4 interface. In that case, you will need to:

  • Register a parameter as a custom definition
  • Start sending custom parameters with the events you want

The order DOES NOT matter here. But you should do that pretty much at the same time. If you start sending the parameter to Google Analytics 4 and only register it as a custom dimension, say, one week later, your reports will be missing that one week of data (because the registration of a custom dimension is not retroactive). However, raw data (e.g., streamed to BigQuery) will properly contain that parameter.

So, you might wonder, “What is the registration of a custom dimension?”. Let’s take a look at the example.

Subscribe and Get the Ebook - working with reports in ga4

2.2. How to Configure a Custom Dimension in Google Analytics 4

Important: First, we will start with event-scoped custom dimensions because those are the most popular.

If you are new to event tracking in Google Analytics 4, you might also want to take a look at this guide (+ video).

In this example, I’ll be tracking menu link clicks. Every time a visitor clicks on a menu item, I will send an event and two additional parameters (that I will later register as custom dimensions), menu_item_url, and menu_item_name.

Note: Menu link click tracking trigger conditions differ on most websites (because of different click classes, IDs, etc.). Try to do your best to apply this example.

On a demo website, I have several menu links that I want to track.

First, I must create a trigger with the correct conditions that distinguish any click from a menu link click. Enable Google Tag Manager’s Preview mode and try clicking any of the menu links on a website. Once you click the first link, you should see the Link Click event on the Preview mode’s left sidebar.

If you don’t see it, you should:

  • have at least one Just Links GTM trigger activated on a page
  • or have “File download” or “Outbound links” tracking enabled in your Enhanced Measurement Settings within GA4

Let’s say that you don’t use Enhanced Measurement in GA4. Go to Google Tag Manager > Triggers > New > Just Links. Keep the trigger set to “All link clicks” and save the trigger.

By creating this trigger, we will enable the link-tracking functionality in Google Tag Manager.

Then go to Variables > Configure (in the “Built-in Variables” section) and enable all Click-related variables.

Refresh the preview mode (by clicking the Preview button once again).

Then, go to your website and click any of the menu links. Actually, click at least two of them. Return to the preview mode, and you should start seeing Link Click events in the preview mode. Click the first Link, Click event and go to the Variables tab of the preview mode.

Then click on the second Link Click event. I am currently looking for some variables that I could use to distinguish a menu link click. I don’t want to fire my GA4 event tag on any link click. I want to fire it precisely on a menu link click.

After taking a closer look, I see that both links contain the same Click Classes value, site-nav__link site-nav__link–main. By the way, nav means “navigation” in this context. Great! I will use this in my Just Links trigger.

Go back to the list of triggers in your GTM container and click the previously created trigger for All Link Clicks. We’ll edit it and add a condition: Click Classes contains site-nav__link–main

Save the trigger. Now, it’s time to create a Google Analytics 4 event tag. But before that, I will show you one good practice that will help you in the future.

Let’s create a constant variable that contains our Measurement ID. Go to Variables > Variable Configuration > Constant and paste your Measurement ID.

Save the variable. Then, go to Tags > New > Google Analytics > Google Analytics: GA4 Event.

Insert your newly created constant variable, and you should see a green checkmark. If you don’t see it, then cut and paste the constant variable name in that field (to trigger the validation).

Then, enter the event name. Its value is up to you. Any of the following options are perfectly fine:

  • menu_click
  • menu
  • menu_item_click
  • menu click
  • etc.

These are just some examples. Since we are working with a custom event, we can name it whatever we want (as long as we follow the limitations of name length, for example).

In my case, I used the menu_link_click event name. But this time, sending just the event name is not very useful. You’d probably want to know which exact menu items are clicked more often. How about we also send the name of the menu item and the URL?

We could do that by sending additional event parameters. Even though you could use parameters that are already mentioned in the documentation of the Enhanced Measurement (like link_url and link_text), let’s create two custom parameters (because I just want to show you how to configure them).

I am going to pass two parameters, menu_item_url, and menu_item_name. I made these parameter names up, and you can do it too. That’s what the flexibility of the data model offers.

To send custom parameters, you must expand the Event Parameters section in the Google Analytics 4 event tag and then click Add Row.

Enter the name of the first parameter. In my case, that is menu_item_url. In the Value field, I will insert a variable that returns a clicked URL. Luckily, GTM already offers such a variable. It’s called Click URL. Click the Insert Variable button and then select the {{Click URL}} variable.

Let’s add another parameter, menu_item_name. For that purpose, GTM offers another built-in variable, {{Click Text}}. Insert it as well. Since visitors of your website can translate your page, {{Click Text}} value will also change, hence you will see a more diverse list of collected values in your GA4 reports.

If you want to send more parameters, you can do that. You can send up to 25 parameters with a single event. These two parameters will eventually become custom dimensions in Google Analytics 4.

Assign the previously created Just Links trigger to this tag. Save the tag. Refresh the GTM Preview mode and click a couple of your menu items. Go back to the Preview mode and click those Link Click events. Check if the GA4 event tags for Menu Link Clicks have fired.

menu link click event in google analytics 4

Now, you will need to go to Google Analytics 4 and check DebugView. You will learn more about that in this chapter of the blog post. If the debug view is not working properly, read this article.

And now, the time has come to register those parameters as custom dimensions.

 

2.3. Register custom dimensions

If you want to see/use them in things like Funnel exploration, Free Form, see their reporting cards in standard reports, etc., you must register custom parameters in the GA interface.

In Google Analytics 4, go to Admin > Custom Definitions. Since we sent two custom parameters with the menu link click, we must register them here.

custom definitions in google analytics 4

Click the Create Custom Dimensions button and then enter:

  • The name of the parameter. You can enter whatever you want. This is just how the dimension will be displayed in your reports. You can name it “menu_item_url”, “Menu item URL”, or anything else.
  • Scope. Since we want to apply this parameter only to one event (and not to all events of the same user), we need to select Event
  • Event parameter. This is where you have to enter its name precisely as you entered it in the GTM tag. If your parameter name is menu_item_url, you must enter it here exactly like that. Don’t worry if the autocomplete feature of that field does not show your parameter yet. Just enter it and save the dimension.

Then, register a second parameter (in my case, that was menu_item_name) and save it. By the way, I sometimes use the words “custom parameter” and “custom dimension” interchangeably. In general, custom metrics and custom dimensions are both grouped as custom parameters.

And now we wait. Within the next 24 hours, the custom parameters will start appearing in your Google Analytics 4 reports.

 

2.4. Where can I find custom dimensions in Google Analytics 4 reports?

This blog post focuses mainly on creating custom dimensions in Google Analytics 4. I will not dive deep into how to find insights, raise questions, answer questions, etc. You can learn all of that in this course.

However, I can show you several places where you can find the dimensions you have just sent to Google Analytics 4.

Here are some of the reports:

  • Admin > Events (this will show just the list of events with counts. Nothing fancy.
  • Reports > Engagement > Events. Keep in mind that the sidebar of the “Reports” section is highly customizable, thus in your location, the location of this report might differ.
  • Explore (a.k.a. Exploration reports)

But that is not all. Since GA4 is an event-based analytics platform, every report is affected by events that you send (in one way or another). The reports mentioned above are just the most notable examples.

 

2.4.1. “Reports → Engagement → Events” report

This is an overview of all events that were sent to your property + a couple of charts. Below them, you will see a list of events, and if you click on any of them, you will take a closer look at that event’s data.

Note: The GA4 sidebar is highly customizable. The location of the “Events” report in your property might differ, so keep looking.

 

2.4.2. Explore (a.k.a. Exploration reports)

This is where you will be able to drill down into your data. In the Explorations, you can use reports such as Free Form, Funnel Exploration, Path Exploration, etc.

Here is an example of a Free Form report. Remember that you will need to wait up to 48 hours for the data to come into your reports. So, if you don’t see the data now, be patient.

Let’s say I want to see how visitors with different device categories interact with the menu bar of my site. Remember, I set up the menu_click event?

So, let’s go to Explore and click on the Free Form block.

Then in the Variables column, I need to include the menu_item_url custom dimension because I want to see how many clicks did get each menu URL. Click the Plus icon and then find the menu_item_url dimension. Select it, and it will be included in the list of possible dimensions in the report.

If you CANNOT see the menu_item_url (or whatever custom parameter you are looking for), you must register that custom parameter in Admin > Custom Definitions. Then, wait for 24 hours until the data appears in the reports. If the reports don’t work properly, wait for even longer.

Then let’s edit the Tab settings. Remove the existing dimensions in the ROWS and include the custom definition that you want to include. In my case, that’s menu_item_url.

In the COLUMNS section, I used the Device category dimension. In the VALUES section, select the metric that you wish to see. I used the Event Count.

Then, you will need to filter only to those events that actually contained the menu_item_url dimension. In my case, that is just a menu_click event. That’s why at the bottom of the Tab Settings section, you should enter a filter: Event name exactly matches  menu_click.

That’s it. Your report will now display how different device categories are clicking menu items, which ones are the most popular, and how many times they were clicked.

Also, don’t forget to change the date range if needed. You can do that in the top-left corner of the Exploration interface.

You can also use event data in funnel reports, but let’s keep it for another tutorial (hopefully) in the future.

 

2.5. User-scoped custom dimensions

In GA4, user-scoped custom dimensions are set to all the events from that particular moment onwards. Past events of the same session will not be modified.

Also, if you want to send the user-scoped custom dimensions with GTM, there are several available places/options. Here are some examples.

Also, if you want to watch about this, here it is:

 

#2.5.1. “User properties” section of the event tags

When setting user-scoped custom dimensions, they are called “User properties” on the GTM tag level. You can individually set them in each event tag by going to the “User properties” section.

But this is not very convenient because if you have 100 GA4 event tags, you might need to do this same update 100 times (once per each tag). That’s why I want to recommend a more convenient option.

 

#2.5.2. Event settings variable

In Google Analytics 4, you can create an Event settings variable, set user properties inside of it, and then reuse that same variable across multiple tags.

In Google Tag Manager, go to Variables > New > Variable Configuration > Google Tag: Event Settings.

In that variable, click Google Analytics User Properties and then insert the parameter you want to use in GA4 as a user-scoped custom dimension. Also, give this the settings variable a name and save it.

Then, you will need to update all your Google Analytics tags (this applies to GA4 event tag and Google Tag).

In the Google Tag, go to Shared event settings, and then in the Event Settings Variable, select the variable you just created. Save the tag.

Then, edit all your GA4 event tags one by one. Go to Event parameters, and in the Event Settings Variable field, insert that new variable.

But you still need to manually update all your tags – you might say. Yes, but only once. If you decide to add/edit/remove user properties in your tags in the future, you will just need to go to the Variables section of GTM, find that settings variable, and then edit it once. This change will then be inherited by all GA4 tags that use it.

When you send the user properties to Google Analytics 4, you must register them as user-scoped custom dimensions in the GA4 interface.  To do that, you must go to Admin > Custom Definitions > Custom Dimensions and click Create Custom Dimensions.

custom definitions in google analytics 4

Then enter the following settings:

Make sure the scope is User.

As always, you must wait up to 24 hours for the data to appear in reports.

 

2.6. Item-scoped custom dimensions

They allow you to send custom data about each product on your website (because the list of predefined item dimensions in GA4 is limited). For example, you can send:

  • Item size
  • Item weight
  • Item availability (“in stock” or “out of stock”), etc.

This feature can give you an amazing opportunity to analyze the data from more angles, tailored to business needs.

There are several rules you need to follow:

  • The custom dimensions work only if they are used inside the items array (this array is reserved specifically to GA4 ecommerce tracking).
  • If you are using Google Tag Manager to control GA4 data flow, item parameters must be stored in the data layer or in some custom variable that outputs the entire items array. For example (size is the custom parameter here):
    dataLayer.push({
      event: "view_item_list",
      ecommerce: {
        items: [
         {
          item_id: "SKU_12345",
          item_name: "Stan and Friends Tee",
          size : "XL", // I added this custom parameter
          price: 9.99,
          quantity: 1
        }
    ]
    });
  • Item-scoped dimensions will not work if you configure them as regular event parameters, for example:

    If you send a parameter as displayed in the screenshot above, it will be treated as an event-scoped parameter.

Once your item data is properly stored in the data layer, you can enable this checkbox in your GA4 event tag and it will be sent to GA4.

If you have installed GA4 with Google Tag (GTAG) directly in the source code of the website, then take a look at the documentation. But the principle here is very similar. Your item-scoped custom parameters must be inside the items array (in each product).

 

Custom Dimensions in Google Analytics 4: Final Words

With the rise of Google Analytics 4, custom dimensions have become the fundamental functionality needed even for beginners. If you want to track an event and include any additional text parameter, you’re dealing with custom dimensions.

The process is pretty straightforward here. You must send some custom data to GA4 and register a parameter as a custom dimension (if you want to use/see that parameter in regular Google Analytics 4 reports).

However, if you are using Google Analytics 4 to stream data to BigQuery and analyze it there, then there is no need to register dimensions. Even unregistered parameters will be available in BigQuery.

Do you have some questions about custom dimensions in Google Analytics? Feel free to post a comment below.

 

Julius Fedorovicius
In Google Analytics Tips
42 COMMENTS
Shashank Mangal
  • Dec 14 2020
  • Reply

Hi Julius,

Thanks for the detailed article. Very helpful.

I have a query.

1) Can we create Custom Dimension from ONLY 'Custom Parameter' or we can create them from Default Parameters of Enhanced Events/Recommended Events and see them in the Event Report?

How to see Default Parameters as Dimensions in Reports/Analysis Hub?

2) In your example of User Property above, you have set the User Property = Pricing Plan at GA4 Configuration Tag level and (NOT at Event Tag level), which means that for every event, this User Property value will be passed to the GA4 reports.

But how do GA4 will know whether the User is Premium/Free (Pricing Plan Types)? You have not mentioned those types anywhere for GA4 to pick up those values.

Kindly advise.

Thanks,

    Cyrus F
    • Jun 16 2021
    • Reply

    For 2. I believe the author set it wrongly, it should be done on the GA4 Event Tag level. the configuration tag is just for setting up the initial GA4 property. Whether the user is Premium/Free, it is extracted from your site datalayer. Your website must feed this information to GA4. So you have to configure this in the "value" section of the GTM paramater, make sure that it is a VARIABLE that is in the existing DLV.

      Julius Fedorovicius
      • Jun 16 2021
      • Reply

      User properties are automatically applied to all subsequent hits of that user. So if you have the pricing plan in the data layer before GTM is loaded, user property can be set in the GA4 config tag. And that can be enough. If the dimension can change at some other event (not just on pageview), you can also configure that user property as on the event level. This is something that can be tested in 5 minutes for you to see how it works. And no, I am not wrong in this case

Marcus
  • Mar 9 2021
  • Reply

"If the reports don’t work properly, wait for even longer."
How long is longer? Have waited for over a week and get one out of nine CDs showing up in DS, none in GA.
What could, conceivably, go wrong?

    Julius
    • Mar 9 2021
    • Reply

    Hi, 1 week is deftinitely too long.

    What went wrong? Something is configured incorrectly. Maybe in GA, maybe in GTM, maybe in the Data Layer, maybe somewhere else. It's difficult to tell without seeing your setup.

    You can write a post in GTM community/forum with screenshots of your setup, link to your website, link to your GTM preview mode, and detailed description of what you have already configured.

    If you want me to take a look at your setup and tell the exact problem + how to fix it, you can book a call here analyticsmania.com/call.

    Or you can enroll in my GTM course for beginners. It contains a lot of GA4 example. I also support my students in situations like this and help them debug.

      Marcus
      • Mar 9 2021
      • Reply

      Thanks for your response Julius.
      This is app tracking via Firebase. I'm running it past the developers to see if something has gone wrong on their side. I'm just frustrated because everything is looking fine to me, so I'm searching for answers everywhere.

      It's a bit tricky to share a preview of any sort since the tracking is built into the app.
      The event parameters are showing up fine in the real time report via the firebase interface. But when I'm making reports in GA or DS, they only get not set.

      Well, thanks again for replying to my question. Now I can be sure that there is something wrong :)

Jonas
  • Jan 21 2022
  • Reply

Hi Julius! Thanks again for another great article, it´s very helpful :-)

Still, I´m struggling with an issue regarding custom dimensions. I´m using GA4 and setup a custom timestamp tracking (following this guide: https://sandervolbeda.com/add-timestamp-to-google-analytics/). And everything works out - in GTM preview, the timestamp is sent with the Event, also in GA debug view, the timestamp is sent with the Event.

But when setting up an exploration (as in a Free Form) and add the Timestamp to it, I either get a "0" for the custom metric or "(not set)" for the custom dimension.

I´m really desperate by now, so I thought it´s worth a try posting it here. Would be more than thankful if you could tell me what else to check.

    Julius Fedorovicius
    • Jan 21 2022
    • Reply

    Difficult to tell without doing an audit of the setup

Jesse
  • Mar 31 2022
  • Reply

Hi Julius,

Awesome articles as always on custom dimension for GA4.
Could you point out me the right direction on what custom dimensions must to add into GA4 compared with GA3 (UA) for enhanced-ecommerce reporting purpose? For now, I just registered Transaction ID as custom dimensions on GA4, I believe there are much more. If you may have posted articles about this topic, just in case I missed, please post me a link, if not, you may have this topic for your next post. :)

Thank you in advance.
Jesse

    Julius Fedorovicius
    • Mar 31 2022
    • Reply

    Custom dimensions are for *custom data*. Transaction id is not custom data. You don't need custom dimension for that

      Jesse
      • Mar 31 2022
      • Reply

      But on GA4 dashboard, if you don't Configure > Custom definitions > Custom dimensions, you won't have any dimensions to list out for you choose from drop-down list to add as second column while on Reports > Monetization > Ecommerce purchases.

        Charles
        • May 20 2022
        • Reply

        Jesse, i believe the best practice isn't to create a single event for you r ecommerce, but instead to create events for each step. Then you visuzlize that way rather than by the dimensions for parameters

Jo
  • Jul 17 2022
  • Reply

Hi Julius, if you track a an event param in GTM as article_type and then configure it GA4 interface as Aricle Type, do you then use the original article_type or interface Article Type to set up derived events in GA4 interface?

    Julius Fedorovicius
    • Jul 19 2022
    • Reply

    To view events in the interface, I use Article Type

James
  • Sep 7 2022
  • Reply

Hey Julius,

Do you need to register the standard e-commerce dimensions/arrays as custom dims? I.e. items, value, transaction_id, currency and so on?

Thanks

    Julius Fedorovicius
    • Sep 22 2022
    • Reply

    Most of them are available by default, so you don't need to register. But some are missing, for example, shipping tier. I think GA4 will add those dimensions in the future, but now you will need to register that.

    So go to Explorations, see what dimensions are available, and register those that are missing.

Noah Davidian
  • Sep 28 2022
  • Reply

Hi Julius,
Thank you for the thorough walkthrough,
I have a question, you mentioned that all event parameters are available in BigQuery. Is this the case for Data studio as well? Or do you still need to register parameters as custom dimensions?

    Julius Fedorovicius
    • Sep 28 2022
    • Reply

    That is not the case for Google Data Studio

      milad nasiri
      • Nov 29 2023
      • Reply

      Do you have an article or post for how to use event parameters in Looker Studio?

Milica
  • Nov 9 2022
  • Reply

Is is possible to add some custom datalayer in ecommerce datalayer, for example user_status in below code or that would break ecommerce object:

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'purchase',
ecommerce: {
currency: 'DKK',
value: 109.29,
tax: 7.18,
shipping: 10.00,
transaction_id: 'p115-20202000',
user_status: 'registered'

    Julius Fedorovicius
    • Nov 9 2022
    • Reply

    That will not break

Dave
  • Feb 6 2023
  • Reply

Hi Julius,

Thanks for putting together an interesting article.
With regards to dimension parameters, should they be uniquely named?

I have used the same parameter name used within separate events, and it won't allow me to save the custom dimension.

    Julius Fedorovicius
    • Feb 6 2023
    • Reply

    You can use the same parameter name in different events

      Dave
      • Feb 7 2023
      • Reply

      Whenever I create parameter with the same name I get the following "There is already a dimension or metric registered with this parameter name."

      I really didn't want to have to name my parameters uniquely, but I guess I'm forced to do so - just can't understand why.

        Julius Fedorovicius
        • Feb 7 2023
        • Reply

        You create the dimension once (e.g. for "element_name") and then you use that parameter in multiple events. That's pretty much it.

Richard
  • Feb 8 2023
  • Reply

Julius, thanks for the great post! You've already answered the question about the same custom dimension for separate events. But what if that custom dimension is set to register different values? E.g.:
1. event_one - custom_parameter - {{Custom Value 1}}
2. event_two - custom_parameter - {{Custom Value 2}}

    Julius Fedorovicius
    • Feb 8 2023
    • Reply

    That is not a problem. Values of custom dimensions can be different for every event.

Chris
  • Feb 14 2023
  • Reply

Hi Julius,

I'm trying to understand how to create a custom UTM parameter in GA4 using GTM. If Google removed session data, how does it register the built-in UTM parameters in GA4? Is it possible to create a custom UTM parameter?

    Julius Fedorovicius
    • Feb 14 2023
    • Reply

    UTM parameters are added by editing the URL of the page/link.

Peter Keesey
  • Jun 26 2023
  • Reply

Hey there -

I followed these steps and my custom parameter is appearing correctly in GTM and in debug mode on google analytics 4. However, after 48 hours it still shows (not set). Can it take longer than 48 hours

    Julius Fedorovicius
    • Jun 27 2023
    • Reply

    no, you probably misconfigured something.

Kalai
  • Jun 28 2023
  • Reply

I want to send custom dimension with every page_view.
But I am getting (not set) values mostly. Google documentation says that automatically collected events won't send CDs.
https://support.google.com/analytics/answer/13504892?hl=en&ref_topic=13395703&sjid=8469906423393528284-AP#

Have you come across this context ? do you have a solution ?

    Julius Fedorovicius
    • Jun 28 2023
    • Reply

    Custom dimensions can be applied to page_views just fine. Add the parameter to the config tag

Andre
  • Jul 6 2023
  • Reply

Hi Julius,

In GA3 I used to create reports using event category, action, and label as dimensions and I was able to use transactions as a metric.

In GA4 I get 0 transactions when I do this. I'm using the event parameters (registered as custom dimensions) as dimensions.

I only see transactions associated with my purchase event. Is there a way to report on transactions for custom events? For example, how many transactions for users that clicked on button A vs button B? event name: button click, parameter: button_text (A or B).

Thanks!

Anil
  • Aug 26 2023
  • Reply

Hi Julius,

You mentioned this in the post: “Even though you could use parameters that are already mentioned in the documentation of the Enhanced Measurement (like link_url and link_text), let’s create two custom parameters (because I just want to show you how to configure them).”

My question: If we decide to go with link_url and link_text, do we still need to register them in custom definition. They after all are standard parameters. Second, if we decide to go with custom parameters (like you’ve done), do we need to register them (in custom definition) a second time if we use them in another event.

Pl clarify. This has been bugging me a lot.

Petar
  • Sep 15 2023
  • Reply

Just wondering, is there a way to import custom dimensions in Google Ads? So not only the conversion event, but also the parameter values that come with them?

Rebecca
  • Oct 31 2023
  • Reply

Thank you for the article! I have set up a custom event in GTM. The tag fires and the event settings table looks like so:

eventSettingsTable
[
{parameter: "product id", parameterValue: "product_id"},
{parameter: "signup revenue", parameterValue: "signup_revenue"},
{
parameter: "purchase value object",
parameterValue: "purchase_value"
},
{parameter: "event_label", parameterValue: "Purchase from cart"}
]

As you can see, my parameter names have spaces but the parameter values don't. When I try to register the custom dimension in GA4, I am not allowed to enter something with spaces, like "product id", but I can enter the parameter value, "product_id". But I'm not getting the data to come through the way it should. Is it correct to have the parameter *values* from the Tag in the Event Parameter field of the custom dimension? Or do I need to change the *names* of the of the parameters in the Tag set up so they don't have spaces?

Thanks for clarifying.

Long
  • Nov 1 2023
  • Reply

Hey there. I have a problem with configuring a user property. I want to track user status (registered vs not_registered).

When the user logs into my website an event is pushed and sets the user status to registered. But when, where and how do I set the default not_registered value for users that are just browsing my website?

Mike
  • Nov 24 2023
  • Reply

Question with only having 50 Events you can create in GA4 would the work around be to create another property to track the other 30 if your total is 80 events for custom definitions?

Felipe
  • Mar 9 2024
  • Reply

Excellent article!

I just have one question. In GA-UA if I used a custom dimension with user scope, at the moment it is defined, all subsequent hits end up receiving this value, including hits from future sessions (if the Client Id is the same).

In GA4, is the rule the same? In other words, will the value defined in a previous session be maintained for future sessions?

Thanks.

Nedjo
  • Sep 27 2024
  • Reply

Hello,
How to analyze performance in one particular session (for ex. to understand if a user starts a session "not-logged-in" and becomes "logged-in" during the same session) without a ga_session_id dimension as it is not recommended to create it due to a high-cardinality issue?

Thank you.

Daniel
  • Apr 22 2025
  • Reply

Hi Julius,
I archived a user-scoped custom dimension in GA4 UI I started monitoring increased number of 'null' values in BigQuery.
The parameter is still sent with GTM as an user property.

It seems that the 'user_properties' field in the BigQuery export only includes user properties that are registered and active in the GA4 UI.

Can you confirm if my observation is right and that only the event parameters don’t need to be registered as custom dimensions to appear in BigQuery.

Leave a comment Cancel reply

Your email address will not be published. Required fields are marked *


 

Hi, I'm Julius Fedorovicius and I'm here to help you learn Google Tag Manager and Google Analytics. Join thousands of other digital marketers and digital analysts in this exciting journey. Read more
Analytics Mania
  • Google Tag Manager Courses
  • Google Tag Manager Recipes
  • Google Tag Manager Resources
  • Google Tag Manager Community
  • Login to courses
Follow Analytics Mania
  • Subscribe to newsletter
Recent Posts
  • Conversion rate in Google Analytics 4
  • Google Tag Manager Data Layer Explained
  • Cross-domain tracking in Google Analytics 4
Analytics Mania - Google Tag Manager and Google Analytics Blog | Privacy Policy
Manage Cookie Settings