Don't have one? Create one ↗
Tagging in the wild — when there's no clean dataLayer

Lesson 1 of 9

The Site You Inherit, Not The One You Planned

The measurement-planning course shows you how a clean dataLayer is supposed to look: agreed event names, the right keys on every push, fired once at the right moment. Almost no site you inherit looks like that. Instead you get a container someone else built, a dataLayer made of whatever the theme, a forms plugin, a chat widget and three years of rushed requests happened to push, and a request that sounds simple: "just track the demo form."

When there is no plan, the skill is not designing the data — it is investigating what already exists and working out how to get a trustworthy event out of it. Think of it as data archaeology: before you build anything, you dig, you observe what the page actually does, and only then do you decide how to capture it.

The planned world

  • One agreed event name, documented
  • Every key present and correctly typed
  • Fires once, exactly when it should
  • You build straight from the spec

The world you inherit

  • Three events that could be 'the' submit
  • Half the keys missing or empty strings
  • Fires twice, or before the data exists
  • You reverse-engineer it from behavior

This course is the field manual for that second world. The golden rule runs through all of it: observe before you build. The single most common mistake is to assume what the dataLayer contains, build a tag on that assumption, and ship something that quietly fires on the wrong events or sends blanks. Every lesson here is a way to replace an assumption with something you have actually watched happen.

Key takeaway

On a real site your first job is investigation, not configuration. Never tag against what you assume is in the dataLayer — tag against what you have watched it do.