Almost every account I audit has a tracking problem, and almost nobody knows it before we look. The campaigns are not usually the first thing that is wrong. The measurement underneath them is. And because broken tracking still produces numbers — neat, confident, dashboard-shaped numbers — it can go unnoticed for a year while it quietly makes every decision slightly worse.
This is what I find most often, why it happens, and what it actually costs.
Broken tracking does not look broken
A missing conversion tag is easy to catch: the number is zero and somebody complains. The expensive failures are the ones that still report something. A thank-you page that fires the conversion on every reload. A GA4 key event counted once per page view instead of once per submission. A Google Ads conversion action set to “every” instead of “one” for a lead form. Each of these produces a plausible number that is simply wrong, and plausible wrong numbers survive review meetings.
The practical test is not “do we have conversions?” It is “does the conversion count in the ad platform reconcile with the number of real leads in the CRM for the same week?” In most accounts I see, it does not — and the gap is often 20–40%, in either direction.
The mistakes I see most
Duplicate events. The Meta Pixel is in the site template and again in Google Tag Manager. Or a purchase fires on page load and on a later confirmation trigger. Conversions inflate, cost per acquisition looks great, and budget gets pushed toward campaigns that are not really winning.
Pixel without Conversions API. Browser-side tracking loses a meaningful share of events to ad blockers, iOS privacy settings and consent banners. Without Meta Conversions API (CAPI) sending server-side events, Meta optimises on partial data. When CAPI is added without proper event IDs, the same conversion is then counted twice because browser and server events never deduplicate.
Micro-conversions as primary conversions. Newsletter signups, PDF downloads and “contact page viewed” get marked as primary conversions because they produce comfortable volume. Smart Bidding then buys people who download things, not people who buy things.
Consent mode implemented halfway. A cookie banner goes live, tags are blocked before consent, and nobody configures consent mode or modelling. Conversions drop 30% overnight and get blamed on the media.
Cross-domain and form embed gaps. The form lives on a booking subdomain or a third-party embed, the session breaks at the handoff, and the conversion is attributed to direct traffic. Paid media looks weak; direct looks suspiciously strong.
Why attribution then falls apart
Attribution is only as good as the events feeding it. If events are duplicated, missing or firing on the wrong page, no attribution model will rescue the report. On top of that, the platforms disagree by design: Google Ads credits the conversion to the click date, GA4 credits it to the session in which it happened, and Meta uses its own attribution window. Comparing them without agreeing on windows and definitions produces arguments, not decisions.
The fix is boring and effective: one event taxonomy implemented consistently across GTM, GA4, Google Ads and Meta; a documented attribution window; and a monthly reconciliation between platform numbers, analytics and the CRM. That is most of what attribution and analytics measurement work actually is.
What it costs in real money
Here is the mechanism people miss. Modern bidding is trained on your conversion data. If 30% of your reported conversions are duplicates or low-value micro-conversions, the algorithm is not just reporting badly — it is actively learning to find more of the wrong people. You pay for that twice: once in wasted impressions, and again in the better prospects you never bid on.
Run the arithmetic on your own account. At $20,000 a month with a reported $80 cost per lead, that is 250 leads. If 25% of those events are duplicated or junk, your real cost per qualified lead is closer to $107 — and every scaling decision made on the $80 figure is wrong. Sales feels it before the dashboard shows it, which is why “the leads are bad” is so often a measurement problem wearing a media costume.
How to check your own setup this week
Open GTM preview and submit your own form. Confirm the event fires exactly once. Compare last month's platform conversions against real leads in your CRM. In Meta Events Manager, check event match quality and whether browser and server events are being deduplicated. In Google Ads, check the count setting on every conversion action and whether enhanced conversions are enabled. In GA4, confirm your key events correspond to real business outcomes rather than page views.
If two or more of those checks fail, fix the measurement before you touch budgets. There is no point optimising toward a number you cannot defend. That is the whole argument for treating conversion tracking and GA4 setup as a project in its own right, whoever is managing the media.
If you want a second opinion
I do this work directly — there is no account manager between you and the person in the container. Book a 30-minute call and we will go through what your account is reporting and what it should be. You will leave with a ranked list of what to fix first, whether or not you hire me. If you would rather start with the media side, the same applies to a paid media account audit.
