GTM Container Audit — Flowcode

Container: GTM-KQMLVD6
Date 2026-05-14
Container Version 182
Auditor MH1 Growth OS

Context: Pre-website-relaunch audit requested by Brad Mims (Flowcode). PMax campaign ($200/d) just unpaused — conversion signal quality is upstream-critical.

Executive Summary

The container is functional but has significant conversion-tracking gaps that directly undermine the $200/d PMax campaign. The core issue Cameron flagged is confirmed: Google Ads conversion tags fire on free-signup and self-serve events, not on HubSpot pipeline/SQL stages. PMax is optimizing for low-value signal.

Critical  Fix Before PMax Scales

#IssueImpactEffort
C1 Google Ads conversions fire on userCreatedAccount, userSubmittedProPayment — not HubSpot SQL/pipeline stages PMax optimizes on free signups, not enterprise pipeline Medium
C2 No Meta pixel base code in container — only orphaned fbq("track","CompleteRegistration") custom HTML Zero Meta attribution, cross-channel blind spot Low
C3 Universal Analytics tags still active (UA-134093328-2) — UA sunset July 2023 Dead tags, potential page-load overhead Low
C4 GA4 page_view event (Tag 391) duplicates built-in GA4 config page_view (Tag 389) Inflated pageview counts in GA4 Low

High  High-Priority Issues

#IssueImpact
H1 12 Google Ads conversion tags on a single account (AW-759682899) — unclear which are primary vs. secondary Conversion double-counting risk, PMax confusion
H2 Second Google Ads account (AW-647436322) has 1 conversion tag — unknown owner/purpose Potential rogue tracking
H3 Enhanced conversions inconsistent — enabled on 6 of 12 tags, disabled on 6 Degraded match rates on half of conversions
H4 25+ paused custom HTML tags (Brad's cleanup) — still in container Clutter, risk of accidental re-enable
H5 No HubSpot lifecycle/pipeline event triggers exist in GTM Cannot wire conversion tags to SQL stages without new triggers

1. Container Snapshot

Active Tags (26)

Tag IDTypeName / PurposeFires On
314Google Ads ConversionAW-759682899 / MGhtCMrY7NgB(unknown trigger mapping)
316Google Ads ConversionAW-759682899 / TiKFCOix-tgB — with value, enhanced conv(unknown trigger mapping)
329Google Ads ConversionAW-647436322 / bxYGCIq5vPEB — different account(unknown trigger mapping)
348Google Ads ConversionAW-759682899 / w9KiCOW0-v8B — enhanced convuserCreatedAccount or similar
349Google Ads ConversionAW-759682899 / wVz8CNHa3P8B — enhanced convuserCheckedOutSuccessfully
386Google Ads ConversionAW-759682899 / z6_jCOv5qoAY — enhanced convRevenue_ContactSales_Submitted_Form
388Google Ads ConversionAW-759682899 / 3EftCIC4q4AYRevenue_ContactSales_Submitted_Form
415Google Ads ConversionAW-759682899 / nS6fCLSUgpUZBookDemo_SubmittedForm
420Google Ads ConversionAW-759682899 / LfhRCPeCkJoZ(unknown)
431Google Ads ConversionAW-759682899 / LoNzCJHhhcwZ — enhanced conv(unknown)
439Google Ads ConversionAW-759682899 / XjhgCLGH1e4Z(unknown)
455Google Ads ConversionAW-759682899 / YUYCCO7KqqUbUser_Submits_BAL_Form
315GCLID Tracking (gclidw)URL passthrough enabledAll Pages
321Universal AnalyticsUA-134093328-2 — Page ViewAll Pages
353Universal AnalyticsEvent: Flowcode > Create Account - NewuserCreatedAccount
354Universal AnalyticsEvent: Flowcode > Submit Pro Payment - NewuserSubmittedProPayment
360Universal AnalyticsEvent: Pro > Get Started ClickuserStartedProConversion
372Google Ads User DataAW-759682899 — enhanced conversion uploadAll Pages
384LinkedIn ConversionPartner ID: 2949218LinkedIn-specific trigger
389GA4 ConfigG-S8MHVTV29S — send_page_view: trueAll Pages
391GA4 Eventpage_view DUPLICATEAll Pages
435GA4 EventContact_Sales_SubmissionRevenue_ContactSales_Submitted_Form
436GA4 EventSEM_LP_Contact_SalesRevenue_LandingPage_Submitted_Form
361Custom HTMLfbq("track","CompleteRegistration")orphaned (no base pixel)userCreatedAccount
411Custom HTMLHubSpot script (8765124) — OneTrust gatedAll Pages
458Custom HTMLSnowplow pixel (conversions.flowcode.com/pixel-tracker)(unknown)

Paused Tags (~30)

282, 283, 284, 285, 292, 308, 310, 311, 313, 325, 382, 395, 401, 403, 404, 406, 407, 410, 417, 421, 423, 424, 428, 429, 430, 433, 437, 438, 440, 442, 443, 444, 445, 447, 454, 456

These are Brad's cleanup — previously active tags now paused. Recommendation: After confirming nothing breaks (2 weeks), delete them. Paused tags still load in the container and add weight.

Triggers (25)

#TriggerTypeNotes
0gtm.jsPage ViewAll pages
1userDownloadedFlowcodeCustom EventProduct action
2userCreatedAccountCustom EventLow-value for PMax Free signup
3userStartedProConversionCustom EventMid-funnel
4userSubmittedProPaymentCustom EventSelf-serve payment
5userCheckedOutSuccessfullyCustom EventSelf-serve checkout
6userCompletedProConversionCustom EventSelf-serve complete
7userCreatedFlowpageAccountCustom EventProduct action
8gtm.formSubmitForm SubmissionGeneric
9LinkedIn triggerRegex matchPartner-specific
10userSubmittedLeadCustom EventLead form — closer to pipeline
11Revenue_ContactSales_Submitted_FormCustom EventHIGH value Enterprise contact
12userClickedCreateFlowcodeCustom EventProduct action
13gtm.historyChangeHistory ChangeSPA navigation
14userClickedContactSalesCustom EventCTA click (not submission)
15-18Element/click triggersElement VisibilityOnboarding-related
19URL = app.flowcode.com/signupPage ViewSignup page load
20URL = flowcode.com/submitPage ViewThank-you page
21BookDemo_SubmittedFormCustom EventHIGH value Demo request
22Revenue_LandingPage_Submitted_FormCustom EventLanding page form
23LinkedIn_LandingPage_Submitted_FormCustom EventLinkedIn-attributed form
24EOY_Report_Button_ClickedCustom EventCampaign-specific
25User_Submits_BAL_FormCustom EventBAL form

Variables (25+)

#TypePurpose
Macro 0Event{{Event}}
Macro 1URLFull URL
Macro 3Enhanced Conversion DataEmail (manually provided) — used by enhanced conversion tags
Macro 4Cookie_fluid cookie
Macro 5DOM Elementflowcode_id input value
Macro 7GA SettingsUA-134093328-2 config (dimensions 1, 3, 5)
Macro 14Custom JSSession ID generator
Macro 15GA SettingsUA-134093328-6 (second UA property?)
Macro 17Custom JSExtract email from form
Macro 18DOM Elementupgrade-auth-form-email-input
Macro 22URLHOST component
Macro 23URLPATH component

2. Conversion-Tracking Sanity Check

Google Ads Conversion Linker

PASS
  • GCLID tracking tag (315) fires on All Pages with URL passthrough enabled
  • User data upload tag (372) fires on All Pages with enhanced conversion data

Google Ads Conversion Tags

FAIL Critical

Primary account: AW-759682899 (maps to customer 844-432-8711)

12 conversion tags exist. The problem: most fire on product/self-serve events, not enterprise pipeline stages.

Conversion LabelFires OnValue SignalPMax Impact
MGhtCMrY7NgBUnknownLowUnknown
TiKFCOix-tgBAccount creation / checkout (has value)MediumOptimizes for self-serve
w9KiCOW0-v8BuserCreatedAccountLOWPMax chases free signups
wVz8CNHa3P8BuserCheckedOutSuccessfullyMediumSelf-serve revenue
z6_jCOv5qoAYContact Sales formHIGHCorrect signal
3EftCIC4q4AYContact Sales formHIGHCorrect signal
nS6fCLSUgpUZBook Demo formHIGHCorrect signal
LfhRCPeCkJoZUnknownUnknownUnknown
LoNzCJHhhcwZUnknownUnknownUnknown
XjhgCLGH1e4ZUnknownUnknownUnknown
YUYCCO7KqqUbBAL form submissionMediumDepends
Verdict: Only 3 of 12 conversion tags fire on enterprise-quality events (Contact Sales, Book Demo). The rest fire on self-serve actions or have unknown triggers. PMax is likely counting free signups as conversions and optimizing accordingly.

Secondary account: AW-647436322 — 1 conversion tag (bxYGCIq5vPEB). Unknown owner. Needs investigation — is this an old account, agency account, or partner?

What's Missing: HubSpot Pipeline Events

There are zero triggers for HubSpot lifecycle stage changes (MQL, SQL, Opportunity, Customer). The dataLayer pushes on the Webflow site only fire:

These are top-of-funnel form submissions. There is no mechanism to feed back which leads became SQLs or opportunities to GTM/Google Ads. This is the fundamental gap:

Current:  Ad Click → Form Submit → GTM fires conversion → PMax optimizes on ALL form fills
Needed:   Ad Click → Form Submit → HubSpot qualifies → Offline conversion import → PMax optimizes on SQLs

Fix: This likely cannot be solved in GTM alone. Requires Google Ads offline conversion import via HubSpot integration or API, feeding GCLID + conversion action back when a lead reaches SQL stage.

Meta Pixel

FAIL
  • No Meta pixel base code (fbq('init', ...)) exists anywhere in the container
  • One orphaned custom HTML tag (361) fires fbq("track","CompleteRegistration") — this will error in browser since fbq function is never defined
  • The live site does NOT load connect.facebook.net or any Meta pixel script
  • Result: Zero Meta attribution. Cross-channel attribution is blind to Meta.

GA4

PASS (with one issue)
  • G-S8MHVTV29S is properly installed via GA4 Config tag (389) on All Pages
  • send_page_view: true is set in the config tag
  • BUT Tag 391 fires an additional page_view event on All Pages → duplicate pageviews
  • Custom events exist for Contact_Sales_Submission and SEM_LP_Contact_Sales — good
  • GA4 is NOT removed by Brad's cleanup — confirmed still active

LinkedIn

PASS
  • Partner ID 2949218 installed via sandboxed tag (384)
  • Fires on a LinkedIn-specific trigger
  • LinkedIn_LandingPage_Submitted_Form dataLayer event fires when UTM source = LinkedIn
  • Working correctly

Other Tracking on Live Site

Found in page source (outside GTM):

PlatformDetails
Heap AnalyticsLoaded in head
Datadog RUMBrowser monitoring (OneTrust gated)
HubSpotChatbot/forms via Webflow integration + GTM tag (411)
DriftChat widget
IntercomSupport widget
OneTrust / CookieLawConsent management (eed4f849-6744-46e9-8b81-04d191129887)
ZoomInfoVisitor identification (obfuscated script)
CloudflareChallenge platform

3. Orphan Check

Triggers Without Tags (Potential Orphans)

TriggerStatus
userDownloadedFlowcodeMay only fire paused tags
userCreatedFlowpageAccountLikely fires paused tags
gtm.historyChangeFires Tag 26 (index) — may be active
userClickedCreateFlowcodeMay only fire paused tags
EOY_Report_Button_ClickedCampaign-specific — likely expired

Variables Not Referenced

VariableConcern
Macro 6 — Cookie: dtxcookie (decoded)Dynatrace cookie — is Dynatrace still in use?
Macro 15 — GA Settings UA-134093328-6Second UA property — different from UA-134093328-2 used by active tags
Macro 18 — DOM: upgrade-auth-form-email-inputReferences old app DOM element — may not exist on new site

4. Oddities & Cleanup Items

#FindingSeverity
1 Universal Analytics still active — Tags 321, 353, 354, 360 fire on page views and events to UA-134093328-2. UA was sunset July 2023. These send data nowhere useful. Medium
2 Duplicate GA4 pageview — Config tag (389) already sends page_view. Event tag (391) sends another. Remove Tag 391. Low
3 Orphaned fbq call — Tag 361 calls fbq("track","CompleteRegistration") but no Meta pixel base code exists. This throws a JS error on every userCreatedAccount event. Low
4 ZoomInfo obfuscated script — loaded in page body outside GTM. Not unusual but worth knowing it's there. Info
5 HubSpot form ID duplication — The Webflow contact form has 0-1_contact_sales_utm_source hidden field repeated 8 times with the same HubSpot form ID (9392218a-dac1-4c52-8fba-5dec7ea893d0). Likely a Webflow bug, not GTM, but could cause issues with HubSpot attribution. Low
6 OneTrust gating — HubSpot script (Tag 411) and Datadog RUM are behind optanon-category-C0002 (performance cookies). If a user declines cookies, HubSpot tracking and Datadog break. This is correct for GDPR but means EU traffic is partially untracked. Info
7 30 paused tags still in container — adds ~15-20KB to container download. Delete after 2-week validation. Low
8 Container version 182 — very high version count suggests frequent edits without a version naming/notes discipline. Consider using GTM Workspaces for future changes. Info

5. Recommendations (Priority Order)

Immediate — Before PMax Scales
1 Implement Google Ads offline conversion import for HubSpot SQL events Critical
  • Wire HubSpot lifecycle stage → Google Ads conversion via API or HubSpot's native Google Ads integration
  • Feed GCLID + timestamp + conversion action when a contact reaches SQL stage
  • Set this as the primary conversion action in Google Ads for PMax
  • Demote userCreatedAccount to secondary/observe-only
2 Audit which of the 12 conversion tags PMax is actually optimizing on Critical
  • In Google Ads UI → Conversions → check which are set as "Primary" vs "Secondary"
  • Only enterprise-quality conversions (Contact Sales, Book Demo, SQL) should be Primary
  • All self-serve events (account creation, pro payment) should be Secondary (observe-only)
3 Install Meta pixel base code if Meta ads are running or planned Critical
  • Add fbq('init', 'PIXEL_ID') + fbq('track', 'PageView') as a new tag on All Pages
  • Fix Tag 361 to work with the base pixel, or replace with proper Meta conversion tag
Short-Term — This Week
4 Remove Universal Analytics tags (321, 353, 354, 360) High

Sending data to a dead endpoint. UA was sunset July 2023.

5 Remove duplicate GA4 page_view (Tag 391) High

Config tag (389) already handles this. Tag 391 causes inflated pageview counts.

6 Fix orphaned fbq call (Tag 361) High

Either install Meta pixel or remove the tag. Currently throws a JS error on every userCreatedAccount event.

7 Clarify AW-647436322 High

Identify owner of secondary Google Ads account, remove if unused.

8 Standardize enhanced conversions High

Enable on all 12 Google Ads tags, or consciously disable on secondary ones. Currently inconsistent: enabled on 6, disabled on 6.

Medium-Term — Next Sprint
9 Delete paused tags after 2-week validation period Medium

~30 paused tags still add ~15-20KB to container download weight.

10 Clean up orphan triggers Medium

Remove triggers that only fire paused/deleted tags.

11 Remove unused variables Medium

dtxcookie, second UA settings, old DOM selectors.

12 Establish GTM governance Medium

Version notes on every publish, workspace-based workflow. Container is at version 182 with no naming discipline.

Appendix: Tracking IDs Reference

PlatformIDStatus
GTM ContainerGTM-KQMLVD6Active on www + app
Google Ads (primary)AW-759682899 (customer 844-432-8711)Active
Google Ads (secondary)AW-647436322Active — unknown owner
GA4G-S8MHVTV29SActive
Universal AnalyticsUA-134093328-2Dead (sunset 2023)
Universal Analytics (#2)UA-134093328-6Dead (variable only)
LinkedInPartner 2949218Active
Meta PixelNONENot installed
HubSpot8765124Active (via GTM + Webflow)
Heap(loaded outside GTM)Active
Datadog RUM(loaded outside GTM)Active (OneTrust gated)
ZoomInfo(obfuscated, outside GTM)Active
Snowplowconversions.flowcode.comActive
OneTrusteed4f849-6744-46e9-8b81-04d191129887Active