Skip to content

From 30 to 97: How a Tracking Rebuild Made Every Lead Countable

🔍 Audit Score 30 of 100
→
🔧 Rebuild in parallel Nothing switched off
→
📈 Score 97 of 100 Every lead attributable
→
📋 One lead record Source to booked call
McCance Method was spending on ads it could not measure. The rebuild ran alongside the old tracking and switched over only once the new events were proven clean.

This is the story of McCance Method that helps therapy practices grow. It was already spending real money on paid ads, and it could not say which ones produced work. No UTM parameters on any link. Attribution rested on one question in a form - "How did you hear about us?" - answered by the lead, from memory, after the fact. New leads arrived and nobody could name the channel that produced them.

Over roughly four months we audited the account, rebuilt the tracking from the ground up without ever switching the live site off, and handed back a measurement layer a business owner could read. A third-party tracking checker scored the setup 30 out of 100 on day one. It scored 97 out of 100 when the rebuild went live.

💡
The short version
  • The measurement layer was rebuilt in parallel, so the site never went dark and no leads were lost mid-build.
  • Every lead now carries its source, the campaign that produced it, and where it ended up - in one record.
  • The same work removed a recurring automation bill and replaced it with a cheaper, more flexible setup.
  • The client later paused the project for its own strategic reasons. The data kept flowing, clean, the whole time.

The situation: growth the business could not trace

The business was not failing at marketing. It was failing at seeing its marketing. Leads arrived through a website form, a scheduling tool, and paid social, and the numbers those systems produced did not agree with each other or with reality. Decisions were being made on a spreadsheet that a person kept by hand, which is the most expensive kind of dashboard: it looks authoritative and it is often wrong.

Before a single new tag was written, we did an audit. The point of the audit was not to list problems - it was to establish what the business could and could not prove about its own spend.

0 Tracking score at audit Measured out of 100
0 Tracking score at handover Same checker, same account
0 Hours of site downtime Old tracking stayed live during the rebuild
$0 Yearly automation saving Canadian dollars, after the switch

What the audit found

Six findings mattered. Each one on its own is common. Together they explain why the reported numbers could not be trusted.

⚠️
Six findings that made the data unreliable
  • No UTM parameters anywhere. Nothing told the analytics platform which channel, campaign or creative produced a visit.
  • The form did not pass its own context. The lead form was embedded in an iframe, so UTM values on the page never reached the submitted record.
  • The scheduling tool sat outside analytics. Bookings were the real conversion, and they were invisible to reporting.
  • Event names were inconsistent. The same action was recorded under different names, so no two reports agreed.
  • Duplicate and stray events. Some conversions were counted twice, inflating the numbers the ad platforms optimised toward.
  • Server-side tracking was effectively absent. Which is where the 30-out-of-100 score came from.

The duplicate events are worth pausing on, because they are the most expensive kind of tracking bug. When a conversion fires twice, the ad platform learns that a click is worth more than it is - and it goes and finds more clicks like that one. The spend follows the error. Fixing the count is not housekeeping. It is protecting the bid strategy from its own bad data.

Before and after

This is the whole project on one screen. The left column is what the business had. The right column is what it had at handover.

Layer Before After
Channel attribution One self-reported form question UTM parameters captured and stored on every lead
Lead form Embedded, context lost Carries its source into the submitted record
Bookings Invisible to analytics Tracked as a conversion, with clean event names
Conversion counts Duplicated and inconsistent One definition per action, no double counting
Server-side tracking Effectively absent Live, with cleaner events sent to the ad platforms
Lead record Hand-kept spreadsheet Automatic log: source, campaign, and status per lead
Tracking score 30 of 100 97 of 100

The method: run the new tracking alongside the old

The single rule that shaped the whole rebuild was this: never break the measurement the business already depends on. We did not switch the old tags off to install the new ones. We built the new event structure in parallel, ran it alongside the existing setup, and compared the two until the new one was provably cleaner.

That is slower than a rip-and-replace, and it is why the site never went down and no lead went unrecorded. The client's own hosting team kept a standing constraint that nothing could be switched off without proof it was safe. The parallel run is that proof.

"The rebuild ran alongside the old tracking and switched over only once the new events were proven clean - which is why the business never lost a lead to the migration."

Net Profit Positive

What we built

The stack below is the house standard for a client who needs to trust their own numbers. Every layer has one job, and every layer can be explained to a business owner in a sentence.

Layer Platform What it does
Tag management Google Tag Manager (web and server containers) One place to define and change every tracking rule
Analytics Google Analytics 4 Behaviour: what people do on the site, with standard event names
Paid search Google Ads conversion tracking Feeds the bid strategy the conversions that actually matter
Paid social Meta Pixel and Conversions API Cleaner, server-side events that survive browser restrictions
Server-side tagging A managed server-side host First-party delivery of events, less loss to blockers and cookie limits
Lead capture UTM hidden fields on the form Carries the source through to the submitted lead
Lead record Google Sheets, written automatically One row per lead: source, campaign, and outcome
Reporting Looker Studio - built by Siempre Reporting One dashboard that reads the layers above without hand-compiling
📊
Why server-side tracking is the layer most businesses skip

Browser-based tracking loses events to ad blockers, cookie limits and slow pages. Server-side tracking moves the measurement off the visitor's device and onto a server the business controls, so more of the truth survives the trip. It is also the layer that moved this account's score from 30 to the high nineties.

The score, step by step

Progress was measured the whole way with the same third-party tracking checker, so the improvement is not our opinion - it is the same yardstick applied four times.

Tracking health, 30 to 97 out of 100

Same third-party checker, same account, four checkpoints across the rebuild

100 75 50 25 0 30 58 89 97 Audit Parallel run Approved Handover
Build in progress Approved and live Handed over

From data to decisions

Clean tracking is not the goal. It is the raw material for decisions. Once every lead carried its source and its campaign, five questions the business could not answer before became routine:

📈
What the data answered after the rebuild
  • Which channel produces leads, not just clicks. Source now travels with the lead all the way to the record.
  • Which campaign produces the best leads - the ones that book, not just the ones that fill in a form.
  • Where leads leak. Between the form and the booked call, the record shows exactly where people stop.
  • What a lead actually costs by channel, so budget can move toward what works instead of what looks busiest.
  • Whether search or social is doing the work. The two lanes are measured separately, so neither hides behind the other.

This is the difference between reporting and business intelligence. A report tells you what happened last month. A lead record that carries its source tells you which of your decisions produced money - and which did not.

The automation switch

While the tracking was being rebuilt, a second problem surfaced: the automation that moved leads between systems was priced by volume, and the volume had outgrown the plan. The bill was climbing with success, which is the wrong way for a fixed cost to behave.

💸
The automation bill, before and after
  • Before: roughly CAD $2,266 a year on the base plan, and past the 10,000-task cap - so the real cost was climbing toward CAD $4,000 a year in overages.
  • After: the same automations rebuilt on a task-based platform at USD $53 a month (CAD $636 a year) for everything, or USD $29 a month (CAD $348 a year) for just the critical flows.
  • The result: more than CAD $1,300 saved a year, with overage pricing that costs a fraction of the old rate as volume grows.

We priced the migration at a one-time CAD $997 and confirmed it covered the whole move. We also tested the obvious alternative - folding everything into the client's CRM and dropping both automation tools - and recommended against it: the connectors were unverified there, and going native would have meant replatforming the client's entire CRM to save a subscription. The cheaper tool was the cheaper answer.

The dashboard layer

Tracking produces data. A dashboard is what makes it usable. For this build, the reporting layer sits on top of everything above and turns it into one screen the owner can open without asking anybody for a report.

That layer is built by Siempre Reporting, our partner and dashboard provider. Siempre Reporting builds Looker Studio dashboards on top of a client's own Google tracking - Google Tag Manager, Google Analytics and Google Ads - and, where it helps, inside the system the client already uses. Net Profit Positive teaches the owner what to look at; Siempre Reporting builds the thing they look at. The two are designed to fit together, which is why a tracking rebuild and a dashboard are one engagement here, not two.

The reporting layer

See every number in one place

Siempre Reporting turns clean tracking into a dashboard the owner actually opens - search terms, keywords, regions and lead sources, updating on their own.

Visit Siempre Reporting →

How it ended

The build finished and was handed over. Then, a few weeks later, the client paused. It is worth being straight about why, because it is not the part a vendor usually prints: the pause was a decision about the client's own priorities, not a failure of the tracking. The lead record was still capturing leads cleanly on the day they stopped using it.

Two things we would do exactly the same way again:

  • We did not push the client to switch off their site security to make our measurement easier. Their hosting provider said the layer could not be removed without real risk. We relayed that honestly instead of asking them to accept the risk for our convenience.
  • We left the door open, not a bill. When the client signalled they might move more of their setup into their CRM the following year, we showed how the same data flow could route there - rather than treating it as a reason to start over.

A tracking system that keeps working after the engagement ends is the point. It means the client can walk away and still own something useful - and it means the work stands on its own.

What this means for your business

If any of this sounds familiar - leads you cannot trace, a spreadsheet somebody keeps by hand, ad platforms optimising toward numbers you do not trust - the audit is where it starts. We look at what you already have, score it honestly, and tell you what it would take to make every lead countable. No rebuild is proposed until we can show you what is actually broken.

Free tracking review

Find out what your tracking is missing

We audit Google Tag Manager, Analytics and your conversion tracking, then show you - in plain language - what is broken, what it costs you, and what a rebuild would involve.

Request a Review →
NPP
Net Profit Positive Attribution and Tracking Team

We build ad campaigns around what lands in your account, not what looks good on a dashboard. Case studies are anonymised where the client has not approved being named, and every number in them comes from the tools that produced it.