
QA checklist for verifying GA4, Meta Pixel, and GTM tracking on your funnel — test procedures, debugging tools, and common failure points.
TL;DR: Before you spend a dollar on ads, verify every tracking event fires correctly on every funnel page. This checklist walks you through testing GA4 events, Meta Pixel events, and GTM container setup using Realtime reports, Pixel Helper, and GTM Preview mode. If any event is missing or misfiring, you will find it here.
You installed GA4. You added the Meta Pixel. You set up Google Tag Manager. Everything looks right in the settings.
But is it actually working?
The most expensive tracking mistake is not a broken pixel -- it is a pixel you think is working but is not. You launch ads, spend $500, and then discover that your "Lead" event was firing on page load instead of form submission. Now your ad data is garbage, your cost-per-lead is fictional, and you have no idea what is actually converting.
This checklist catches those problems before you launch. Run through it once per funnel, and again whenever you change a page, event, or tag.
Install these before starting:
<style>.cf-tbl-1{width:100%;border-collapse:separate;border-spacing:0;border-radius:12px;overflow:hidden;box-shadow:0 4px 15px rgba(0,0,0,0.08);font-family:system-ui,-apple-system,sans-serif;margin:2rem 0}.cf-tbl-1 thead tr{background:#1a1a2e}.cf-tbl-1 thead th{color:#fff;text-transform:uppercase;font-size:0.75rem;letter-spacing:0.05em;padding:14px 18px;text-align:left;font-weight:600}.cf-tbl-1 tbody tr{transition:background 0.15s}.cf-tbl-1 tbody tr:hover{background:#f8f9fa}.cf-tbl-1 tbody td{padding:12px 18px;border-bottom:1px solid #e9ecef;font-size:0.92rem}.cf-tbl-1 tbody tr:last-child td{border-bottom:none}.cf-tbl-1 tbody tr:nth-child(6n+1) td:first-child{border-left:3px solid #6366f1}.cf-tbl-1 tbody tr:nth-child(6n+2) td:first-child{border-left:3px solid #f59e0b}.cf-tbl-1 tbody tr:nth-child(6n+3) td:first-child{border-left:3px solid #10b981}.cf-tbl-1 tbody tr:nth-child(6n+4) td:first-child{border-left:3px solid #ec4899}.cf-tbl-1 tbody tr:nth-child(6n+5) td:first-child{border-left:3px solid #8b5cf6}.cf-tbl-1 tbody tr:nth-child(6n+6) td:first-child{border-left:3px solid #06b6d4}@media(max-width:540px){.cf-tbl-1,.cf-tbl-1 thead,.cf-tbl-1 tbody,.cf-tbl-1 tr,.cf-tbl-1 td,.cf-tbl-1 th{display:block}.cf-tbl-1 thead tr{position:absolute;top:-9999px;left:-9999px}.cf-tbl-1 tbody td{padding-left:50%;position:relative;border-bottom:1px solid #eee}.cf-tbl-1 tbody td:before{content:attr(data-label);position:absolute;left:18px;font-weight:600;text-transform:uppercase;font-size:0.7rem;color:#666}}</style><table class="cf-tbl-1"><thead><tr><th>Tool</th><th>What It Does</th><th>Where to Get It</th></tr></thead><tbody><tr><td data-label="Tool">GA4 Realtime Report</td><td data-label="What It Does">Shows events as they fire in real time</td><td data-label="Where to Get It">Built into GA4 (Reports > Realtime)</td></tr><tr><td data-label="Tool">Meta Pixel Helper</td><td data-label="What It Does">Chrome extension that shows pixel events on any page</td><td data-label="Where to Get It">Chrome Web Store (search "Meta Pixel Helper")</td></tr><tr><td data-label="Tool">GTM Preview Mode</td><td data-label="What It Does">Debug mode that shows which tags fire and when</td><td data-label="Where to Get It">Built into Google Tag Manager</td></tr><tr><td data-label="Tool">Meta Events Manager - Test Events</td><td data-label="What It Does">Shows server and browser events with deduplication status</td><td data-label="Where to Get It">business.facebook.com/events_manager</td></tr></tbody></table>
Before checking individual events, make sure your GTM container is loading on every page.
If GTM is not loading on a page: Check that the GTM container code is installed in the page's `<head>` section in ClickFunnels. Each page must have the container code -- it does not inherit from other pages.
Opt-In Page:
Form Submission (fill out the form with a test email):
Thank-You Page:
Booking Page:
Opt-In Page:
Form Submission:
Thank-You Page:
Booking Page:
`https://yourdomain.com/ai-readiness-scorecard?utmsource=test&utmmedium=qa&utm_campaign=tracking-check`
If UTMs are not showing: Make sure your form submission redirects to the thank-you page via server-side redirect, not a JavaScript redirect that strips the URL parameters.
<style>.cf-tbl-2{width:100%;border-collapse:separate;border-spacing:0;border-radius:12px;overflow:hidden;box-shadow:0 4px 15px rgba(0,0,0,0.08);font-family:system-ui,-apple-system,sans-serif;margin:2rem 0}.cf-tbl-2 thead tr{background:#1a1a2e}.cf-tbl-2 thead th{color:#fff;text-transform:uppercase;font-size:0.75rem;letter-spacing:0.05em;padding:14px 18px;text-align:left;font-weight:600}.cf-tbl-2 tbody tr{transition:background 0.15s}.cf-tbl-2 tbody tr:hover{background:#f8f9fa}.cf-tbl-2 tbody td{padding:12px 18px;border-bottom:1px solid #e9ecef;font-size:0.92rem}.cf-tbl-2 tbody tr:last-child td{border-bottom:none}.cf-tbl-2 tbody tr:nth-child(6n+1) td:first-child{border-left:3px solid #6366f1}.cf-tbl-2 tbody tr:nth-child(6n+2) td:first-child{border-left:3px solid #f59e0b}.cf-tbl-2 tbody tr:nth-child(6n+3) td:first-child{border-left:3px solid #10b981}.cf-tbl-2 tbody tr:nth-child(6n+4) td:first-child{border-left:3px solid #ec4899}.cf-tbl-2 tbody tr:nth-child(6n+5) td:first-child{border-left:3px solid #8b5cf6}.cf-tbl-2 tbody tr:nth-child(6n+6) td:first-child{border-left:3px solid #06b6d4}@media(max-width:540px){.cf-tbl-2,.cf-tbl-2 thead,.cf-tbl-2 tbody,.cf-tbl-2 tr,.cf-tbl-2 td,.cf-tbl-2 th{display:block}.cf-tbl-2 thead tr{position:absolute;top:-9999px;left:-9999px}.cf-tbl-2 tbody td{padding-left:50%;position:relative;border-bottom:1px solid #eee}.cf-tbl-2 tbody td:before{content:attr(data-label);position:absolute;left:18px;font-weight:600;text-transform:uppercase;font-size:0.7rem;color:#666}}</style><table class="cf-tbl-2"><thead><tr><th>Symptom</th><th>Likely Cause</th><th>Fix</th></tr></thead><tbody><tr><td data-label="Symptom">No events at all</td><td data-label="Likely Cause">GTM container not installed on the page</td><td data-label="Fix">Add the GTM code to the page's `<head>` in ClickFunnels</td></tr><tr><td data-label="Symptom">Events fire on wrong pages</td><td data-label="Likely Cause">Tag trigger is set to "All Pages" instead of specific page</td><td data-label="Fix">Update the GTM trigger to fire only on the correct URL path</td></tr><tr><td data-label="Symptom">Lead event fires twice</td><td data-label="Likely Cause">Pixel code installed both in GTM AND directly in ClickFunnels</td><td data-label="Fix">Remove the direct code; use only GTM</td></tr><tr><td data-label="Symptom">Lead event fires on page load, not form submit</td><td data-label="Likely Cause">Trigger is "Page View" instead of "Form Submission"</td><td data-label="Fix">Change the trigger to "Form Submission" or custom event</td></tr><tr><td data-label="Symptom">GA4 events not marked as conversions</td><td data-label="Likely Cause">Events exist but not toggled as conversions</td><td data-label="Fix">Go to Admin > Events and toggle "Mark as conversion"</td></tr><tr><td data-label="Symptom">Pixel Helper shows "Pixel not found"</td><td data-label="Likely Cause">Pixel tag is not firing or is blocked</td><td data-label="Fix">Check GTM Preview mode for tag errors; test in incognito mode</td></tr><tr><td data-label="Symptom">UTM parameters disappear on redirect</td><td data-label="Likely Cause">JavaScript redirect strips query parameters</td><td data-label="Fix">Use server-side redirect or pass UTMs through hidden form fields</td></tr><tr><td data-label="Symptom">CAPI events not deduplicating</td><td data-label="Likely Cause">Mismatched `event_id` between browser and server</td><td data-label="Fix">Use ClickFunnels native CAPI integration</td></tr></tbody></table>
Run this before every funnel launch and after every page change:
Before every funnel launch, after every page edit, and monthly as part of your regular maintenance. Platforms update, pages get cloned with broken tracking, and integrations break silently. A monthly check catches drift before it costs you money.
Yes. All testing is done using organic page visits, GA4 Realtime reports, Meta Pixel Helper, and GTM Preview mode. You do not need to run ads to verify tracking. Test everything before you turn on ads.
This usually means the Meta Pixel tag in GTM is not firing correctly. Check GTM Preview mode to verify the Meta Pixel tag fires on the correct trigger. Also verify the Pixel ID in your tag matches your actual pixel.
Use Chrome DevTools device emulation (F12 > toggle device toolbar) for basic testing. For real mobile testing, browse your funnel on your phone and check GA4 Realtime for the events. Meta Pixel Helper only works on desktop Chrome.
Carlos Vargas is the founder of Bezalel Digital, a technology consulting firm that helps entrepreneurs and small business owners implement AI, funnels, and automation to scale their businesses. Need help verifying your tracking setup? [Book a free strategy call](https://www.carlosvargas.com/strategy-call).

CEO Of Bezalel Digital
Get the latest insights on digital marketing, entrepreneurship, leadership, and faith-based topics from CEO Carlos Vargas. At Best Blog Ever, you'll find the best information available to help you level up your success and grow your business. With content tailored to your individual needs, you'll be equipped to take on any challenge. Get started today and join the Best Blog Ever community!

Bezalel Digital © 2023 | All Rights Reserved | CarlosVargas.com
Terms | Income Disclaimer