
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
- PART II: The setup of custom dimensions + reports
- 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.

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.

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.
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.
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.
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.
42 COMMENTS
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,
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.
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
"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?
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.
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 :)
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.
Difficult to tell without doing an audit of the setup
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
Custom dimensions are for *custom data*. Transaction id is not custom data. You don't need custom dimension for that
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.
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
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?
To view events in the interface, I use Article Type
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
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.
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?
That is not the case for Google Data Studio
Do you have an article or post for how to use event parameters in Looker Studio?
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'
That will not break
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.
You can use the same parameter name in different events
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.
You create the dimension once (e.g. for "element_name") and then you use that parameter in multiple events. That's pretty much it.
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}}
That is not a problem. Values of custom dimensions can be different for every event.
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?
UTM parameters are added by editing the URL of the page/link.
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
no, you probably misconfigured something.
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 ?
Custom dimensions can be applied to page_views just fine. Add the parameter to the config tag
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!
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.
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?
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.
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?
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?
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.
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.
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.