August 20, 2026 · 7 min read
How to Know If Your GA4 Is Tracking Correctly
Most GA4 properties have at least one tracking problem quietly skewing every report. Here is how to confirm whether yours is one of them.
Read articleAnalytics & Tracking
July 2, 2026 · 7 min read
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.
Conversion tracking is rarely designed. It accumulates.
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.
Each of those decisions was individually defensible. Together they produce a measurement layer nobody fully understands, and 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.
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.
The reporting damage is obvious. The bidding damage is larger.
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.
Missing conversions cause the mirror problem. Channels whose conversions go unrecorded look like waste and get cut, often the ones producing your best customers through a path nobody instrumented.
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.
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.
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 when the fix requires 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.
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.
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.
Accurate, deduplicated conversions wired into every platform you buy media on.
August 20, 2026 · 7 min read
Most GA4 properties have at least one tracking problem quietly skewing every report. Here is how to confirm whether yours is one of them.
Read article
Analytics & TrackingAugust 18, 2026 · 7 min read
What a professional GA4 audit reviews, the problems it usually surfaces, and what changes in your reporting once they are fixed.
Read article
Analytics & TrackingAugust 13, 2026 · 7 min read
Containers rarely break all at once. They accumulate. Here are the symptoms that mean yours needs attention.
Read article