Metadata changes stopped breaking live ad revenue
Shared taxonomy. Live deals. Silent risk.
A key-value pair is one row in a table — and one edit could reprice a quarter
KVP metadata feeds targeting, forecasting, and bid-stream enrichment across the SSP. Edits looked like harmless admin work, but they landed on live PMP deals with no warning, no propagation trail, and no way back.
Live PMP deals affected silently
Forecasting drifted
No propagation visibility
Destructive actions had no safety net
What was not allowed to change
Three calls that shaped the system
Separate governance from targeting
One unified admin surface, or two surfaces with different mental models.
Two layers: Ops thinks in system consistency, AdOps thinks in campaign delivery. One UI serving both served neither.
Two surfaces to maintain, and shared state that has to stay coherent between them.
Five lifecycle states instead of active / inactive
Keep the binary flag everyone knew, or model the states values actually pass through.
Draft, active, deprecated, blocked, retired — risk became visible before action, not after damage.
More state logic everywhere, and a migration that had to re-educate every existing workflow.
Move validation upstream of production
Validate on publish (fast entry), or validate on keystroke and paste (slower entry).
Format, duplicate, and conflict checks before values ever reach production. Bad data is cheapest to stop at the door.
Entry got heavier — accepted friction at input to remove incidents downstream.
The first version was too cinematic
A dashboard-style insight layer above the table — polished, animated, impressive in review.
“Where do I click?” — operators testing real tasks never left the rows.
Moved lifecycle, dependency, and propagation context into the rows themselves, at the point of action.
The governance console, up close
Switch views, select a row — the same context operators work in.Operational Visibility
Manual Entry
Bulk Paste
CSV Mapping
Safe Deletion
Expires Jul 23, 2026
What changed, and how we measured it
Mis-targeting incidents on live PMP deals, first quarter after launch.
Taxonomy changes propagate to bid-stream enrichment — down from manual multi-team coordination.
Deal revenue flagged by pre-publish dependency checks before a breaking change shipped.
Mis-targeting incidents on live PMP deals, first quarter after launch.
Taxonomy changes propagate to bid-stream enrichment — down from manual multi-team coordination.
Deal revenue flagged by pre-publish dependency checks before a breaking change shipped.
Measured through incident reports, deal-impact flags, and behavioral analytics (GA + Hotjar), compared quarter over quarter after rollout.
What I would do differently
I would bring dependency intelligence into the API layer earlier — we designed it into the UI first, and teams integrating programmatically got the safety net a quarter later than they should have.
Next was taxonomy ownership: named owners per key, review cadences, and change budgets — governance as a workflow, not just a surface.