The Marketing Site Tracking Plan: A Working Template

A marketing site tracking plan is a single document, not a dashboard, that names every event a site fires, why it exists, exactly what triggers it, who is accountable for it, and when someone last confirmed it still works. Most B2B SaaS teams have tracking. Almost none have a document that survives the person who put it together leaving.

Yasser Soliman

Yasser Soliman

Fractional Head of WebOps

Published

Updated

11 min read

Ask most marketing teams for their tracking plan and they open a GA4 dashboard. That is not a plan. A dashboard reports whatever is currently configured, correctly or not. A plan states what should be firing, why, and how anyone would notice if it silently stopped. Most B2B SaaS teams do not have one, and the gap only becomes visible the day the person who understood the setup takes another job.

What a Tracking Plan Actually Is (And Why a Dashboard Is Not One)

A tracking plan is a document, not a dashboard, that names every event a site fires, why it exists, exactly what triggers it, who is accountable for it, and when someone last confirmed it still works. A dashboard shows what the data says today. A tracking plan is the only artifact that survives long enough to tell you whether that data is still trustworthy.

The distinction matters because a dashboard and a tracking plan answer completely different questions. A dashboard answers “what happened.” A tracking plan answers “is what happened actually what we think is happening, and would we know if it wasn’t.” Only 41% of marketing leaders in a 2024 McKinsey survey of 104 C-suite executives considered their organization mature at performance measurement, and 70% said they could not dynamically adjust spending based on what the data showed[1]. That gap is rarely a tooling problem. GA4 and GTM are capable of almost anything a B2B SaaS marketing site needs. The gap is that nobody wrote down what the tools were configured to do, so nobody can tell when the configuration has quietly drifted from the intent.

The failure mode is specific and repeats across almost every audit here: a marketing lead inherits a GA4 property assembled by someone who left eight months ago. The dashboards still populate. The numbers still look plausible. Nobody can say with confidence which of the fifteen custom events are actually load-bearing for a board deck, which were a one-off experiment nobody removed, or which stopped firing correctly after last year’s homepage redesign moved the form the event depended on. Which events actually matter narrows the list worth documenting in the first place. This post is about the document that keeps that list honest once it exists.

The Five Columns Every Working Tracking Plan Needs

A working tracking plan needs five columns: event name, the exact trigger condition, where it maps in GA4 (parameter and key-event status), a named accountable person, and a last-verified date. Five is deliberately the minimum. Fewer and it stops being checkable. More and almost nobody keeps it updated past the first quarter.

The five required columns Five horizontal rows, each a labeled bar. Row one, event name: what you call it everywhere. Row two, trigger condition: the exact thing that must happen. Row three, GA4 mapping: parameter and key-event status. Row four, accountable: one named person, not a team. Row five, last-verified date: when someone actually checked it live. The five required columns Fewer stops being checkable. More stops being maintained. 1. EVENT NAME What you call it, consistently, everywhere 2. TRIGGER CONDITION The exact thing that must happen 3. GA4 MAPPING Parameter name and key-event status 4. ACCOUNTABLE One named person, not a team inbox 5. LAST VERIFIED When someone actually checked it live Illustrative · yassersoliman.com · the five columns

**Event name** is the label used consistently across GTM, GA4, and any downstream CRM or reporting tool. Naming drift, the same underlying action called `demo_request` in one place and `book-a-demo` in another, is the single most common way a tracking plan and the live configuration quietly stop agreeing with each other.

**Trigger condition** is the precise thing that has to happen, stated specifically enough that someone unfamiliar with the site could go verify it: “form submit succeeds on `/contact/` and returns the confirmation page,” not “someone fills out the contact form.” The gap between those two phrasings is exactly where silent failures live.

**GA4 mapping** records the parameter name and, critically, whether the event is marked as a key event and under which counting method. The defaults that silently misfire covers why this field cannot be assumed: GA4’s own documentation states that “once per event” is the recommended default for any key event created natively, counting every trigger, while only key events migrated in from old Universal Analytics goals default to “once per session,” capping the count at one regardless of how many times the event actually fires[3]. A plan that does not record which counting method a given event uses cannot explain a number that looks off.

**Accountable** names one person, not a team distribution list. Assigning this field to “marketing ops” leaves no accountable party the day something breaks. Assigning it to one named person, even one who delegates the actual check, means someone whose job it is to notice.

**Last-verified date** is the field almost every tracking plan that exists at all is missing, and it is the field that turns a static document into a working one.

Where Tracking Plans Actually Break

Tracking plans break in three predictable places: naming drift between GTM and GA4, a key event silently switching counting methods, and nobody re-checking after a redesign moves the element that used to trigger the event. All three are invisible in the dashboard that reports the resulting number.

Where tracking plans break Three cards. Card one, naming drift: the same event called two different things in GTM and GA4. Card two, silent counting switch: a key event’s counting method changes without notice. Card three, moved trigger: a redesign relocates the element the event depended on, and the event stops firing with no error. Where tracking plans break All three are invisible in the dashboard that reports the resulting number. NAMING DRIFT GTM calls it one thing, GA4 reports it under another. Two rows in the plan for one event. SILENT COUNT SWITCH A key event’s counting method changes with no interface warning and no changelog. MOVED TRIGGER A redesign moves the element the event depended on. No error fires. The event just stops. Illustrative · yassersoliman.com · three break points

A classification default that miscounted leads for months is the same underlying pattern as the moved-trigger case: a form-modal CTA with no distinguishing URL fell to a default cold-lead bucket after a page update, and nobody caught it because the dashboard kept reporting a plausible number, just the wrong one. A tracking plan with a documented trigger condition and a last-verified date would have flagged the gap the next quarter instead of silently compounding it for months.

The counting-method break is worth taking seriously on its own, because it fails in the opposite direction from what most teams assume. TransUnion and EMARKETER’s July 2025 survey of 196 US marketing professionals found 48% cite cross-channel deduplication as a top measurement barrier, and 60% say internal stakeholders question metric validity at least sometimes[4]. Most of that skepticism gets aimed at the reporting layer. The actual fault more often sits one layer down, in a counting-method field nobody documented and nobody has looked at since the event was first created.

The Verification Cadence That Keeps It Honest

A tracking plan without a verification cadence decays the same way an unpatched system does: quietly, until something breaks in a way that is expensive to trace back. Quarterly is the right frequency for most B2B SaaS marketing sites, tied to the same rhythm as the 30-minute audit that pairs with it.

The verification cadence A horizontal timeline with four evenly spaced checkpoints labeled Q1 through Q4. Each checkpoint is a live check: does every documented event still fire under its documented trigger. A caption states that unverified plans decay the same way unpatched systems do, quietly. The verification cadence Quarterly, tied to the 30-minute GA4 audit. Not “whenever something looks off.” Q1 Q2 Q3 Q4 Live check Live check Live check Live check An unverified plan decays the same way an unpatched system does: quietly. Illustrative · yassersoliman.com · the verification cadence

The engineering discipline this borrows from has already run the natural experiment. Google Cloud’s 2024 DORA State of DevOps report, an annual survey of roughly 3,000 engineering professionals, found only 19% of teams qualify as elite performers with change lead times under one day, while low performers report lead times of one to six months[5]. The gap between those two groups is not talent. It is cadence: elite teams catch drift on a schedule measured in hours, and low performers catch it whenever someone happens to notice, which is a schedule measured in whatever it takes for the resulting damage to become visible. A tracking plan checked quarterly on a fixed date behaves like the elite group. A tracking plan checked “whenever the numbers look weird” behaves like the low performer, and by the time the numbers look weird enough to prompt a look, the architecture decision underneath the plan has usually been quietly wrong for a while.

A Worked Example

A tracking plan does not need to be elaborate to be useful. It needs to be checkable. Here is a condensed, anonymized excerpt from a real B2B SaaS marketing site’s plan, five rows out of the roughly twenty that mattered enough to document:

EventTrigger conditionGA4 mappingAccountableLast verified
`demo_request_submit`Form on `/demo/` returns the confirmation pageKey event, once-per-eventMarketing ops lead2026-07-14
`trial_signup_complete`Signup flow reaches the activated-account state, not just form submitKey event, once-per-eventProduct marketing2026-07-14
`pricing_scroll_75`Visitor scrolls past 75% of `/pricing/`Non-key custom eventMarketing ops lead2026-04-02
`resource_download`PDF or gated asset download completesNon-key custom eventContent lead2026-07-14
`newsletter_signup`Footer or inline form submit, distinct from `demo_request_submit`Key event, once-per-eventMarketing ops lead2026-04-02

Two things stand out in a real plan like this one, both invisible from the dashboard side. `trial_signup_complete` is deliberately defined by account activation, not form submission, because the earlier version of this event fired on form submit and counted signups that never activated, inflating the number every campaign report used to justify spend. And `pricing_scroll_75` and `newsletter_signup` were both last verified in April, a full quarter before the other three, which is exactly the kind of gap a last-verified column exists to surface before it becomes a problem nobody can explain.

Who Should Be Accountable for the Tracking Plan

Accountability for the tracking plan belongs with whoever is responsible for the marketing site’s technical layer, not whoever happens to hold GA4 admin access this quarter. The document is worthless if updating it is nobody’s specific job.

Nobody’s job versus one named person Left card: no accountable person, marked with a red cross, describes updating it as everyone’s job and therefore nobody’s, decaying silently. Right card: one named person, marked with a green check, accountable for the quarterly check, decay caught on schedule. Nobody’s job vs. one named person The same document, two different survival rates. NOBODY ACCOUNTABLE “Marketing ops” is listed, which means everyone and nobody. Decays silently. ONE NAMED PERSON A specific name, quarterly check is part of the job. Drift caught on schedule. Illustrative · yassersoliman.com · the accountability close

This is the same question at the site level applied one layer down, to the instrumentation instead of the code. Salesforce’s 2026 State of Marketing survey of 4,450 marketers found only 25% satisfied with their customer data unification[2], and unification failures almost always trace back to exactly this gap: nobody is named to catch the drift before three systems disagree. The tracking plan will not fix a site with nobody accountable for it. It will make that gap obvious, on a fixed quarterly schedule, exactly where it is costing real decisions.

Sources

  1. McKinsey, Connecting for Growth: A Makeover for Your Marketing Operating Model – 2024 Global Consumer Marketing Leader Survey, n=104 C-suite executives; 41% mature in performance measurement, 70% cannot dynamically adjust spend ↩
  2. Salesforce, State of Marketing Tenth Edition (2026) – Survey of 4,450 marketers fielded Oct-Nov 2025; 25% satisfied with customer data unification ↩
  3. Google, Change the Counting Method of Key Events – Official documentation; “once per event” is the default for natively created key events, “once per session” only for events migrated from Universal Analytics goals ↩
  4. TransUnion / EMARKETER, The True Cost of Trust in Marketing Measurement – Fielded July 2025, n=196; 48% cite cross-channel dedup issues, 60% say stakeholders question metric validity at least sometimes ↩
  5. Google Cloud / DORA, Accelerate State of DevOps Report 2024 – November 2024, n=~3,000 engineering professionals; 19% elite performers with sub-one-day lead times, low performers at one to six months ↩

Seeing these patterns at your company?

Book a free WebOps Diagnostic. I'll review your site before the call and share specific observations.

Book a Free Call →

Frequently Asked Questions

Yasser Soliman

Written by Yasser Soliman

Fractional Head of WebOps

I've spent 5+ years embedded in marketing teams at B2B SaaS companies. I own the marketing website — performance, analytics, SEO, integrations — so your team ships without bottlenecks.

Let's talk about your site.

Book a free WebOps Diagnostic. Send me your URL and what you'd like me to look at — I'll come prepared with specific observations.

Book a Free Call