Your conversion tracking is probably lying to you. Not dramatically, not obviously, but consistently enough that some portion of your budget is allocated on the basis of events that never happened.
That is not a provocative claim. It is what we find in the large majority of accounts we audit, and the reason it persists is simple: nothing in Google Ads or GA4 flags it. A conversion counted twice looks exactly like two conversions. The platform reports it, your dashboard displays it, and your team plans the next quarter around it.
Why does most conversion tracking have at least one significant problem?
Conversion tracking is rarely designed. It accumulates. A tag for a campaign, a snippet hardcoded during a rebuild, an agency adding its own during onboarding, and each decision defensible on its own. What they add up to is a measurement layer nobody fully understands and nobody is willing to touch.
A tag gets added for a campaign launch. A developer hardcodes a snippet during a site build because it was faster than waiting for access. An agency adds their own tracking during onboarding and nobody removes the previous agency's. A thank you page URL changes during a redesign and a trigger silently stops matching.
Once nobody understands it, nobody is willing to change it either, because the risk of breaking working tracking outweighs the discomfort of not trusting it.
What are the most common conversion tracking mistakes?
Seven, and the first accounts for more damage than the rest combined: duplicated conversion actions, tags firing on page load, trigger conditions loose enough to catch anything, conversions never instrumented at all, wrong counting settings, values arriving empty, and no deduplication between browser and server.
Duplicate conversion actions. The single most frequent finding. The same conversion tracked twice, usually because the tag exists both in the site template and in Google Tag Manager. Every purchase counts as two. Your cost per acquisition appears to halve, which nobody questions, because good news rarely gets audited.
Conversions firing on page load. A tag set to fire when someone reaches a thank you page also fires when they refresh it, navigate back to it, or land on it directly from a search result. The event is recording a page view and calling it a purchase.
Loose trigger conditions. A URL condition using "contains" instead of "equals" catches every path sharing that string. A trigger built for "/thank-you" also fires on "/thank-you-for-subscribing", so your purchase conversion quietly absorbs newsletter signups.
Missing conversions entirely. Less visible and often more expensive. A phone number click, a chat initiation, or a secondary form that was never instrumented. You cannot optimize toward an action nobody is recording, and its absence looks identical to it simply not happening.
Wrong counting settings. In Google Ads, "Every" versus "One" determines whether repeat actions from the same person all count. Lead generation should almost always use "One" so a prospect submitting three forms counts once. Ecommerce should use "Every". Reversing these is common and quietly distorts everything downstream.
Values that arrive empty. A tag configured to read a data layer variable the site stopped populating does not throw an error. It fires and sends nothing. Revenue arrives as zero, and every value based decision after that is built on it.
No deduplication across paths. If you run both a browser pixel and a server side or Conversions API path, both need a consistent event ID so the platform recognizes them as one event. Without it, everything doubles.
What does inflated conversion data do to your ad campaigns?
The reporting damage is obvious. The bidding damage is larger. Duplicated conversions teach the model that certain audiences convert at twice their real rate, so budget flows toward them. Missing conversions do the mirror version, making genuinely productive channels look like waste.
Smart bidding is a learning system trained on the conversions you report. Each one is an example that says "find more of this." Duplicate them and the model concludes certain audiences convert at twice their real rate, then bids up those auctions accordingly. It is not malfunctioning. It is doing precisely what you taught it.
The knock on effect is budget reallocation. Campaigns showing the strongest apparent efficiency attract more spend. If inflation is uniform, you have shifted budget on noise. If it is uneven, because one campaign's conversion path triggers the duplicate and another's does not, you have systematically funded the worse performer.
Those unrecorded channels get cut, often the ones producing your best customers through a path nobody instrumented.
How do I spot bad conversion tracking?
Six checks, and you can run all of them in an afternoon: reconcile a month against your backend, watch a conversion happen in real time, look for conversions tracking your session count too closely, look for round number patterns, read the conversion actions list, and inspect the data layer.
Reconcile against your backend. Take one full month. Compare Google Ads and GA4 conversions against your CRM or ecommerce platform. Attribution differences explain modest variance. They do not explain a gap approaching double.
Watch a conversion happen. Run GTM preview mode, complete the action on your own site, and count how many times the tag fires. This takes ten minutes and catches most duplication.
Check whether conversions track sessions too closely. If form submissions rise and fall in near lockstep with traffic, the event is probably firing on page load rather than on submission.
Look for round number patterns. Conversion counts that are consistently near multiples of your page view counts are a strong duplication signal.
Review the conversion actions list. In Google Ads, open Tools then Conversions. Look at the "Include in Conversions" column, the counting setting, and the status column. Anything showing no recent conversions is broken or obsolete.
Inspect the data layer. In preview mode, open the Data Layer tab on your conversion event. Undefined and empty string are both failures, even though the tag reports success.
How do I fix the most common problems?
Each failure has a specific repair, and all of them end the same way, with a check in preview mode that the tag now fires exactly once. Work through them in the order below, because removing duplicates first is what makes everything after it measurable.
For duplicates: find both instances. Search your site source for the measurement snippet as well as checking GTM, because the hardcoded one is the instance people forget. Remove one, then verify in preview mode that the tag now fires exactly once.
For page load triggers: move the conversion onto a real interaction. A data layer event pushed on successful form submission is far more reliable than a thank you page URL, because it cannot be triggered by a refresh or a direct visit.
For loose conditions: change "contains" to "equals" wherever the exact path is known, and tighten click triggers from All Elements to a specific selector.
For missing conversions: map your funnel and list every action worth measuring, then check each against what is actually instrumented. The gaps are usually obvious once written down.
For empty values: this is a development task, not a tag task. The data layer must carry the value before the tag reads it. Specify what you need, give it to your developers in writing, and verify in preview mode.
For deduplication: ensure a unique transaction or event ID is generated once and passed identically through every path.
When should I bring in a professional?
Settings level changes are reasonable to handle yourself. Unmarking actions that should not be conversions, correcting counting settings, tightening a URL condition. These have clear right answers and limited blast radius. The line moves as soon as a fix means changing what fires while keeping working tracking intact.
Rebuilding conversion tracking on a live ecommerce site, resolving duplication where you cannot determine which instance is safe to remove, or coordinating a data layer implementation with developers who have other priorities. Getting these wrong costs you another quarter of untrustworthy data on top of the quarter you already lost.
The honest test: if you cannot predict what a change will do to your historical reporting, get help before publishing it.
The part that stings
Every optimization you have made, every budget shift, every campaign you paused for underperforming, was a decision made using this data. If the data was wrong, some of those decisions were wrong, and you have no way to identify which ones.
That is the actual cost. Not the reporting inaccuracy, but the accumulated decisions made on top of it.
FAQ
How do I know if my conversion tracking is accurate?
Reconcile a full month of platform reported conversions against your CRM or ecommerce backend. Then run GTM preview mode, complete a conversion yourself, and confirm the tag fires exactly once with a populated value. Attribution differences explain modest variance between systems. A gap approaching double almost always means duplication.
Why are my Google Ads conversions higher than my actual sales?
The most likely cause is duplicate tracking, where the same conversion tag exists both in your site template and in Google Tag Manager. Other causes include conversions firing on page load rather than on purchase, the counting setting being set to Every when it should be One, and missing deduplication between browser and server side reporting paths.
What is the difference between Every and One conversion counting?
Every counts each conversion from the same person separately, which suits ecommerce where repeat purchases are genuine additional revenue. One counts only the first per click, which suits lead generation where a prospect submitting three forms is still one prospect. Choosing Every for lead generation inflates volume and misleads bidding.
Can duplicate conversions be fixed without losing historical data?
Historical data cannot be corrected retroactively, but you can stop the problem going forward. Expect a visible drop in reported conversions on the fix date, and annotate it so future trend analysis does not read it as a performance decline. Keep a note of the approximate inflation rate so past periods can be interpreted sensibly.
How often should conversion tracking be checked?
Reconcile against your backend monthly, which takes minutes once you have the habit. Run a full verification in preview mode after any site redesign, checkout change, CMS migration, or new payment provider, because those changes break tracking more reliably than anything else. An annual full audit catches the drift that accumulates in between.