All posts
5 min readagency, governance, gtm

Tag governance across 25 client sites without losing your mind

Managing tracking for one site is a checklist. For 25 client sites it's a governance problem — and the failure mode isn't dramatic, it's entropy: containers drift, a client's dev breaks a tag, and you find out when they email about missing conversions.


Managing tracking for one site is a checklist. Managing it for 25 client sites is a governance problem, and the failure mode is not dramatic — it is entropy. Containers drift, a client's developer breaks a tag during a theme update, and you find out six weeks later when someone emails about missing conversions. The fix is standardisation plus monitoring: identical structure everywhere, so anyone can work on any account, and automated checks so nobody has to remember to look.

Why portfolios decay faster than single sites

Every problem a single container has, a portfolio has multiplied — and with three additional ones:

  • Nobody owns any individual container. Whoever set it up has moved on. Responsibility is diffuse, which means it is absent.
  • Client developers change things without telling you. A theme update, a plugin, a checkout migration. You are not in that loop.
  • Twenty-five containers means twenty-five conventions, unless you imposed one. Every handover starts with archaeology.

Meanwhile the client's expectation is that tracking is simply correct, and the first they hear of a problem is a number that looks wrong in a report you sent them.

Standardise the structure, not just the tags

The highest-leverage decision is making every container look the same. Any team member should be able to open any client's container and know where everything is.

Naming conventions, applied without exception:

Tags:      GA4 - Event - purchase
           Ads - Conversion - lead_submit
           Meta - Event - AddToCart
Triggers:  DL - purchase
           Click - checkout_button
Variables: DLV - ecommerce.value
           Const - GA4 Measurement ID

A standard container template. Build one container that contains your baseline — GA4 configuration, consent defaults, standard engagement events, the variables that are always needed — and export it. Every new client starts from that import, not from an empty container.

Environment-specific IDs in variables, never hardcoded. Measurement IDs, pixel IDs, and conversion IDs live in constant variables at the top of the container, so migrating or correcting one is a single edit.

A documented tracking plan per client, using the same template every time. The tracking plan format matters less than the fact that all 25 use the same one.

Access and permissions

Two rules prevent most of the painful incidents:

The client owns the accounts; you get access. Containers and analytics properties should live in the client's Google account with your agency granted access — not the reverse. When the relationship ends, handover is a permissions change rather than a migration, and you are not holding data you have no basis to hold.

Publish rights are limited. Anyone can edit in a workspace; a smaller group publishes. This is the single most effective control against accidental production changes, and it costs nothing. Workspaces, versions, and environments covers the mechanics.

Change discipline

Every publish gets a real description. Not "update". What changed, why, and who asked for it. At 6pm on a Friday, when a client says conversions stopped, the version history is either an answer or a wall of "update".

Preview before every publish. Non-negotiable, including for changes that look trivial.

A change log per client — a spreadsheet is fine — recording what changed and when. This is what lets you correlate a metric shift with a cause months later.

Monitoring: the part that actually scales

Standardisation stops you creating problems. It does nothing about the ones your clients' developers create. For that you need automated checks, because nobody is going to manually inspect 25 containers weekly.

What is worth monitoring, in order of value:

  1. Tag presence. Is the GA4 ID, the Ads conversion ID, the Meta pixel still on the page? A scheduled page-level check catches the most common failure — a deploy removed the tag — within a day instead of a month.
  2. Conversion volume anomalies. A step change in daily conversions, per client, alerted automatically. Absence is the thing dashboards never show you.
  3. Funnel completion. Synthetic journeys that walk a real path — product, cart, checkout — and verify the expected events fired with sane values.
  4. Consent behaviour, especially after any banner or platform change on the client's side.
  5. Container drift — tags added by someone else, tags paused, unexpected new vendors.

The economics are straightforward: an hour of monitoring setup per client, against the cost of one client discovering six weeks of missing conversion data themselves.

The client-facing layer

Governance that clients cannot see does not get renewed. Make it visible:

  • A monthly or quarterly tracking health summary per client — what is working, what changed, what needs their developers' attention.
  • A named owner for each account inside your agency.
  • A documented onboarding process for new clients: audit first, standardise second, monitor third.
  • An offboarding process that transfers cleanly. Doing this well is a surprisingly strong referral source.

The onboarding audit

Never inherit a container without auditing it, and never let the audit be optional. New client, first week:

  1. External page audit of the live site — what is actually loading, duplicates, consent signals, PII in URLs, script weight.
  2. Container inventory — every tag, trigger, and variable, with an owner and a purpose for each.
  3. Reconciliation — GA4 purchases against the client's actual orders for a recent month. This one number tells you more than the rest of the audit combined.
  4. A written findings document with a tiered fix list.

That document is also the best new-business asset you have, because it demonstrates value before you have done any work. What a tracking audit checks covers the checklist itself.

FAQ

How many client containers can one person realistically manage?

With standardised structure and automated monitoring, a lot — the constraint is incident response, not routine maintenance. Without standardisation, anything beyond about five becomes archaeology every time something breaks.

Should agencies own client GTM containers?

No. The client should own the account with the agency granted access. It makes offboarding clean, avoids holding client data without a basis, and removes an awkward negotiation at the end of every relationship.

How do I stop clients' developers breaking tracking?

You cannot, entirely — you can detect it fast. Monitoring for tag presence and conversion anomalies turns a six-week discovery into a one-day one, which is the difference that actually matters commercially.

What should be in a monthly client tracking report?

Tracking health status, any changes made and why, anything detected and fixed, and anything needing the client's developers. Keep it short — the point is visible ownership, not volume.

Is a standard container template worth the setup time?

Yes, and it pays back on the second client. Identical structure means anyone can work on any account, onboarding is faster, and audits become mechanical rather than exploratory.

Run the external check on every client site in your portfolio: the free tracking audit works on any URL with no signup or account access.


See where your tracking stands

Run the same 13-check audit referenced in this post against any URL. No signup, results in seconds.

Run a free audit