{"id":2357,"date":"2022-05-27T10:32:55","date_gmt":"2022-05-27T08:32:55","guid":{"rendered":"https:\/\/wearekemb.com\/?p=2357"},"modified":"2026-08-13T07:23:13","modified_gmt":"2026-08-13T07:23:13","slug":"google-analytics-4-events","status":"publish","type":"post","link":"https:\/\/wearekemb.com\/en\/google-analytics-4-events\/","title":{"rendered":"Google Analytics 4 Events"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">In the context of migrating from Universal Analytics (UA) to GA4, it is crucial to understand the different nuances between the two versions. In this article, we will explore how the event structure has changed from UA to GA4, and how to configure events in the newer version. Events can be forwarded to GA4 in two ways: By using Google Tag manager, or by creating them directly in the GA4 interface. We will also explain both methods in detail.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Changes compared to Universal Analytics<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">One of the most noticeable changes is the flexibility of GA4\u2019s new data model compared to that of its predecessor. In UA, the structure of an event was pretty much defined. You forward 4 parameters with every event, however there are some restrictions that apply<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Event category\u00a0(required)<\/li>\n\n\n\n<li>Event action\u00a0(required)<\/li>\n\n\n\n<li>Event label\u00a0(optional)<\/li>\n\n\n\n<li>Event value\u00a0(optional)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">When skimming through the events report in UA, the first parameter you would see is the event category, then you drill down all the way to the value.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">However, an event name in GA4 can be whatever you want it to be. And you can forward many more parameters that might describe the context of that event in a better way.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If we are tracking the purchase event for example you would expect a following structure<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Event name : purchase<\/li>\n\n\n\n<li>Transaction_id : \u201c9209\u201d<\/li>\n\n\n\n<li>Value: 100<\/li>\n\n\n\n<li>Currency: EUR<\/li>\n\n\n\n<li>Items: \u201cname of product\/list of products purchased\u201d<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">We will talk more about event parameters and what are some of the recommendations that Google suggests for naming conventions. For now, let\u2019s start discussing the four different event categories in GA4<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Event categories in Google Analytics 4<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In GA4, there are four event categories:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Automatically collected events<\/li>\n\n\n\n<li>Enhanced Measurement events<\/li>\n\n\n\n<li>Recommended events<\/li>\n\n\n\n<li>Custom events<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span id=\"1-automatically-collected-events\" class=\"uag-toc__heading-anchor\"><\/span>1. Automatically collected events<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><p><strong>first_visit<\/strong>. This is the first time a user visits a website or launches an app<\/p><\/li>\n\n\n\n<li><p><strong>session_start<\/strong>. When a user engages the app or website and starts a new session<\/p><\/li>\n\n\n\n<li><p><strong>user_engagement<\/strong>. This event is fired 10 seconds after the visitor has stayed on a page. But it also might periodically fire while the app is in the foreground<\/p><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span id=\"2-events-tracked-via-enhanced-measurement\" class=\"uag-toc__heading-anchor\"><\/span>2. Events tracked via Enhanced Measurement<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The introduction of<span>&nbsp;<\/span><strong><a href=\"https:\/\/wearekemb.com\/en\/enhanced-measurement-in-google-analytics-4\/\">enhanced measurement event tracking in GA4<\/a><\/strong><span>&nbsp;<\/span>is a noticeable improvement from the previous version. When enabled, GA4 will automatically track most of the events that need manual configuration in UA (Actually only pageviews are automatically tracked in UA). It was implemented to help GA4 users get as many common events tracked as possible without the need to cooperate with developers. You can access those events by going to<span>&nbsp;<\/span><strong>Admin \u2014 Property \u2014&nbsp; Data streams<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">By default, this feature is enabled and will automatically track the following events:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Page view\u00a0(event name page_view)<\/li>\n\n\n\n<li>scroll\u00a0(event name: scroll)<\/li>\n\n\n\n<li>Outbound link clicks\u00a0(event name: click with the parameter\u00a0outbound: true)<\/li>\n\n\n\n<li>Site search\u00a0(event name: view_search_results)<\/li>\n\n\n\n<li>Video Engagement\u00a0(events: video_start, video_progress, video_complete)<\/li>\n\n\n\n<li>File Download\u00a0(event name: file_download)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>page_view<\/strong>. This event is forwarded to GA4 eact time a new page loads or when the URL of the page changes without reloading the page.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>scroll<span>&nbsp;<\/span><\/strong>This event is forwarded to GA4 once per page when a visitor scrolls below the 90% threshold of the page height.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>click<span>&nbsp;<\/span><\/strong>this event is for outbound link clicks. (when a click leads the user away from the current domain). Together with this event, a bunch of other parameters are forwarded:<span>&nbsp;<\/span><em>link_classes, link_domain, link_id, link_url<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>view_search_results<span>&nbsp;<\/span><\/strong>This event will be sent to Google Analytics 4 if the page loads and the URL of the page contains a query parameter, such as<span>&nbsp;<\/span><em>q, s, search, query, keyword<\/em>. But if you want, you can include more of them, given that your internal site search uses a different parameter than the ones already setup as default (up to 10).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>video_start, video_progress, video_complete<\/strong><span>&nbsp;<\/span>Enhanced Measurement is capable of tracking interactions of embedded Youtube videos on your website and then sends those video events to GA4. However, these embedded videos should contain<span>&nbsp;<\/span><em>?enablejsapi=1<\/em><span>&nbsp;<\/span>parameter in their URL which is not always present on websites. Therefore tracking video engagements with this metric can be tricky and needs some tweaks as well. Our recommendation is to track video engagements using GTM.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>file_download<\/strong>. This event is sent to GA4 when a link is clicked and that link contains one of the following file extensions:<span>&nbsp;<\/span><em>.pdf, .xls, .xlsx, .doc, .docx, .txt, .rtf, .csv, .exe, .key, .pps, .ppt, .pptx, .7z, .pkg, .rar, .gz, .zip, .avi, .mov, .mp4, .mpe, .mpeg, .wmv, .mid, .midi, .mp3, .wav, .wma<\/em>. Technically if the link opens or downloads a file, it will be tracked<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In case you would not like to track enhanced measurements, all you have to do is switch the blue toggle off. Or if you would like to select some of those events, press on the gear icon (settings icon) choose the events you\u2019d like to track and press save.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span id=\"3-recommended-events\" class=\"uag-toc__heading-anchor\"><\/span>3. Recommended events<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Whenever you want to create and name an event (and it\u2019s parameters) check first what the first two categories provide in terms of events. If you don\u2019t find the event you want to create in there, head to the recommended events. Google has provided events that are recommended to have on your website (whether generic website events, Online sales events, or even gaming events) to check the full list click<span>&nbsp;<\/span><a href=\"https:\/\/support.google.com\/analytics\/answer\/9267735?hl=en\" rel=\"nofollow noopener\" target=\"_blank\">here<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As we have previously mentioned, the data model of GA4 is very flexible, allowing users to create and name events the way they find suitable. However, if you find an event from the recommended events section that makes sense to you and your business, configure your event using<span>&nbsp;<\/span><strong>the same naming convention<\/strong><span>&nbsp;<\/span>that GA4 provides. (e.g. if you want to track the login event on your website, GA4 recommends you create an event named<span>&nbsp;<\/span><strong>login<\/strong><span>&nbsp;<\/span>with the parameter<span>&nbsp;<\/span><strong>method<\/strong>. This helps Google to better understand your data and implement it in their machine learning capabilities (you can create a login event named logged_in, or logging_in, or any name you like. However it\u2019s better to stick to GA4\u2019s naming conventions)<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span id=\"4-custom-events\" class=\"uag-toc__heading-anchor\"><\/span>4. Custom events<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Finally, we have the last and most important event category. In our opinion we find this category to be the bread and butter of event tracking. Whenever you want to track an event that is not caught by either the automatically tracked events, enhanced measurements, or recommended events, you go for custom events. In other words, you could track a very specific event that occurs on your website that is essential for your business, but at the same time cannot be tracked by default.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The configuration of Custom events is pretty much identical to recommended events. The only difference is that you will need to come up with your own event names.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, if you want to track clicks on the menu navigation bar, the name of the event can be any of these:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>menu_click<\/li>\n\n\n\n<li>menu_item_click<\/li>\n\n\n\n<li>navigation_click<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Or anything else. Google recommends naming your event with the \u201csnake case\u201d naming convention that consists of only small letters (no capitalization) divided by an \u201c _ \u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So, following up on the menu clicks example, let\u2019s have a look at how to set a custom event that tracks a certain navigation menu item.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Example of a Custom Event in GA4: Menu Link Click (configured through GTM)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Let\u2019s take our own website as an example to explain how to configure a tag in Google Tag Manager that fires whenever a menu bar item is clicked. When you head to<span>\u00a0<\/span><a href=\"https:\/\/wearekemb.com\/\">www.wearekemb.com<\/a><span>\u00a0<\/span>you can see our navigation bar\u00a0obviously.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let\u2019s say we would like to track those menu items whenever each one of them is clicked.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let\u2019s start slowly, and define each step in the process.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><p>We know that clicks are automatically tracked with enhanced measurements, however in this specific case we want to track specific clicks that have specific \u201cidentifiers\u201d that differentiate the menu bar clicks from different clicks on your website.<\/p><\/li>\n\n\n\n<li><p>In order to pinpoint those clicks, we need to send all the possible parameters that could be forwarded with a click event in order to have a better look at what can be used to identify certain clicks. (like click classes, click ID etc\u2026<\/p><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">To do that, in our GTM container, we need to head to<span>&nbsp;<\/span><strong>variables \u2014 built in variables \u2014 Configure<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"505\" src=\"https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/variables-gtm--1024x505.webp\" alt=\"\" class=\"wp-image-20494\" srcset=\"https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/variables-gtm--1024x505.webp 1024w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/variables-gtm--300x148.webp 300w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/variables-gtm--768x378.webp 768w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/variables-gtm-.webp 1516w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><span>And make sure that all click variables are selected for them to be forwarded with every click event.<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"520\" src=\"https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/click-variables-2.webp\" alt=\"\" class=\"wp-image-20495\" srcset=\"https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/click-variables-2.webp 768w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/click-variables-2-300x203.webp 300w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><p>Then, we need to create a<span>\u00a0<\/span><strong>trigger<\/strong><span>\u00a0<\/span>with the proper conditions that will distinguish the clicks in question. In order to do that, we need to preview the GTM container to see what is happening whenever one of those menu items is clicked. After all the click variables are enabled, and before previewing, either1.<span>\u00a0<\/span><strong>refresh<\/strong><span>\u00a0<\/span>the gtm container and THEN press the<span>\u00a0<\/span><strong>preview<\/strong><span>\u00a0<\/span>button,2.<span>\u00a0<\/span><strong>publish<\/strong><span>\u00a0<\/span>the changes you have done to the workplace and then press the<span>\u00a0<\/span><strong>preview<span>\u00a0<\/span><\/strong>button (refrain from using step 2. It is much more convenient to publish the changes<span>\u00a0<\/span><strong>AFTER<\/strong><span>\u00a0<\/span>testing all of them first)<\/p><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>PS:<\/strong><span>&nbsp;<\/span>Whenever a change is made to the container you have to do one of the two steps mentioned above in order to see it in the preview mode.&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>After selecting the preview mode, one of the menu items is clicked. And that should be reflected in a \u201clink click\u201d event since it is automatically tracked.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"169\" src=\"https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/link-click-after-pressing-menu-item-Kemb-1-1024x169.webp\" alt=\"\" class=\"wp-image-20496\" srcset=\"https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/link-click-after-pressing-menu-item-Kemb-1-1024x169.webp 1024w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/link-click-after-pressing-menu-item-Kemb-1-300x50.webp 300w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/link-click-after-pressing-menu-item-Kemb-1-768x127.webp 768w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/link-click-after-pressing-menu-item-Kemb-1-1536x253.webp 1536w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/link-click-after-pressing-menu-item-Kemb-1.webp 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">And indeed we can see the link click event right there!<br>There are no tags set up yet, and this is what will be our goal in this example: To fire a GTM<span>&nbsp;<\/span><strong>tag<\/strong><span>&nbsp;<\/span>whenever a menu click event occurs.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><p>We dive deeper by looking at what are the variables that were present in this event. After clicking on variables, we see the following<\/p><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"451\" src=\"https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/variables-menu-click-1024x451.webp\" alt=\"\" class=\"wp-image-20497\" srcset=\"https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/variables-menu-click-1024x451.webp 1024w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/variables-menu-click-300x132.webp 300w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/variables-menu-click-768x338.webp 768w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/variables-menu-click.webp 1447w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>By enabling the click variables, we can notice two identifiers we can work on,<br><p><strong>1. The click class2. The click text<\/strong><\/p><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">So in other words, a menu link click on our website has this specific click class, and we can see that the menu item that was clicked was the \u201cblog\u201d item. It is stored in the variable {<strong>click text<\/strong>}<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><p>We\u2019ll try a second menu item click and see what will be pushed to the container.<\/p><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"510\" src=\"https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/variables-menu-click-2--1024x510.webp\" alt=\"\" class=\"wp-image-20498\" srcset=\"https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/variables-menu-click-2--1024x510.webp 1024w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/variables-menu-click-2--300x149.webp 300w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/variables-menu-click-2--768x383.webp 768w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/variables-menu-click-2-.webp 1317w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">We can see that the<span>&nbsp;<\/span><strong>click class<\/strong><span>&nbsp;<\/span>is the same for another menu item, and we notice that the item \u201cjobs\u201d was selected<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So we can think of it this way, the menu items in the navigation bar all have the same<span>&nbsp;<\/span><strong>click class<\/strong><span>&nbsp;<\/span>but obviously different names. So how do we know which item was<span>&nbsp;<\/span><strong>exactly clicked? And which one was clicked the most?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now comes the fun part! Let\u2019s create our tag.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">First, let\u2019s head to the trigger section in our GTM workspace and create a trigger that will fire a tag on a specific link click. After setting up the conditions, press save.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"440\" src=\"https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/menu-link-click-KEMB--1024x440.webp\" alt=\"\" class=\"wp-image-20499\" srcset=\"https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/menu-link-click-KEMB--1024x440.webp 1024w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/menu-link-click-KEMB--300x129.webp 300w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/menu-link-click-KEMB--768x330.webp 768w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/menu-link-click-KEMB-.webp 1471w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Second, after creating a trigger, let\u2019s create a tag that will fire upon the trigger we just configured, let\u2019s head to the tags section of our workspace and press NEW.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"600\" src=\"https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/menu-click-tag-1-1-1024x600-1.webp\" alt=\"\" class=\"wp-image-20500\" srcset=\"https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/menu-click-tag-1-1-1024x600-1.webp 1024w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/menu-click-tag-1-1-1024x600-1-300x176.webp 300w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/menu-click-tag-1-1-1024x600-1-768x450.webp 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><p>We create a<span>\u00a0<\/span><strong>GA4 event type<\/strong><span>\u00a0<\/span>tag because this is an<span>\u00a0<\/span><strong>event<\/strong><span>\u00a0<\/span>we would like to track<\/p><\/li>\n\n\n\n<li><p>The configuration tag should be the GA4 configuration (The measurement ID) with which you are tracking your website\u00a0 (as you can see we selected menu_click as a name for the event, and as previously mentioned it can be whatever you want it to be)<\/p><\/li>\n\n\n\n<li><p>As we saw previously, since all of the menu clicks have the same class, instead of having a tag<span>\u00a0<\/span><strong>for each individual item,<span>\u00a0<\/span><\/strong>we could have the tag we are currently configuring and<span>\u00a0<\/span><strong>forward<\/strong><span>\u00a0<\/span>with it an event parameter we will call \u201c menu_item_click\u201d that will be equal to the \u201cclick text\u201d variable.We expand the Event parameters, click add row and fill it in with<span>\u00a0<\/span><strong>menu_item_click<\/strong><span>\u00a0<\/span>as the<span>\u00a0<\/span><strong>name<\/strong><span>\u00a0<\/span>of our parameter, and by clicking on<span>\u00a0<\/span><strong>Insert Variable<span>\u00a0<\/span><\/strong>button we assign the value of the parameter<span>\u00a0<\/span><strong>as<\/strong><span>\u00a0<\/span><strong>{Click Text}.<br><\/strong>Event parameters are meant to more clearly describe the context of the event (in our case, it will give us an idea of<span>\u00a0<\/span><strong>which menu item was clicked<\/strong>). We will see how they are forwarded and seen in the GA4 interface later in the article)<\/p><\/li>\n\n\n\n<li><p>This is the trigger we previously configured, (when a click that has the click class we specified, it will fire the tag we just created)<\/p><\/li>\n\n\n\n<li><p>Finally, we press save, and refresh the container so that we can see our changes in the next preview.<\/p><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Now let\u2019s check if the tag we configured is properly firing. We do the previous steps done before, and we should see a tag firing whenever I press a menu link.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"218\" src=\"https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/tag-firing-1-1024x218-1.webp\" alt=\"\" class=\"wp-image-20501\" srcset=\"https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/tag-firing-1-1024x218-1.webp 1024w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/tag-firing-1-1024x218-1-300x64.webp 300w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/tag-firing-1-1024x218-1-768x164.webp 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">And there we have it!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now, we need to move to Google Analytics 4 to check the DebugView in order to test what we have configured. Let\u2019s head to the<span>\u00a0<\/span><strong>Configure<span>\u00a0<\/span><\/strong>section and press on<span>\u00a0<\/span><strong>DebugView<\/strong>. This is where the debugging happens. Remember, GTM preview shows you which tags are being fired, and in Debug mode you get to see if what you have configured in those tags is being<span>\u00a0<\/span><strong>properly<\/strong><span>\u00a0<\/span>forwarded to GA4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There are many ways to enable debug mode in GA4.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><p>Enabling GTM\u2019s preview mode will automatically set the debug_mode in GA4 to true<\/p><\/li>\n\n\n\n<li><p>Forwarding debug_mode parameter with the GA4 configuration tag or with any event you wish to see in the<span>\u00a0<\/span><strong>DebugView<\/strong><\/p><\/li>\n\n\n\n<li><p>Enabling the GA debugger extension on your chrome browser<\/p><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Following on our example, we will proceed with the first option<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So if you enter the<span>&nbsp;<\/span><strong>DebugView<\/strong><span>&nbsp;<\/span>without initiating the preview mode, this is what you will see.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"497\" src=\"https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/no-device-connected-1-1024x497-1.webp\" alt=\"\" class=\"wp-image-20502\" srcset=\"https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/no-device-connected-1-1024x497-1.webp 1024w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/no-device-connected-1-1024x497-1-300x146.webp 300w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/no-device-connected-1-1024x497-1-768x373.webp 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><span>When you enable the preview mode you will be redirected to the following window<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"606\" height=\"494\" src=\"https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/tag-assistant.webp\" alt=\"\" class=\"wp-image-20503\" srcset=\"https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/tag-assistant.webp 606w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/tag-assistant-300x245.webp 300w\" sizes=\"auto, (max-width: 606px) 100vw, 606px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">This is where you insert your website\u2019s URL, and connect to it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Tip<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Before enabling the preview mode in Google tag manager, make sure to install the Google tag assistant extension on your browser. It will facilitate the debugging process&nbsp;When you want to connect to your website, a new<span>&nbsp;<\/span><strong>tab<\/strong><span>&nbsp;<\/span>will be opened (and not a window, making it more convenient for work)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You will see the confirmation from the extension, that the connection was indeed successful<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After connecting to our website, we clicked on menu items and viewed the pages, we then headed to the<span>&nbsp;<\/span><strong>DebugView<\/strong><span>&nbsp;<\/span>in GA4 and this is what we saw.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"564\" src=\"https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/debugview-with-events-2-1024x564-1.webp\" alt=\"\" class=\"wp-image-20504\" srcset=\"https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/debugview-with-events-2-1024x564-1.webp 1024w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/debugview-with-events-2-1024x564-1-300x165.webp 300w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/debugview-with-events-2-1024x564-1-768x423.webp 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Pretty cool, right? This is where we will see all of the events happening in \u201calmost\u201dreal time. (Sometimes there might be a delay between doing certain actions on your website and seeing them in GA4.)<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><p>We see that we have<span>\u00a0<\/span><strong>one<\/strong><span>\u00a0<\/span>\u201cDebug Device\u201d connected (in contrast to 0 in the previous picture). So the connection was indeed successful. You might see more than one device connected if someone in your team also has a debugview opened for example, the number of devices connected will be<span>\u00a0<\/span><strong>2<\/strong>.<\/p><\/li>\n\n\n\n<li><p>After clicking on the website, we can see that those menu item clicks were indeed forwarded to GA4. When you click on any event in the<span>\u00a0<\/span><strong>DebugView<\/strong><span>\u00a0<\/span>you will be able to know more details about it.<\/p><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"913\" height=\"740\" src=\"https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/menu-item-1-edited-1.webp\" alt=\"\" class=\"wp-image-20505\" srcset=\"https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/menu-item-1-edited-1.webp 913w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/menu-item-1-edited-1-300x243.webp 300w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/menu-item-1-edited-1-768x622.webp 768w\" sizes=\"auto, (max-width: 913px) 100vw, 913px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"852\" height=\"732\" src=\"https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/menu-item-2-edited-1.webp\" alt=\"\" class=\"wp-image-20506\" srcset=\"https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/menu-item-2-edited-1.webp 852w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/menu-item-2-edited-1-300x258.webp 300w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/menu-item-2-edited-1-768x660.webp 768w\" sizes=\"auto, (max-width: 852px) 100vw, 852px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">For both menu item clicks, we notice that among the automatically forwarded parameters,&nbsp; the event parameter we configured earlier with the menu_click event is being properly sent to GA4 showing different menu items. First one was the Jobs item, second one was the Blog item.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">However we are not done just yet!<br>Even if you still see those custom parameters here in the debugview, you will not be able to use them in your GA4 reports<span>&nbsp;<\/span><strong>unless<\/strong><span>&nbsp;<\/span>you configure those parameters<strong><span>&nbsp;<\/span>as custom dimensions<\/strong>. By doing so, you can then use this custom dimension as a secondary dimension in your GA4 reports, or as primary dimensions in explorations reports.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let\u2019s get to it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In your GA4 interface, head to the<span>&nbsp;<\/span><strong><em>Configure<\/em><\/strong><span>&nbsp;<\/span>section<span>&nbsp;<\/span><strong><em>\u2014<\/em><\/strong><span>&nbsp;<\/span><strong><em>Custom Definitions \u2014 Create custom dimensions<\/em><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"259\" src=\"https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/custom-definitions-1-1024x259-1.webp\" alt=\"\" class=\"wp-image-20507\" srcset=\"https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/custom-definitions-1-1024x259-1.webp 1024w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/custom-definitions-1-1024x259-1-300x76.webp 300w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/custom-definitions-1-1024x259-1-768x194.webp 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"897\" height=\"487\" src=\"https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/custom-dimension-1-1.webp\" alt=\"\" class=\"wp-image-20508\" srcset=\"https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/custom-dimension-1-1.webp 897w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/custom-dimension-1-1-300x163.webp 300w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/custom-dimension-1-1-768x417.webp 768w\" sizes=\"auto, (max-width: 897px) 100vw, 897px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><p>Dimension name can be whatever you want. This is the name that will appear in your reports. For this example, we named it<span>\u00a0<\/span><strong>Menu Item name<\/strong><\/p><\/li>\n\n\n\n<li><p>Since we are dealing with a single event, and not every event by done the same user (you have two scopes, event and user) we select the<span>\u00a0<\/span><strong>event<span>\u00a0<\/span><\/strong>scope<\/p><\/li>\n\n\n\n<li><p>This step is optional, however recommended for better understanding<\/p><\/li>\n\n\n\n<li><p>If you remember, we have set up a specific name for the parameter we forwarded. In order to view it as a custom dimension in GA4, the name of the parameter should be<span>\u00a0<\/span><strong>exactly the same<\/strong><span>\u00a0<\/span>as configured.<strong>PS:<span>\u00a0<\/span><\/strong>You can see that we didn\u2019t write the entire name of the event. GA4 directly recognized the parameter in question in the dropdown menu.<span>\u00a0<\/span><strong>However<\/strong><span>\u00a0<\/span>don\u2019t worry if you don\u2019t see it in the dropdown menu. Sometimes GA4 takes up to 24 hours to register the custom parameter.<\/p><\/li>\n\n\n\n<li><p>Finally, you press save and as mentioned, the custom dimension might take up to 24 hours to appear in reports<\/p><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Now that we have configured a custom event in GTM, let\u2019s create new events in the GA4 interface.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Creating events in the GA4 interface<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For this section, let\u2019s try to create a different event.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Say that we want to track the (that has a specific URL like https:\/\/www.website.com\/thank-you\/ ) that appears after a visitor signs up to your newsletter. You can do that through GTM obviously, however for this example, we will configure the event directly from your GA4 interface.Head to<span>&nbsp;<\/span><strong><em>Configure \u2014 Events \u2014 Create event<\/em><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"474\" src=\"https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/create-event-1-1-1024x474-1.webp\" alt=\"\" class=\"wp-image-20509\" srcset=\"https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/create-event-1-1-1024x474-1.webp 1024w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/create-event-1-1-1024x474-1-300x139.webp 300w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/create-event-1-1-1024x474-1-768x356.webp 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><span>You will be redirected to the following page.<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"540\" src=\"https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/create-ga4-event-1-1-1024x540-1.webp\" alt=\"\" class=\"wp-image-20510\" srcset=\"https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/create-ga4-event-1-1-1024x540-1.webp 1024w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/create-ga4-event-1-1-1024x540-1-300x158.webp 300w, https:\/\/wearekemb.com\/wp-content\/uploads\/2022\/05\/create-ga4-event-1-1-1024x540-1-768x405.webp 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">You can see that the structure is quite similar to the one we saw in Google Tag Manager. Basically in GTM we set up triggers that will fire a<span>&nbsp;<\/span><strong>tag that will track the event and forward it by choosing GA4 as the configuration of your tag.<span>&nbsp;<\/span><\/strong>Here however,since we are creating the event directly in GA4, we just have to identify<span>&nbsp;<\/span><strong>triggers<\/strong><span>&nbsp;<\/span>or matching conditions that will create an event.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let\u2019s go over what we have filled in<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><p>The event name. As previously mentioned in this article, this is completely up to you but it is better to stick to the \u201csnake case\u201d naming convention.<\/p><\/li>\n\n\n\n<li><p>The first matching condition. So remember, we want to track the thank you page. So we first want to track the<span>\u00a0<\/span><strong>pageview<\/strong><span>\u00a0<\/span>itself. Therefore we want the<span>\u00a0<\/span><strong>event name<span>\u00a0<\/span><\/strong>to be equal to<span>\u00a0<\/span><strong>page_view<\/strong><span>\u00a0<\/span>because that\u2019s the name GA4 reserves and uses for this event. (Check the previous screenshots of the<span>\u00a0<\/span><strong>DebugView<span>\u00a0<\/span><\/strong>\u00a0and see how the pageview event is sent)<\/p><\/li>\n\n\n\n<li><p>The second matching condition.<span>\u00a0<\/span><strong>Which pageview do you exactly want to track?<\/strong><span>\u00a0<\/span>For that reason, we specify that the page location (or URL) should contain this \u201cidentifier\u201d which in our case is the \u201c\/thank-you\/ parameter<\/p><\/li>\n\n\n\n<li><p>If you want to copy all the parameters from the\u00a0<em>page_view<\/em>\u00a0event to the new event, keep the checkbox\u00a0<em>Copy parameters from the source event<\/em>\u00a0enabled.<\/p><\/li>\n\n\n\n<li><p>When you are done configuring the event, press Creat.<\/p><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">And there you have it! you have just configured an event directly in the GA4 interface.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now, if we want to configure this event as a<span>&nbsp;<\/span><strong>conversion<\/strong>, all we have to do is switch the \u201cmark as conversion\u201d toggle to on and<span>&nbsp;<\/span><strong>from that moment<\/strong>, GA4 will register this event as a<span>&nbsp;<\/span><strong>conversion<\/strong>.<br>Pretty easy right? and much better than configuring goals in UA<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Closing notes<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This was a lengthy article! However, we hope we have provided you with valuable information and a clear explanation of how to configure events in GA4. Let\u2019s summarize what we have discussed in this article, and add to it some of the limitations that you should know in GA4.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><p>Whenever you want to create an event, start by<span>\u00a0<\/span><strong>gradually<\/strong><span>\u00a0<\/span>checking the first 3 categories we discussed (automatically tracked events, enhanced measurments, and recommended events) and if none of those categories (especially the recommended events) contains the event that you want, then you must create a custom event<\/p><\/li>\n\n\n\n<li><p>There are two ways of configuring events and forwarding them to GA4, either configure a GTM tag that will fire upon a trigger and will forward the event, or create the event directly in the GA4 interface<\/p><\/li>\n\n\n\n<li><p>Remember to register your custom parameter as a<span>\u00a0<\/span><strong>custom dimension<span>\u00a0<\/span><\/strong>in GA4 if you would like to use this parameter in your reports.<\/p><\/li>\n\n\n\n<li><p>To test your tracking setup, head to the<span>\u00a0<\/span><strong>DebugView<\/strong><span>\u00a0<\/span>section in GA4, (after enabling preview mode in GTM) and check whether all the events and parameters are being properly forwarded.<\/p><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><span>Limitations you should know<\/span><\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You can forward up to 25 parameters with an event<\/li>\n\n\n\n<li>There is a limit of 50 custom dimensions, and 50 custom metrics per property.<\/li>\n\n\n\n<li>You can have up to 500 unique events property.<br><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>In this article, we highlight the different event types in GA4 and explore how to create events in Google Analytics 4 and in Google Tag Manager<\/p>\n","protected":false},"author":4,"featured_media":19147,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"content-type":"","footnotes":""},"categories":[65,62],"tags":[47,61],"class_list":["post-2357","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-reporting-en","category-digital-marketing-en","tag-google-analytics","tag-how-to-2"],"_links":{"self":[{"href":"https:\/\/wearekemb.com\/en\/wp-json\/wp\/v2\/posts\/2357","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wearekemb.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wearekemb.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wearekemb.com\/en\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/wearekemb.com\/en\/wp-json\/wp\/v2\/comments?post=2357"}],"version-history":[{"count":4,"href":"https:\/\/wearekemb.com\/en\/wp-json\/wp\/v2\/posts\/2357\/revisions"}],"predecessor-version":[{"id":20511,"href":"https:\/\/wearekemb.com\/en\/wp-json\/wp\/v2\/posts\/2357\/revisions\/20511"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wearekemb.com\/en\/wp-json\/wp\/v2\/media\/19147"}],"wp:attachment":[{"href":"https:\/\/wearekemb.com\/en\/wp-json\/wp\/v2\/media?parent=2357"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wearekemb.com\/en\/wp-json\/wp\/v2\/categories?post=2357"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wearekemb.com\/en\/wp-json\/wp\/v2\/tags?post=2357"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}