Skip to content
Tracking SOP

Core Philosophy

Explicit, deliberate tracking beats automatic/passive detection, every time.

This single principle is the root cause behind most of the real bugs documented in this SOP. It’s presented here as its own named section, not buried in a debugging entry, because it’s the throughline of the entire build:

  • GA4’s automatic Enhanced Measurement form detection was unreliable for this site’s native HTML form submission → built an explicit dataLayer.push() from the thank-you page instead.
  • GTM’s native "auto-detect any YouTube iframe" behavior was unreliable for a dynamically-created (modal-based) iframe → attempted explicit dataLayer-based tracking as an alternative (ultimately reverted, see YouTube Engagement, but the diagnosis held).
  • Meta’s dataset-creation flow defaults to auto-enrolling into its own managed Conversions API → had to be explicitly found and disconnected in favor of the deliberately-architected server-side GTM path.
  • Every conversion tag in this build uses an explicit, purpose-built trigger tied to a specific, deliberately-pushed custom event — never a generic "catch-all" trigger guessing at intent.

Practical rule for future builds

Whenever a platform offers an "automatic" or "AI-detected" tracking option, treat it as a red flag to investigate, not a shortcut to take. Verify what it actually does before trusting it, and default to explicit, hand-built tracking unless the automatic option has been specifically verified to work correctly for the exact use case at hand.