
How To Design A First-Party Event Taxonomy That Survives Platform Changes
Pixel went down. CAPI changed. The schema below is the only layer you control.
Every tracking layer you rely on is owned by someone else and can change without notice. Browser tracking degrades, platform APIs get versioned, consent rules shift, and each time it happens the reporting breaks.
The one layer you control is how you define your own events. Get that right and every platform change becomes a mapping exercise rather than a rebuild.
Define events by business meaning, not by platform
The mistake is naming events after what a platform calls them. Once you do that, your taxonomy is downstream of their roadmap.
Name events after what happened in your business. A form submission on a quote page is not a Lead, it is a quote request. A booked call is not a Lead either. They are different moments with different values, and collapsing them into one platform-defined label destroys the distinction permanently.
Keep the list short
Most businesses need somewhere between six and twelve events. Anything more and nobody maintains it.
For a service business the useful set is roughly: page view of a commercial page, enquiry started, enquiry submitted, call booked, call attended, proposal sent, closed won, closed lost.
That covers the whole journey and each step is unambiguous.
Attach the properties that let you segment later
An event with no properties can only ever be counted. An event with properties can be analysed.
The ones worth capturing every time: which page or campaign it came from, which service it relates to, the value if known, and a stable identifier that lets you join it to the deal later.
The identifier is the part people skip and it is the part that makes revenue attribution possible at all.
Server-side is the durable path
Browser-based tracking is the fragile layer. It loses a meaningful share of events to blockers, privacy settings and consent choices, and that loss is not evenly distributed, so it distorts as well as reduces.
Sending events from your own server, from your CRM or from your database, removes most of that. It also means the event fires when the thing actually happened rather than when a page loaded.
The practical version is to send from both and deduplicate on a shared event identifier, which every major platform supports.
The layer between you and the platforms
Define your taxonomy once, in your own system. Then map it out to each destination.
That mapping is the only thing that should need changing when a platform revises its API. Your definitions, your history and your internal reporting stay stable.
Without that layer, every platform migration means re-instrumenting the site, and you lose comparability with everything before it.
Consent has to be part of the design
Events collected without a lawful basis are a liability, not an asset. Build the consent state into the event itself so you can always answer what was collected and under what basis.
This also stops the situation where reporting silently changes because a consent banner was updated and nobody connected the two.
The test of whether it is working
You should be able to answer, for any closed deal, which touchpoints preceded it, without opening an advertising platform.
If the only place that story exists is inside a platform's reporting interface, you do not own your data. You are renting a view of it.
Written by David Eid. Published .
Read next.
Contact the Ignis Team
Send through your details and we will audit your business before we reply.




