Server-side · CAPI · Consent Mode

Conversion tracking that your ad platforms can actually learn from

We rebuild your measurement server-side so Google, Meta and Microsoft optimise on conversions that actually happened, and we audit what you already have, free, before you commit to a fixed fee from £995 a month per platform.

Get your free audit

No pitch. No obligation. We reply within one business day.

Or talk to us about it ↓

In short

Conversion tracking is what your bidding algorithms learn from, so broken tracking is a bidding problem rather than a reporting one. We build server-side Google Tag Manager, Enhanced Conversions, Meta CAPI, Microsoft UET and Consent Mode v2, then feed CRM outcomes back. We audit what you already have first, free.

Server-side tracking: stop training the algorithm on fiction

Broken conversion tracking is not a reporting problem. It is a bidding problem.

Smart Bidding and Advantage+ are machine-learning systems. They do not know who your customers are. They know which of the people they served an ad to came back and fired a conversion event. That set of events is the training data — and if it is incomplete, duplicated or attached to the wrong action, the platform does not hesitate. It spends your budget with total confidence on the wrong people.

That is the argument for taking tracking seriously. A misreported number is annoying. A misreported number that has fed a bidding algorithm for six months has quietly rebuilt your targeting around whichever segment happened to be measurable.

Server-side tracking is the foundation that fixes it. A lightweight tag still fires in the browser, but it sends the event to a tagging server on a subdomain you own — normally server-side Google Tag Manager. That server cleans the event, adds first-party data, de-duplicates it and forwards it to each platform through their APIs — so the browser is no longer responsible for delivering your conversions.

It matters because the browser stopped being reliable years ago:

  • Safari’s Intelligent Tracking Prevention caps cookies written by JavaScript at seven days — and at 24 hours when the visitor arrives from a domain Safari has classified as having cross-site tracking capabilities and the landing URL carries a query string. A click on Monday and an enquiry the following week can look like two unrelated strangers.
  • Ad blockers silently drop browser tags. Nothing errors — your dashboard still shows numbers, they are just the wrong numbers.
  • Bookings and enquiries that complete on a third-party subdomain — clinic systems, booking engines, hosted forms — routinely lose the click ID at the handoff.

We are careful about what we promise this recovers. Across the industry you will see 10–40% quoted, almost always unsourced. In our own client work we see a more conservative 15–25% of lost attribution recovered, and we would rather quote what we measure than the brochure number.

It depends entirely on how leaky your setup was. A clean single-domain site with the enquiry form on the same domain recovers far less than a clinic taking bookings on a separate subdomain. We measure your gap before anyone quotes you a figure.

One thing server-side tracking is not: a way around consent. It changes where data is processed, not whether you are allowed to process it.

Meta CAPI: Event Match Quality is the number that moves delivery

On Meta, server-side means the Conversions API. Your server sends conversion events straight into your dataset alongside the browser pixel, sharing an event ID so nothing is counted twice.

The metric that matters is Event Match Quality — Meta’s score for how confidently it can tie each event to a real person it showed an ad to. EMQ is not a vanity metric. It is the mechanism. Low match quality means Meta cannot connect the lead back to the impression, so the delivery system never learns which audience produced it, and Advantage+ keeps optimising toward whatever it can still see.

What lifts it is the identifiers you send with every event: hashed email, phone, first and last name, city and postcode, the click ID, and a stable external ID from your CRM. Meta’s own documentation is clear that running the Conversions API alongside the pixel improves matching and ad performance. It does not publish a guaranteed uplift figure, and neither will we — what we will do is show you your current match quality, event by event, before you commit to anything.

One clinic we worked with took bookings through a subdomain application, so the pixel recorded the ad click and never saw the booking. Event Match Quality sat at 4.2. We implemented server-side CAPI and pulled booking data from their backend to close the subdomain gap. Reported conversions rose 38% in the first four weeks and Event Match Quality improved to 8.1 — with the campaigns unchanged and the spend unchanged. The patients had been booking all along. The system simply could not measure them.

Two things we check on every lead-gen account:

  • Deduplication. Browser pixel and CAPI both firing without a shared event ID double-counts every lead. Flattering, and it corrupts delivery.
  • Which event is the optimisation event. If Meta is optimising toward a form submission, it will find you people who submit forms. That is not the same as people who buy.

That fix is further down this page, in offline and CRM conversions. It is the single biggest lever in most accounts we take over, and it is built into every Meta Ads account we manage.

Google Enhanced Conversions: Smart Bidding can only bid on what it can see

Enhanced conversions send a hashed email address or phone number alongside the conversion, so Google can match it against signed-in users and recover conversions the tag alone could not attribute. It is the highest-return hour of tracking work available in most Google Ads accounts, and it does not require a server container.

Google simplified the setup in 2026. Enhanced conversions for web and for leads are now a single on/off setting, and from April 2026 Google Ads accepts user-provided data from your website tag, from Data Manager and from API connections at the same time. For lead generation, the leads side is the important one: the click ID is captured at form submission, stored against the record in your CRM, and the conversion is reported back later when that lead becomes something worth having.

Before any of that, though, we audit the conversion actions themselves. The most common cause of wasted spend we find has nothing to do with privacy:

  • Multiple conversion actions tracking the same event — a hardcoded tag, a plugin and a GTM tag all firing on one thank-you page.
  • Triggers set to fire too broadly, so page views are being counted as enquiries.
  • The wrong action marked as Primary, meaning Smart Bidding is training on a newsletter signup while the phone calls sit in Secondary, tracked but ignored.

Only Primary actions influence bidding. Getting that list right costs nothing and frequently changes performance more than anything else we do in the first month of a Google Ads engagement.

Consent Mode v2: the data loss you inflict on yourself

If you advertise to UK or European users, Google expects consent signals passed with your tags — ad_user_data and ad_personalization alongside the two storage signals, ad_storage and analytics_storage. Without them you do not just lose the users who declined. You lose conversion modelling, and you lose the ability to build remarketing and Customer Match audiences properly.

Implemented correctly, it works like this: a certified consent platform is wired into your container, all four signals default to denied before any interaction, they update to granted dynamically when someone accepts, and Google models the conversions from declined-consent users based on patterns in the consenting ones. That modelled data feeds Smart Bidding. It is not a workaround — it is the mechanism Google built to keep bidding viable under consent law.

The misconfiguration we find most often is a cookie banner that exists, and a Consent Mode implementation that never sets a default denied state — so tags fire regardless of what the visitor chose. That is a compliance exposure and a data problem in the same line of code.

Worth knowing: modelling is not automatic. Google requires your tags to meet a data collection threshold before it will model at all, and advanced consent mode earns an advertiser-specific model where basic gets a general one. Smaller accounts should expect the compliance benefit before the recovery benefit.

Microsoft UET: usually the worst-configured tag in the account

Microsoft Ads is where imported campaigns go to be forgotten. The campaign structure comes across from Google in ten minutes; the tracking almost never does. We routinely take over accounts where the UET tag sits on the site with no conversion goal attached, or with goals built years ago against URLs that no longer exist.

What a current Microsoft setup looks like:

  • UET properly triggered, with conversion goals mapped to real destination or event triggers, and the click ID (msclkid) captured into your CRM at the point of enquiry — Microsoft suggests retaining it for 90 days.
  • Enhanced conversions, sending hashed email and phone with the conversion to recover matches the tag alone missed.
  • The Conversions API, which Microsoft published full documentation for in August 2026. It runs alongside UET rather than replacing it, carries website, CRM, offline and app events through one connection, and shares an event ID with UET so the same conversion is not counted twice.
  • Consent handling, with a consent flag on each server-side event. Microsoft recommends Advanced Consent Mode, which applies modelling to estimate the conversions declined consent would otherwise cost you — the same trade as Google’s.

Microsoft is a smaller channel for most lead-gen businesses, and a cheaper one. It deserves working tracking for the same reason the others do: its bidding is only as good as the events you send it.

Offline and CRM conversions: where lead generation is actually won

Everything above makes the platform’s view of your website accurate. It still does not tell the platform which of those enquiries was worth anything.

This is the difference between lead generation and ecommerce, and it is why lead-gen accounts optimised purely on form fills plateau. A form submission is not revenue. It is a stranger typing their name in. Optimise to it and the algorithm will find you the cheapest possible strangers — tyre-kickers, wrong postcodes, jobs you do not do. Send the platform the stages that actually matter and it will go and find more people who reach them.

The build looks like this:

  • Capture and store the click IDs against every lead record — gclid, gbraid and wbraid for Google, msclkid for Microsoft, the Meta click ID and lead ID for Instant Forms — as a hidden field at the point of enquiry.
  • Define the stages your business actually cares about: qualified enquiry, consultation booked, consultation attended, sale closed.
  • Send those stages back as conversions with real values, from your CRM. Into Google via offline conversion import or Data Manager, into Microsoft via its Conversions API, and into Meta via the Conversions API — offline and CRM events now attach to the same dataset as your web events rather than sitting in a separate offline system.
  • Move bidding onto the deeper event, or onto value, once there is enough volume to support it.

Two caveats. Long sales cycles push conversions outside the platform’s attribution and upload windows, and low-volume accounts starve the algorithm if you optimise to a stage that happens four times a month. We pick the deepest event you have enough of, not the deepest one that exists.

Tracking audit: we tell you what is broken before you commit to anything

Every conversation with us starts the same way. We audit what you have and send you a written summary of what we found — before you have paid us anything.

What we look at:

  • Every conversion action in Google Ads and Microsoft Ads: status, duplication, what is Primary and what should be.
  • Your GTM container — which tags fire, on what, and whether anything fires where it should not.
  • Meta dataset health: Conversions API status, Event Match Quality by event, deduplication, and which event delivery is optimising toward.
  • Consent Mode configuration, and whether modelling is running or silently switched off.
  • The gap itself: your last 30 days of real enquiries from your CRM against what each platform reported for the same period. If a platform is showing well under what actually happened, there is something to recover.

If the answer is that your tracking is fine and your problem is the campaigns, we will tell you that. It happens more often than the industry admits, and we would rather say it than sell you infrastructure you do not need. A standard build — server container, CAPI, Consent Mode v2 and first-party enrichment — takes us five to ten working days from onboarding, and testing takes longer than building.

Pricing: fixed fee, no contract, founder-managed

Fixed fee from £995 per month, per platform. Not a percentage of your ad spend, which pays an agency more for spending more of your money.

The tracking build is a one-off fee, quoted up front and separate from the monthly management fee, because it is a one-off job rather than an ongoing cost. It is not optional, though — we are not prepared to be judged on numbers we do not trust. Full detail is on our pricing page.

You get Jake and Jamie doing the work themselves. No account managers, no juniors, no ticket queue — if you need one of us, you get one of us. Month to month, so we keep the account by being worth keeping. We work with lead-generation businesses across the UK.

If you want to know how much conversion data you are currently losing, ask us for the audit. We will show you the gap first and talk about the work second.

Get a free audit

Ready to run ads
that actually pay?

Tell us what you are measuring today and we will tell you what you are missing. We’ll come back with a free tracking audit and a straight answer on whether we can help — usually within one business day.

  • Free tracking & account audit
  • No contracts, no lock-in
  • Direct access to Jamie & Jake








We reply within one business day. No spam, ever.