The Stakes of Wrong Conversion Counts
Google Ads Smart Bidding (Target CPA, Target ROAS, Maximise Conversions) optimises based on the conversion data it receives. If your conversion count is 2x what it should be (overcounting), Smart Bidding thinks your campaigns are performing twice as well as they are — it bids based on an inflated conversion signal. If it is 0.6x (undercounting), bidding is too conservative. Both cause budget misallocation.
Causes of Overcounting
1. Multiple Conversion Tags Firing for the Same Action
The most common cause. A legacy Google tag on the page fires one conversion, plus a GTM-managed conversion tag fires a second, for the same purchase. Result: 2 conversions recorded per purchase.
Diagnosis: in Google Tag Assistant or GTM Preview, check whether multiple gtag conversion calls fire on the thank you page.
Fix: remove the legacy hardcoded tag if GTM manages the conversion, or vice versa. Never run both.
2. Page Refreshes and Back-Navigation
If your order confirmation page can be reached again by refreshing or navigating back, the conversion tag fires again for the same order.
Fix: use a "conversion_id" cookie check — only fire the conversion tag if the conversion ID has not been recorded before. Alternatively, use a server-side flag on the order record.
3. Redirect Chains Firing the Tag Multiple Times
If the thank you page redirects once before settling, some tags fire on the intermediate page AND the final page.
Causes of Undercounting
1. Ad Blocker and Browser Privacy
Browser-side conversion tags are blocked by ad blockers (20-40% of desktop users) and Safari's ITP. Result: real conversions happen but the tag does not fire.
Fix: implement Google Ads Enhanced Conversions and/or server-side conversion tracking via the Google Ads API.
2. Tag Fires Before Page Loads Completely
If the GTM trigger fires on DOM Ready but the data layer push with order data happens after a JavaScript delay, the conversion tag fires with empty or zero values.
Fix: trigger on the custom event from the data layer push, not on DOM Ready. Ensure data layer push fires after order data is available.
3. Consent Mode Blocking
If Google Consent Mode is implemented and users deny analytics/ad consent, the conversion tag does not fire (or fires in cookieless mode, which counts differently).
Understanding: conversions from non-consenting users are not attributed — this is correct behaviour. Google uses modelled conversions to estimate the total including non-consenting. This is not a bug; it is privacy-compliant design.
Verification
Compare your Google Ads conversion count to your backend order count for the same period. If they diverge by more than 10-15% (allowing for some legitimate difference due to attribution windows and cross-device), investigate. A consistently higher Google Ads count indicates overcounting; consistently lower indicates undercounting.
Summary
Overcounting is most often caused by multiple conversion tags firing (legacy hardcoded tag + GTM tag) or page refreshes triggering the tag again. Undercounting is most often caused by ad blocker loss (fix with Enhanced Conversions or server-side), consent mode blocking (correct behaviour), or tag firing before data is available. Always verify against backend order counts to establish the direction and magnitude of the discrepancy.
See our Conversion Tracking Fix service for diagnosis and correction.
Need conversion count issues fixed? Contact Adslytics.
Need expert tracking setup?
Our Google Tag Manager experts have delivered 500+ tracking setups with a 98% success rate.
Get a Free Consultation →