So you’ve dipped your toes into Google Analytics 4 (GA4), and want to introduce custom Event tracking to your reports, smart choice! While GA4 does a decent job of automatically collecting some basic events (like page_view when someone visits a page, or scroll when they scroll down), to truly get a handle on what people are doing on your site, you’ll almost certainly need to set up your own custom events. These custom events are tailored to the specific actions that reflect your unique goals, whether it’s getting someone to download a resource, sign up for a newsletter, or interact with a specific tool on your site. This is where Google Tag Manager (GTM) steps in as your invaluable assistant.
What is Google Tag Manager and why do you need it for GA4 events?
Google Tag Manager (“GTM”) is like a central control panel for all the tracking codes on your website. Instead of directly adding complex bits of code to your website’s backend every time you want to track something new (which often requires a developer and can be prone to errors), you simply tell GTM what you want to track. GTM then handles the dirty work of inserting the necessary code onto your site for you.
This means you can manage all your GA4 event tracking, and even other marketing tags (like Facebook pixels or LinkedIn Insights tags), without constantly needing a developer to make changes to your website’s actual code. This makes the whole process much faster, more flexible, and less likely to break things.
Here’s why GTM is such a smart move for your GA4 events:
- Flexibility and control: GTM empowers you to define exactly what actions you want to track and precisely when those tracking signals (events) should be sent to GA4. Do you want to know every time someone clicks on a specific call-to-action button? Or perhaps when they complete a multi-step survey? GTM gives you the tools to capture clicks on particular elements, successful form submissions, video plays, how far down a page someone scrolls, and really, anything else that indicates meaningful user interaction with your content.
- Boost speed and agility: Imagine your marketing team comes up with a brilliant new campaign, and they need to track a brand new interaction on your website yesterday. If you had to wait for a developer to manually add code to your website, it could take days. With GTM, once it’s set up, changes to your tracking can be made and published almost instantly with just a few clicks. This allows you to react quickly to new marketing initiatives, test different elements, or capture new insights as soon as you need them, without any significant delays.
- Prevent costly errors: Messing with website code directly can sometimes lead to broken pages or inaccurate data if you make a mistake. GTM has a fantastic feature called “Preview Mode” and a robust debugging console. This allows you to thoroughly test your new event setups before they go live to the public. You can browse your website as a user and see exactly if your new event tags are firing correctly, ensuring that the event names and any extra information (parameters) are exactly as you expect. This helps catch errors early, preventing bad data from polluting your GA4 reports.
Setting up Google Analytics 4 (GA4) events with Google Tag Manager (GTM)
While the actual setup can get a bit technical depending on what you’re tracking (some events are simpler than others!), here’s a simplified breakdown of the general steps involved. This will give you a clear roadmap to bringing your custom GA4 events to life using GTM.
Step 1: Identify your key actions (the “what”)
The very first step happens outside of GA4 or GTM. Sit down with your team and make a clear, prioritised list of every single action on your website or app that provides valuable insight into user behaviour or signals a key moment. These are the specific actions you want to track as events.
- Be specific. So, instead of just “click”, think more specifically like “clicked the homepage call to action”, “filled in the form on our contact page”.
- Decide on a naming convention and stick to it (e.g., all form submissions start with
form_submit_). This makes your data much easier to understand later.
Step 2: Enable built-in variables in GTM (the “what type of action”)
When you create a new GTM container, many useful variables (which are like placeholders for dynamic information) aren’t active by default. You’ll need to enable these to capture information like what text was clicked, what page a user was on, or the ID of a button.
- In your GTM workspace, go to Variables in the left-hand navigation.
- Under the “Built-In Variables” section, click the “Configure” button.
- You’ll see a long list of checkboxes. Tick the boxes for variables that might be useful for your tracking goals. For common event tracking, it’s a good idea to enable:
- Under “Clicks”:
Click Element,Click ID,Click Classes,Click Target,Click Text,Click URL. - Under “Forms”:
Form Element,Form Classes,Form ID,Form Text,Form Method,Form Target,Form URL. - Under “Pages”:
Page Hostname,Page Path,Page URL. - Under “Utilities”:
Container ID,Container Version.
- Under “Clicks”:
Enabling these variables now will make it much easier when you define your triggers and event parameters later.

Step 3: Define your trigger (the “what action exactly”)
Every event tag needs a Trigger in GTM. This is the “when does this happen?” part – the condition that tells your event tag exactly when it should activate and send data to GA4. This is arguably the most crucial part of event setup. Now, if you try and set this up now, you’ll notice you come across a barrier. It will ask for variables to define your trigger. However, you don’t know that. So let’s go find out variables to define our trigger!
Find variables for your triggers
- Go to “Preview” at the top right of your screen
- Type in the URL of the page your trigger will take place (e.g. if we want to track a homepage CTA, we’ll go to our homepage).
- Click “Connect”
- Take the action you want to track (e.g. if you want to track a CTA click, click the CTA… If you want to track a form submission, submit that form)
- On t he left of your Google Tag Manager preview mode, you will see your click or form submit show up. Click into it and then go to “Variables” along the top.
- Find an identifier e.g. Click Text, Form Classes… Whichever you chose, make it unique! In the case below, I will take note of “TALK TO THE EXPERTS” as Click Text.

Set up your trigger
- Click “Triggering” within your GA4 Event tag.
- Click the “+” icon to create a new trigger.
- Choose a trigger type: GTM offers various trigger types:
- Pageview: Useful if an event happens when a specific page loads (e.g., a “thank you” page after a form submission).
- Click: Perfect for tracking button clicks, link clicks, or clicks on any element on your page. You can make them specific by looking for certain text, IDs, or CSS classes of the clicked element.
- Form submission: Can track when forms are submitted (though this can sometimes be tricky depending on how your website’s forms are built).
- Element visibility: When a user scrolls to or sees a specific part of your page (e.g., a critical paragraph or image).
- YouTube video: For tracking interactions with embedded YouTube videos (play, pause, complete).
- Scroll depth: To see how far down a page users scroll.
- Custom event: For advanced situations where your website’s developers are sending specific signals to GTM.
- Set your trigger conditions: Once you’ve chosen a trigger type, you’ll define the precise conditions for it to fire.
- Example for a “Download Brochure” button: You might choose a “Click – All Elements” trigger and then specify “Some Clicks” where “Click Text contains ‘Download Brochure'” or “Click ID equals ‘download-button-id'”.
- Example for a “Contact Form Submission” (via a thank you page): You’d choose a “Page View” trigger and specify “Some Page Views” where “Page Path equals
/thank-you-for-contacting-us/“.

Step 4: Create your GA4 tag (the “where to send it”)
Now that you have a trigger telling GTM when to send an event, you’ll create the actual tag that sends the data to GA4.
- Go to Tags in your GTM workspace and click “New.”
- Choose “Tag Configuration.”
- Select “Google Analytics: GA4 Event.” This is the specific type of tag that sends event data to GA4.
- Connect to your GA4 configuration tag: You’ll need to pop your GA4 Measurement ID into your tag, you can grab this in GA4 under Admin > Data Streams then click into your data stream. This is crucial because it tells the event tag where to send the data.
- Give your event a name: In the “Event Name” field, type the exact name you decided on in Step 1 (e.g.,
newsletter_signup_success). Note: this will be the name that shows in your GA4 for that event so keep it neat and tidy! - Attach your trigger: Click on the “Triggering” section below your Tag Configuration. Now, select the trigger you created in Step 3 (e.g., “Click – Download Brochure Button”). This tells GTM that this specific tag should fire when that specific trigger condition is met.
- Give your Tag a Clear Name: (e.g., “GA4 Event – Download Brochure Click”). Save your tag.

Step 5: Test with GTM’s preview mode
Before you make any changes live to your actual website, this step is absolutely essential.
- Click the “Preview” button in the top right corner of your GTM workspace.
- A new browser tab will open, showing you the GTM debug console. You’ll also be prompted to enter your website’s URL.
- Browse your website as a user. As you navigate and interact with your site, the GTM debug console will show you exactly which tags are firing (or not firing) and which events are being sent.
- Verify everything: Check that your new event tags are firing exactly when they should, that the event names are correct, and crucially, that all those valuable parameters are being collected accurately. This step is your safety net against bad data polluting your GA4 reports!
Step 6: Publish your GTM Container (Go Live!)
Once you’re completely confident that everything is working perfectly in Preview Mode, and you’ve addressed any issues, you’ll go back to your GTM workspace.
- Click the “Submit” button (or “Publish” in some versions) in the top right corner.
- You’ll be asked to add a “Version Name” and “Version Description” (e.g., “Added contact form tracking,” “Launched new email signup event”). This is good practice for keeping track of your changes.
- Click “Publish” again to confirm.
This makes your new event tracking configurations live on your public website, and GA4 will immediately start collecting the new event data.
Step 7: Mark as key events in GA4
Finally, once these new custom events are flowing into your GA4 property (which you can quickly check in the GA4 Real-time reports), you need to tell GA4 that these specific events are important for your business goals. Key events will be events that match your core KPIs e.g. form submissions, lead acquisition, etc. Other events may be less important but still valuable knowledge for engagement e.g. video plays, downloads and pageviews.
- Head into your GA4.
- Go to Admin (the gear icon typically found in the bottom left corner).
- In the “Property” column, look under “Data display” and click on Events.
- Find your important event (e.g.,
newsletter_signup_successorcontact_form_submit) in the list. - Simply toggle the “Mark as key event” with the star.
That’s it! By marking an event as a conversion, you tell GA4 to highlight it in your conversion reports, making it easier to see how often these crucial actions occur and how different channels contribute to them.
Wrapping up
Setting up events in GA4 using Google Tag Manager might seem like a lot of steps at first, but it’s a skill that pays off immensely. It gives you precise control over what data you collect, helping you move beyond just “website visits” to truly understanding how users interact with your content and achieve the goals you set for your site. Take it one step at a time, use that Preview Mode like a pro, and you’ll soon be unlocking deeper insights into your website’s performance.