There is one rule we do not bend: measurement goes live before media does. Not because it is tidy, but because launching spend against broken tracking means every subsequent conversation about performance is unresolvable. You cannot tell a bad campaign from a missing tag, and neither can the bidding algorithm.
This is the checklist we work through in the first fortnight of every engagement. It is not exotic. It is simply done, in order, and signed off before anything launches.
Foundation
- One analytics property, one container. Duplicate GA4 properties and two competing tag containers are the single most common cause of double-counted conversions. Find them, document them, retire the ones nobody owns.
- Ownership verified. Every ad account, analytics property, tag container and domain is owned by the client’s own organisation, with agency access granted — never the reverse.
- Consent mode configured correctly. If you operate anywhere with consent requirements, verify that tags genuinely wait for consent and that modelled conversions are enabled. A banner that does not gate anything is a legal risk without a measurement benefit.
Events
- A written event specification. Every event has a name, a trigger, required parameters and an owner. If it is not in the document, it does not get implemented.
- Commercial intent separated. Newsletter, content download, contact form and demo request are four distinct events. They never share a conversion action.
- Form submissions fire on success, not on click. Binding to the button counts validation failures as conversions, which inflates every downstream number.
- Values attached where they exist. Even an estimated value per lead type beats a value of zero — it lets value-based bidding function at all.
Resilience
- Server-side collection where it is warranted. Not as fashion. Where ad blocking, iOS restrictions or cookie lifetime demonstrably distort your data, move collection server-side and document the expected delta.
- Offline conversion import planned. Decide on day one how qualified and closed-won will get back to the ad platforms. Retrofitting this six months in is painful and always loses history.
- UTM governance. One naming convention, written down, enforced by a builder tool. Inconsistent casing alone can split a single campaign across four rows in a report.
Proof
- End-to-end test before launch. Submit a real form. Watch the event fire in debug view, arrive in the analytics property, reach the ad platform, and land in the CRM with the correct source. All four, observed, not assumed.
- A reconciliation note. Platform-reported conversions will never exactly match analytics, which will never exactly match the CRM. Write down the expected variance and why, once, at the start. It prevents a recurring monthly argument that otherwise never ends.
Measurement is not reporting. Reporting is what you send at the end of the month; measurement is what makes the number in it mean something.
Working through this properly takes one to two weeks for a mid-sized account. That is a real delay to launch, and we hold to it anyway, because the alternative is spending three months of budget on an account whose numbers nobody can defend.
Want this applied to your own programme?
Send us your situation and we will come back with a written point of view on it — no obligation either way.
Request a proposal