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

December 8, 2022

A Guide to Custom Dimensions in Google Analytics 4

Updated: December 8th, 2022

The thing with Google Analytics (or any other similar tool) is that it 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.

And one of the ways how 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

+ Show table of contents +

  • Video
  • How to read this guide?
  • PART I: Let’s start with some theory about dimensions
    • 1.1. What is a dimension?
    • 1.2. GA4 Custom Dimensions vs Universal Analytics Custom Dimensions
      • 1.2.1. Scope in Universal Analytics
      • 1.2.2. How scope has changed 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 Properties
  • Final words

 

Video

If you prefer video content, here’s a tutorial on my Youtube channel (subscribe to stay up-to-date with GA4). But to get the most out of it, I recommend doing both: reading this article and watching the video.

 

How to read this guide?

I have split this blog post into two major parts:

  • An introduction to custom dimensions, some basics about GA3 scope, and how that changed in Google Analytics 4
  • An example of how to configure custom dimensions in Google Analytics 4 with Google Tag Manager

If you want to skip just 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 previous/current versions of 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 basically any attribute that 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. GA4 Custom Dimensions vs Universal Analytics Custom Dimensions

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.

 

1.2.1. Scope in Universal Analytics

In this blog post, I will not dive deeper into custom dimensions in Universal Analytics. If you want to do so, read this guide.

If you’re at least a bit familiar with Custom Dimensions in Universal Analytics, you probably have heard of something called “scope”. The scope defines to which events the dimension will apply.

In Universal Analytics, there were four scopes:

  • User
  • Session
  • Hit
  • 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 User ID 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 dimension applies only to that particular event/hit (with which the dimension was sent). For example, you can send an event “trial started” to Universal Analytics, and together with it, you can 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. How scope has changed in Google Analytics 4

In Google Analytics 4, the session scope is no longer available (at least in custom dimensions). Update: Google said they would add session-scope in the future to GA4.

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, in the data layer, or somewhere else.

From now on, custom dimensions are either hit-scoped or user-scoped (previously known as User Properties).

User-scoped custom dimensions in GA4 work similarly to the user-scoped dimensions in Universal Analytics but with some differences:

  • In Universal Analytics, a user-scoped custom dimension (set in the middle of the user session) was applied to EVERY event of the same session (even if some event occurred before the dimension was set). In GA4, User Property is set to all the events but from that particular moment going forwards. Past events of the same “session” will are not modified (because GA4 tries to ditch the concept of a “session” (to some extent)).
  • The process of how user-scoped custom dimensions in Ga4 are configured has changed, too (I will explain it later in this blog post)
  • You can have up to 25 user-scoped custom dimensions in a single GA4 property (which is a much higher number compared to the “20-custom-dimensions-limit” in free Universal Analytics that applies to dimensions of all scopes).

Speaking of product-scoped custom dimensions. Even though you can send custom product data to GA4, at the moment, there is no way to see it in reports properly. Hopefully, this will be changed in the future. Or am I missing something? (let me know).

Update: At some point in the past, Google said that session-scoped custom dimensions in GA4 would be available too.

Note: some standard dimensions in GA4 are of session scope, for example, Session Source/Medium. But when it comes to custom dimensions, this scope is still not available.

 

PART II: The setup of custom dimensions + reports

And 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 take a look at an example.

Google Analytics 4 is pretty flexible when it comes to 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), then you have to 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.

 

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

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 need to 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 do the first link click, you should see the Link Click event in 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. Go to Tags > New > Google Analytics: GA4 Event. Select your existing GA 4 Configuration tag and 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 menu_click event name. But this time, sending just the event name alone 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 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

This applies to any event parameter that you send to Google Analytics 4. 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 2 custom parameters with the menu link click, we must register them here.

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
  • 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.

 

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 CAN NOT see the menu_item_url (or whatever custom parameter you are looking for), you must register that custom parameter in Admin > Custom Definitions. And 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 you need it. 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

As promised, it’s time to talk about user-scoped custom dimensions. If you have ever worked with user-scoped custom dimensions in GA3, the concept here is pretty similar. The main difference is that in Universal Analytics (GA3), a user-scoped custom dimension (set in the middle of the user session) was applied to EVERY event of the same session (even if some event occurred before the dimension was set).

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

Also, one more difference is that if you want to send the user-scoped custom dimensions with GTM, you have to use a different section in the GA4 tag (see the screenshot below). Use User Properties, not Fields to Set. 

I know it was not the best decision on Google’s behalf to use “User properties” and “User-scoped custom dimensions” in the same context.

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.

Then enter the following settings:

Make sure the scope is User.

As always, you will have to wait for up to 24 hours for the data to start appearing in reports.

 

Custom Dimensions in Google Analytics 4: Final Words

In Universal Analytics, Custom Dimensions were more like an intermediate feature, and many marketers were not even using it (insert sad emoji here). With the rise of Google Analytics 4, custom dimensions have become the fundamental functionality that is needed even for very beginners. If you want to track an event and include any additional text parameter, you’re basically dealing with custom dimensions.

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

But if you are using Google Analytics 4 just 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.

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

 

Julius Fedorovicius
In Google Analytics Tips
39 COMMENTS
Jess
  • Dec 9 2020
  • Reply

Thanks Julius, super clear and helpful.

Neto Braz
  • Dec 11 2020
  • Reply

Hi Julius,

Great article! Thanks for the clear explanations and instructions.

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

Ludwig Laborda
  • Feb 25 2021
  • Reply

I almost spit out the water when read this:

"P.S. If you are already familiar with Universal Analytics custom dimensions, here’s a spoiler alert. Many things have changed."

Haven't finished the article yet. I just wanted to comment this one. Hope I can come back and edit this. Otherwise, I will add another comment :D

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 :)

Mariona
  • Sep 1 2021
  • Reply

Hi Julius,

I recently used your guide to create a new custom dimension (utm_term). It is a parameter that we implemented on a campaign URL on May 21, and we wanted to get some insights on Conversion report but I'm not sure this data will be displayed. Do new custom dimensions apply retrospectively? Thanks in advance!

Satabdi Patra
  • Oct 25 2021
  • Reply

Hi Julius,

I am tracking simple navigation menu clicks, button clicks, form submission etc through GTM, but for 2 websites streams. I want to create custom dimension for the above events. So if I want to create custom dimension for Navigation Menu clicks (Text, Page, Url- all 3) for both websites, should I keep the same event parameter name in GTM while creating a tag?
Thank you in advance.

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

Qianlin
  • Feb 18 2022
  • Reply

Hi Julius,

I am confused about adding custom dimension on all pages via GTM. I can't find the answer anywhere else. Hopefully you can help.

I have a custom dimension called login_status. It's from the data layer I have on all pages. In GTM. I added it under Fields to Set in GA4 Config tag, which is fired on all pages. I have also registered this custom dimension as an event-scoped dimension in GA4.

The value of the login_status is either true or false. But when I checked the GA4 reports, I saw (not set). Do you know why I have (not set) in the report?

As I have a bunch of custom dimensions that I used to put in the UA config variable, I'd like to do the same in GA4. Is it right to add them in the GA4 config tag? What's the best practice here?

Appreciate!

Brendan Butler
  • Mar 23 2022
  • Reply

Hi Julius big fan,

I am trying to solve an issue that was put in place before my time. We use a Persisted Login with a pageview that is triggered on every page a person views so that we can identify the same person for their entire visit. It is not sent via GTM it is sent as a pageview though and implemented with code behind the scenes that I have not seen. The payload I can see in developer tools is this
v: 1
_v: j96
a: 1214383750
t: pageview
_s: 2
dl: https://www.medthority.com/
ul: en-gb
de: UTF-8
dt: Personalised to Support Your Treatment Decisions | Medthority
sd: 24-bit
sr: 1536x864
vp: 1519x395
je: 0
_u: SACAAEABAAAAAC~
jid:
gjid:
cid: 1059324025.1631538657
tid: UA-156806918-1
_gid: 1784434614.1647810318
cd20: 58c6bf27-e811-46cb-8af8-370661005444
cd2: Medical Reviewer
cd3: Neurology (CNS) and Pain
z: 1109527849

The CD being the most important issues. It do not think it is in the datalayer but is sent to UA on every page a person visits. I want to use the same custom dimensions in GA4. What would be the best way to do this if the data is not being sent to the datalayer or am I incorrect and it is being sent to the datalayer? Are cd2 and cd3 being sent as part of cd20 which is UserID but not the GA USERID. How do you send a CD without using the datalayer?

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

Alex
  • Apr 27 2022
  • Reply

Hi! Thank you for this tutorial. I'm having some trouble when it comes to importing my custom dimension as a variable inside of the Free Form module. I've added it as a custom dimension and I'm able to select it as an import. But when I press import, it doesn't show up under Dimensions.

Charles
  • May 20 2022
  • Reply

Julius, great work as always. I'm having trouble with the Free Form report in Explore. When I go to reports, the parameter is showing values, but when I try and run the report with "Event Name" and "Event Count" then filter by the "Event Name" by "Contains ", i don't get data. I've tried variations of Contains with Matches, RegEx, etc. Still don't get anything. Wondering if anything has changed with this filter. Thanks!

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

Chris
  • Jul 19 2022
  • Reply

Hi Julius,

Great info here. It helped a lot in my transition from UA to GA4. I'm a bit stuck now on reporting for parameters for a custom dimension. I have for instance the link text coming through, but if I filter using a regex in either Data Studio or GA4 Explorer, it won't work properly. This is the exact regex I use in Data Studio and UA to define an event label. Is there a way to filter a Custom Dimension via regex? Thanks in advance! (btw my filter is simple: regex match is "join|start". It seems the regex only works as an exact match instead of contained in a string.

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

Sebastian
  • Oct 31 2022
  • Reply

Question: what's the difference between "fields to set" and "user properties"?

Kett Panther
  • Nov 2 2022
  • Reply

Question! If I have a Data Studio report for a custom dimension, and then alter the name of an existing custom dimension in GA4, will my Data Studio report refresh with this new name, or will I manually need to update my Data Studio report?

Thanks!

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

Uda
  • Dec 15 2022
  • Reply

Hello Julius,
Merci so much for all your guides.

I need help regarding my GA4 custom dimensions. My tags are well senwith all the needeed values but all the value from my custom dims are in 'not set'.
Do you have an idea of the problem?

Thanks in advance,
Bests
Alix

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.

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
  • How to Track Gravity Forms With Google Tag Manager: Complete Guide
  • Introduction to Google Tag Manager Server-side Tagging
  • 3 Ways to Pull Data from Data Layer with Google Tag Manager
Analytics Mania - Google Tag Manager and Google Analytics Blog | Privacy Policy
Manage Cookie Settings