Conversion Tracking That Survives an Audit: A Step-by-Step Setup

Most ad accounts are optimising toward numbers that do not match the CRM. Here is how we build tracking that reconciles with actual sales, including consent mode, offline imports and deduplication.

Analytics · · 10 min read

When we audit an account, the first thing we do is not look at campaigns. We export conversions from the ad platform for the last 90 days and put them next to the client's CRM or invoicing data. In roughly seven out of ten audits, the two numbers differ by more than 25%. Everything downstream — bidding, budgets, the agency's monthly report — is built on the gap.

Step one: define the events that matter

Write down every action a visitor can take, then sort them into three tiers. Primary conversions are the ones you want smart bidding to chase: a submitted qualified enquiry, a booked appointment, a completed purchase. Secondary conversions are useful diagnostics: newsletter signups, pricing-page views, PDF downloads. Everything else is noise and should not be recorded as a conversion at all.

The failure mode here is generosity. An account that counts form fills, phone clicks, WhatsApp clicks, email clicks and PDF downloads all as primary conversions is telling the algorithm that a brochure download is worth the same as a £6,000 contract. It will then buy you brochure downloads, efficiently and in volume.

Step two: fire events server-side where you can

  • Browser-only tracking loses conversions to ad blockers, ITP cookie limits and users who close the tab before the thank-you page renders.
  • Sending the conversion from your server at the moment the record is created captures the event regardless of browser behaviour.
  • Pass a stable event ID with both the browser and server event so the platform can deduplicate. Without it you will double-count and over-bid.
  • Include hashed email and phone where you have consent — this is what powers enhanced conversions and materially improves match rates.

Step three: handle consent properly

In the EU and UK, Consent Mode v2 is not optional if you want conversion modelling and remarketing to function. Implement it so that tags load in a denied state and update on consent, rather than blocking tags entirely. Blocking outright means Google receives no signal at all and cannot model the gap; a correctly configured denied state still transmits cookieless pings that feed modelled conversions.

Expect a reported drop when you first implement consent correctly. That drop is not lost performance — it is the removal of numbers you were never entitled to count.

Step four: import what happens after the click

For any business with a sales cycle longer than a day, the click-level conversion is only the beginning. Offline conversion imports send the outcome back: lead created, lead qualified, proposal sent, deal won, with the actual revenue attached. Google Ads and Meta both accept these, keyed on GCLID/GBRAID or a hashed identifier.

  • Capture GCLID, wbraid/gbraid and fbclid into hidden form fields and store them on the CRM record at creation.
  • Push a 'qualified' event back within 24–48 hours of the sales team's decision — smart bidding weights recent data heavily.
  • Push 'won' with revenue whenever the deal closes, even if that is 60 days later.
  • Once imports run reliably, switch the bidding target from raw leads to qualified leads. This one change is usually worth more than any campaign restructure.

Step five: reconcile monthly and write it down

Set a fixed monthly ritual: platform conversions, analytics conversions and CRM records side by side for the same date range, using the same attribution window. Small variance is normal — attribution models differ, and Google reports on click date while your CRM reports on creation date. Variance above 15% needs an explanation before anyone touches a bid.

Common faults we find, ranked by frequency

  • The thank-you page is reachable directly or reloads on refresh, inflating conversions.
  • A duplicate tag fires the same event twice through both a hardcoded snippet and a tag manager container.
  • Phone-click conversions counted for people already on the contact page, most of whom are existing customers.
  • Cross-domain tracking missing between the main site and a third-party booking system, so every booked appointment is attributed to a referral.
  • Conversion window left at the default 30 days on a product with a 90-day consideration cycle, hiding most of the return.

None of this is glamorous work and none of it produces a screenshot worth posting. It is, however, the difference between an account that compounds and an account that merely spends.

Want this applied to your account?

Book a free 30-minute call and we will review your current setup against the points above.

Book a strategy call

More insights