Tracking a Button Click in Google Tag Manager Shouldn't Be This Hard

February 1, 2026 Admin
Tracking a Button Click in Google Tag Manager Shouldn't Be This Hard

You need to track a button click. One button. One click. This is the most basic thing Google Tag Manager exists to do.

It took you 3 hours. It might still be broken.


Let's Walk Through It. Together.

You open GTM. You need to add a click tracker. Simple enough. You've done this before. Maybe. Let's see how it goes.

Step one: Which trigger? GTM gives you options. Click ID. Click Classes. Click Text. Click URL. Click Target. Click Element. You're supposed to know which one applies to your button. You don't. Nobody told you. The GTM documentation assumes you already understand DOM structure. You don't. That's fine. Let's keep going.

Step two: What's a CSS selector? You picked Click Classes because someone on Stack Overflow said to. Now you need to know what class your button has. So you right-click, inspect element, and stare at a wall of code you didn't write and don't understand. You're looking for something that identifies this specific button. The class you find is called something like "btn btn-primary cta-main." Sounds specific enough. It's not. It's on 40 elements across your site. But you don't know that yet.

Step three: The selector doesn't work. You set up the trigger with that class. You go to preview. You click the button. Nothing fires. You go back. You change the selector. You try again. Nothing. You try a different approach. Still nothing. You've now spent 45 minutes on step one.

Step four: Click Classes fires everywhere. You finally get it to fire. Congratulations. It also fires on every other button on the page that shares that class. You didn't want that. Now you need to add conditions to limit it. Which brings you to...

Step five: Click ID is missing. The cleanest way to target one specific button is by its ID. Your button doesn't have one. IDs are something developers add. Your button doesn't have one because nobody thought a marketer would need to target it individually. So you can't use Click ID. Back to conditions.

Step six: Add conditions. Now it's broken. You stack conditions trying to isolate your button. Click Classes contains "cta-main" AND Click Text contains "Sign Up." It works. On this page. In this browser. Right now. You move on, slightly terrified.

Step seven: Preview works. You click the button in preview mode. The tag fires. You feel something close to relief. You screenshot it. You think you're done. You are not done.

Step eight: Different page. Broken. The same button exists on your homepage, your pricing page, and three landing pages. You test the homepage. Nothing fires. The class is different there. The structure is different. The conditions you built don't match. You're back at step one, but now it's page two of four.


This Is a Button Click.

One button. One click. The simplest possible tracking event a marketer could ever need.

And GTM turned it into a multi-day debugging exercise that requires you to understand CSS selectors, DOM structure, trigger conditions, and how your developer names HTML elements. None of which is a marketer's job. All of which GTM makes your job.

The gap between what you need to do and what GTM makes you do is not a learning curve. It is not a skill gap. GTM makes easy things hard by design. The tool was built to handle complex, enterprise-scale deployments. It was not built for "I just need to track this button."

GTM solves for edge cases. The common case, tracking a single button click, is somehow not one of them. And when GTM button click not working is your search query at 2pm on a Wednesday, the tutorials all assume you already speak the language. You don't. Nobody taught you. GTM didn't teach you. It just handed you a trigger menu and walked away.


The Conversation You Can't Have

Your stakeholder pings you. "Hey, can we track clicks on that new CTA? Shouldn't be hard."

You spend 3 hours on it. It's still broken on page two. You can't explain why without sounding like you don't know what you're doing. "Well, the CSS selector doesn't match the class structure on the other landing page" is not a sentence that lands well in Slack.

So you either deliver it late and look slow, or you deliver it broken and look incompetent. The tool put you there. Not you.

A click trigger that doesn't work isn't a sign you're bad at your job. It's a sign you're using a tool that was never designed to make this easy. You're forced to think like a developer to do a marketer's job. And GTM will never, at any point, acknowledge that this is unreasonable.


This is what tracking a button click looks like in GTM. Every time. For every marketer.


There's a faster way. See how Tag Companion does it!

Share this article

Help others discover this content

Related Articles

Configure Google Tag Manager Triggers by Pointing and Clicking (Seriously)
Dec 26, 2025
Configure Google Tag Manager Triggers by Pointing and Clicking (Seriously)

Stop writing CSS selectors. Stop asking developers for help. Stop spending hours setting up basic click tracking. Tag C...

Read More
AJAX Form Tracking That Actually Works - Without Touching Code in Google Tag Manager
Dec 26, 2025
AJAX Form Tracking That Actually Works - Without Touching Code in Google Tag Manager

AJAX form submissions don't reload the page. That's great for user experience. Terrible for tracking. Google Tag Manage...

Read More
Track Element Visibility in Google Tag Manager Without Writing a Single CSS Selector
Dec 25, 2025
Track Element Visibility in Google Tag Manager Without Writing a Single CSS Selector

Element visibility tracking is one of the most powerful analytics capabilities. But there's a problem: setting it up in ...

Read More

Ready to Simplify Your GTM Workflow?

Stop writing CSS selectors. Start tracking conversions in minutes.

Try Tag Companion Free Get Started Free