The tracking infrastructure map: a typed graph of everything you manage
Most agencies document their clients' tracking setup in a spreadsheet — and most of those spreadsheets are months out of date. Here's a better mental model.
The single question that exposes how healthy a digital marketing agency's operations are:
Show me, right now, every pixel firing on client X's checkout page — which ad platform owns it, whether the conversion value is in USD or CAD, when it was last verified, and which tracking engineer deployed it.
If the answer takes more than 30 seconds, the agency is carrying silent risk. Broken pixels don't announce themselves. They just quietly tank ROAS for 6 weeks until someone notices the GA4 audience sizes dropped.
The problem with spreadsheets
The common approach is a shared Google Sheet per client listing:
- GA4 property IDs + measurement IDs
- GTM container IDs
- Active ad pixels (Meta, Google, TikTok, LinkedIn…)
- Conversion events + values
- UTM conventions (when these drift, our free UTM audit tool shows you exactly how badly)
- Audience definitions
Three problems:
- No relationships. A pixel is on a page, owned by an ad account, used in a campaign, hashed against a customer list. A spreadsheet flattens this into columns. You can't answer "what depends on this?" from a spreadsheet.
- No health state. A sheet has nowhere to record whether a pixel was confirmed working, when, or by whom. It's a static snapshot of what you thought was true at onboarding.
- No types. A "conversion" in GA4 is a different shape from a "conversion" in Google Ads is a different shape from a "conversion event" in Meta. One spreadsheet column doesn't express that.
The tracking map: a typed graph
Phloz models tracking as a graph:
- Nodes are tracking objects: a GA4 property, a GTM container, a Meta pixel, a Google Ads conversion action, a call-tracking account, a CRM.
- Edges are typed relationships: sends events to, fires pixel, reports conversions to, sends server events to, uses data layer, pushes audiences to, syncs leads to.
- Every node type has a Zod schema — a GA4 property has a
propertyId, a list ofmeasurementIds, an optional owner. A Meta pixel has apixelId, adatasetId, and flags for advanced matching and CAPI. Every node, whatever its type, also carries ahealthStatusand a last-verified date.
That's it. Three primitives: nodes, edges, schemas.
What this buys you:
- "Show me every pixel on the checkout page" = graph traversal from the checkout-page node outward through fires pixel edges.
- "What breaks if we migrate this GA4 property?" = dependency walk.
- "Which integrations haven't been verified in 30+ days?" = the audit, which flags every node nobody has verified in 30 days.
- "Who owns this pixel?" = read the node metadata.
Why typed matters
Without types, the map is just a pretty drawing. With types:
- Every node can be rendered with the right fields, icons, health indicators.
- Import/export is a JSON file you can load into another client or workspace.
- Validation rejects a malformed ID when it's saved, and the audit flags "this GA4 property has no measurement IDs" the next time it runs, not 8 weeks later.
- New node types (Klaviyo list, Shopify pixel, whatever comes next) drop in as one new Zod schema. No schema migrations. No flattening into a spreadsheet column.
What it looks like today
Phloz ships with:
- 23 node types, including GA4 property, GTM web and server containers, non-GA4 analytics, Google Ads account and conversion action, Meta account, pixel and CAPI, TikTok account and pixel, Microsoft and LinkedIn Ads accounts (with their UET and Insight Tag IDs), CRM, email and ecommerce platforms, call tracking, server and conversion-API endpoints, website, landing page, and Custom for anything else.
- Manual verification (click "verified today").
- Broken / missing / working / unverified states.
It also ships the audit engine: 20 rules run over every map each week and score it 0–100 — a Meta pixel with no Conversions API path, a GTM container that sends nothing anywhere, a node nobody has verified in 30 days. Health states are still set by a person when they verify; Phloz doesn't sync them from the ad platforms.
The takeaway
Your agency's tracking setup isn't a spreadsheet. It's a graph. Model it as one, type the nodes, and the questions that used to take 20 minutes take 20 seconds. That typed model is exactly what marketing tracking software is for.
And when a client asks "are we tracking everything we should be?" — you can answer.