Google Ads Conversion Tracking: Setup Guide + Common Mistakes
The report says 40 conversions. Your actual sales team logged twelve deals. Nobody's lying — the account is faithfully counting something, it's just not the thing you'd call a customer. This is worth checking before anything else in an account, because every other decision (which keywords to cut, which campaigns to fund, whether Smart Bidding is actually working) is measured against this number. Get it wrong and every downstream decision is confidently, quietly wrong along with it.
This covers setting conversion tracking up correctly from scratch, a concrete way to test that it's actually working (not just reporting something), the specific faults that corrupt otherwise-functioning tracking, and something rarely covered elsewhere: why broken conversion tracking doesn't just misreport performance, it makes it impossible to tell whether a traffic-quality problem exists at all.
Everything below can be done natively inside Google Ads and Google Tag Manager — no paid third-party tool is required to get tracking genuinely right.
Setting it up from scratch
Create the conversion action
Tools & Settings → Measurement → Conversions, named specifically
Place the two code snippets
Global site tag on every page, event snippet on the confirmation page only
Choose gtag.js or Tag Manager
Depends on how many tracking pixels you’re already managing
In Google Ads, go to Tools & Settings, then Measurement, then Conversions, and click the plus button to create a new conversion action. Choose Website, name it something specific and recognizable ("Demo Request Submitted," not "Conversion 1"), assign a value where one genuinely applies, and set the count method — One for lead generation, since three form submissions from one uncertain visitor is one lead, not three; Every for ecommerce, since three separate orders really are three sales.
Google generates two pieces of code: a global site tag, which belongs on every page of your site and initializes tracking generally, and an event snippet specific to this one conversion action, which belongs only on the page someone reaches after actually completing the action — the order confirmation or thank-you page, never the form or landing page itself.
Whether to implement this through Google Tag (gtag.js) directly or through Google Tag Manager depends mostly on how many tracking pixels you're managing. A single-platform setup with a developer who can edit the page head directly is fine with gtag.js alone — leaner, fewer moving parts. The moment you're managing a second ad platform, need non-developers to update tags without touching code, or want event-based triggers (form submits, button clicks) without a code change each time, Google Tag Manager becomes the more maintainable choice.
gtag.js vs. Google Tag Manager, concretely
Google Tag (gtag.js) suits a simple, single-platform setup: low setup complexity, but it requires a developer to edit the page head directly for any change, and it doesn't manage multiple tracking pixels well if you're also running Meta ads, LinkedIn ads, or other platforms alongside Google Ads.
Google Tag Manager requires slightly more setup complexity upfront but removes the developer dependency for every subsequent change — once GTM itself is installed, someone on a marketing team can add, edit, or remove tags and triggers directly through GTM's interface without touching site code again. It's also the more maintainable choice the moment you're managing tags for more than one ad or analytics platform, since everything routes through one container rather than separate hardcoded snippets scattered across your site.
For most growing accounts, the crossover point is straightforward: the moment you add a second platform beyond Google Ads that needs its own tracking pixel, GTM's centralized management starts paying for its slightly higher initial setup effort.
A concrete way to test it's actually working
"Google Ads shows conversions" is not the same as "conversion tracking is working correctly" — a tag firing on every page load still shows conversions, just the wrong ones. Verify with an actual walkthrough, not just a glance at the summary numbers.
Install Google's Tag Assistant Chrome extension, or use Google Tag Manager's built-in preview mode if you're using GTM. Complete a genuine test conversion yourself — submit the actual form, or complete an actual test purchase if that's feasible for your setup. Watch the tag fire in real time through Tag Assistant or GTM preview, and confirm two specific things: it fires exactly once, and it fires only on the confirmation page, not before.
Check back in Google Ads after 24 hours. The conversion action should show a "Recording" status rather than "No recent conversions" — if it's still showing no activity after a confirmed test conversion and a full day, something in the implementation is broken, and it's worth re-checking tag placement before assuming it just needs more time.
Do this test again after any site redesign, CMS migration, or significant page change — this is the single most common reason previously-working tracking silently stops, and it's worth building a habit of re-testing after changes rather than discovering the gap weeks later when performance data stops making sense.
It's worth testing from more than one device and browser if your budget and traffic justify the extra ten minutes — a tag that fires correctly on desktop Chrome but silently fails on mobile Safari (a genuinely common pattern given how differently that browser handles tracking scripts and cookies) will still show "Recording" status in Google Ads, since the desktop test succeeded, while quietly losing a real share of your actual traffic's conversions in the background.
Assigning conversion values, even when they vary
Skipping conversion values entirely is common, particularly for lead-generation businesses where a form submission doesn't have an obvious, fixed dollar figure the way a completed purchase does. This is worth reconsidering rather than defaulting to "don't use a value," since a conversion action with no value at all locks you out of value-based bidding strategies like Target ROAS or Maximize Conversion Value entirely — Smart Bidding needs a value signal to optimize toward return, not just raw conversion count.
Even a rough, estimated average value — based on your typical close rate and average deal size, updated periodically as those numbers become clearer — gives Smart Bidding meaningfully more to work with than no value at all. For businesses where lead value genuinely varies a great deal by source or by specific form (a demo request versus a newsletter signup, for instance), assigning different values to different conversion actions lets the bidding algorithm correctly prioritize the higher-value action over the lower-value one, rather than treating every tracked action as equally worth pursuing.
Four faults that quietly corrupt otherwise-working tracking
Soft actions counted as your primary conversion. A page view of the contact page, a click on a phone number, a newsletter signup, someone scrolling 75% down a page — all genuinely useful signals, none of them a customer. When one of these sits in your Primary conversion column, two things happen simultaneously: your reported cost per conversion looks a fraction of its real value, making the account appear far more efficient than it actually is, and Smart Bidding — which optimizes toward whatever's marked Primary — learns to chase whichever action is easiest to generate, which is always the soft one. A phone-number click specifically deserves a callout: it records the tap, not whether the call connected or lasted longer than a few seconds. If calls genuinely matter to your business, use call tracking with a minimum duration threshold, not a raw click count.
The same action counted twice. One form submission, two conversion actions firing — a native Google Ads tag and a separately imported GA4 event both describing the same submission. Cost per conversion instantly reads at roughly half its real figure. This is rarely deliberate; it's what happens when tracking gets set up once, then set up again later by someone who didn't know the first implementation already existed, which is a common outcome after an agency handover or an internal team change. Check for it by reading conversion action names and sources side by side in your Conversions list — two similarly-named rows with comparable volume, one sourced from a website tag and one from an analytics import, is the signature to look for.
The count setting nobody revisits. Every conversion action has a Count setting, either Every or One, and it's easy to leave on whatever the default was at creation rather than setting it deliberately for the specific action. Get this backwards on a lead-generation account — Every instead of One — and you're not just inflating a number, you're actively teaching Smart Bidding that repeat submitters from the same uncertain visitor are the goal, which sends the algorithm looking for more of exactly the wrong signal.
Consent gaps quietly deleting real conversions. Under GDPR, UK PECR, and similar regional privacy requirements, advertising and analytics cookies need visitor consent before they can track normally. A visitor who declines, with no fallback in place, has their conversion simply never recorded — the sale still happened, your tracking just never saw it. The tell is distinctive: conversions drop sharply on the exact day a cookie consent banner goes live, with no corresponding drop in clicks or real business activity. Google Consent Mode v2 is the fix — it sends cookieless signals when consent is declined and models the gap statistically — but it has to be implemented correctly, with consent defaults declared before the tag manager container loads, not after. Declared afterward, tags have often already fired once before the declaration takes effect, and the whole implementation becomes decorative rather than functional.
None of these four faults are exotic or rare — they're the specific, common, checkable things behind an account whose reported numbers look healthy while the actual sales figures tell a different story. Running through all four takes well under fifteen minutes once you know exactly where to look, and it's worth doing before trusting any other number the account reports, not as an occasional afterthought.
What double-counting actually does to a real decision
Say a campaign spends $3,000 in a month and generates 30 genuine leads — a true cost per conversion of $100. If a duplicate GA4-imported goal is quietly counting the same 30 leads a second time, Google Ads reports 60 conversions at $50 each.
That $50 figure isn't just cosmetically wrong — if you're running Target CPA bidding set based on what looked like a genuinely achievable $50 target, Smart Bidding will now chase a cost-per-conversion goal that's actually your real $100 target cut in half, systematically underbidding in auctions where you'd genuinely need to bid higher to compete, and losing volume to competitors as a direct, measurable result of a tracking configuration error rather than any real strategic or budget problem. The campaign looks like it's underperforming against a target that was never real in the first place, which is exactly the kind of confidently-wrong signal that leads to cutting a keyword or campaign that was actually working fine.
This is a genuinely common, entirely avoidable failure mode — not a rare edge case — precisely because it produces no error message anywhere. The account simply reports a better-looking number than reality, and a better-looking number rarely prompts anyone to go looking for the problem behind it.
Attribution windows: the default doesn't fit every business
Google's standard attribution window default is 30 days for most conversion actions, meaning a conversion happening within 30 days of the ad click gets credited to that click. This works reasonably well for businesses with a short consideration cycle — most ecommerce, many local services.
It fits poorly for anything with a longer sales cycle. A B2B software purchase, an enterprise service contract, or any considered purchase where someone researches for weeks before converting will have a meaningful share of real conversions falling outside a 30-day window entirely, meaning they're never attributed to the ad click that actually started the journey. If your genuine sales cycle runs longer, extend the window to 60 or 90 days to match it — the data doesn't get more accurate by leaving the default in place, it just silently under-credits your longer-cycle campaigns.
For conversions that close well beyond any reasonable click-based window — a sales-assisted deal that closes two months after the original form submission, for instance — offline conversion import lets you feed that eventual outcome back into Google Ads after the fact, connecting the original click to the real, final result rather than leaving Smart Bidding to optimize only toward the form submission as if that were the actual goal.
Check your actual sales cycle length directly — average time from first ad click to closed deal, pulled from CRM data where available — rather than guessing at a window. A window set shorter than the real cycle doesn't just lose some conversions at the margins; it systematically under-credits exactly the keywords and campaigns responsible for starting longer, often higher-value deals, which can quietly bias budget away from your best-performing top-of-funnel activity over time.
Enhanced conversions, briefly
Browser privacy changes and cookie restrictions have created real, growing blind spots in standard conversion tracking — a visitor who blocks third-party cookies, or uses a browser with built-in tracking prevention, can complete a genuine purchase that Google Ads simply can't connect back to the original ad click, even though the sale happened. Enhanced conversions address this by sending hashed, privacy-safe first-party data (like a hashed email address, collected as part of your own checkout or form process) that Google can match against its own signed-in user data to recover the connection between click and conversion that would otherwise be lost.
This is worth enabling on any conversion action where you have the underlying first-party data available to hash and send — it doesn't require rebuilding your tracking from scratch, and it directly recovers conversions that standard tracking is structurally losing more of as browser privacy protections continue to tighten industry-wide.
Why broken tracking also hides traffic-quality problems
This connection is worth making explicit, because it's the reason conversion tracking accuracy has to come before any fraud or invalid-traffic audit, not alongside it or after. Detecting a traffic-quality problem depends on comparing what should have happened against what actually did — genuine clicks should produce a reasonable, consistent conversion rate; a spike in clicks with no corresponding rise in real conversions is one of the clearer signals something's off with the traffic itself.
If your conversion tracking is inflated by soft actions, doubled by duplicate counting, or has a chunk of real conversions silently missing from a consent gap, that comparison breaks down entirely. A genuine invalid-traffic spike can get masked by inflated soft-conversion counts that make the account look like it's converting fine overall. Just as easily, ordinary, healthy account variation can get misread as a fraud problem if consent-related tracking loss makes real conversions look like they've dropped for no reason. Either direction is a real, costly misdiagnosis, and both trace back to the same root cause: you can't reliably separate a traffic-quality signal from noise using a measurement system that's already noisy on its own.
Fix conversion tracking first, confirm it's producing numbers you trust with the test-conversion checklist above, and only then treat conversion-rate shifts as meaningful evidence of a traffic-quality issue worth investigating — checking invalid click rate, IP concentration, or the gap between Ads clicks and Analytics sessions on top of tracking data you haven't first confirmed is accurate is a common, avoidable way to chase the wrong problem.
In practice, this means the audit sequence matters: tracking accuracy first, traffic-quality investigation second. Reversing that order — auditing for invalid clicks against conversion numbers you haven't yet confirmed are trustworthy — risks building a fraud investigation on top of a measurement error, which wastes real time chasing a conclusion the underlying data was never solid enough to support in the first place.
Conversion tracking across an MCC
If you manage several accounts under a Google Ads manager account, cross-account conversion tracking lets you view and share conversion actions from one child account inside another — useful when a client runs separate accounts by region or brand but wants a unified view of total conversion volume, without merging the accounts themselves for billing or reporting-separation reasons.
This has to be configured deliberately at the MCC level; it isn't automatic just because accounts sit under the same manager. And it's worth confirming, account by account, that the underlying tracking itself (the checks covered above — correct primary/secondary designation, no duplicate counting, correct count setting, consent handling) is solid on each individual child account before relying on a rolled-up cross-account view, since a shared view built on top of one broken child account's data inherits that account's inaccuracy into the combined number without making it visible which account is the actual source.
A monthly audit checklist
Open Goals, then Conversions, then Summary, and read the Primary column specifically — confirm only genuine business outcomes (purchases, qualified leads, booked appointments) sit there, with anything softer (page views, scroll depth, generic signups) moved to Secondary, where it's still recorded for reference without steering bidding.
Check for duplicate actions by scanning conversion action names and sources for near-matches with comparable volume — a native tag and a GA4 import both describing what sounds like the same event is the pattern to catch.
Confirm the Count setting matches the conversion type on every active action — One for lead generation, Every for ecommerce — rather than assuming it was set correctly once at creation and never needs revisiting.
Plot conversion volume against any date you changed your consent banner, cookie policy, or privacy configuration. A sharp, unexplained step-change in conversions on that exact date, with no corresponding change in clicks, points at a consent gap rather than a genuine performance shift.
Run the test-conversion walkthrough from earlier at least monthly, and immediately after any site redesign, CMS update, or new landing page launch — silent tag breaks after site changes are one of the most common, and most avoidable, causes of a previously accurate account quietly going dark on real data.
This checklist takes roughly the same fifteen minutes as the four-fault check above, and the two overlap enough that most accounts can run both together as a single monthly routine rather than two separate exercises — worth calendaring as a recurring task rather than something revisited only when a number looks obviously wrong, since the whole point is catching the problem before it's had months to quietly distort budget decisions.
How long does it take for a new conversion action to start recording data?
Typically within 24 hours of the first verified, genuine conversion event firing correctly — not 24 hours from when you created the action, but from when a real test or actual conversion first fires the tag successfully. If it's been well beyond 24 hours since a confirmed test conversion with still no activity showing, that points at an implementation issue worth re-checking rather than simply waiting longer.
Should I use last-click or data-driven attribution?
Data-driven attribution is Google's current recommended default for accounts with sufficient conversion volume, since it distributes credit across multiple touchpoints in a customer's path rather than crediting only the final click — last-click attribution specifically undervalues upper-funnel activity for any journey longer than a single session. For accounts with limited conversion volume (commonly cited around fewer than roughly 50 conversions a month), data-driven attribution may not have enough data to model reliably yet, and a simpler model like linear or time-decay can be a more stable starting point until volume grows.
Can I track phone calls without adding anything to my website?
Yes — Google Ads call extensions with auto-generated forwarding numbers track calls that originate directly from an ad (a click-to-call button or the phone number shown in the ad itself) without requiring any additional website tagging. This is a different, narrower signal than tracking every phone-number click on your website, which only records a tap and tells you nothing about whether the call actually connected or how long it lasted.
What's the difference between a conversion action and a conversion goal?
A conversion action is one individual tracked event — "Demo Request Submitted" or "Purchase Completed," for instance. A conversion goal is a grouping of one or more actions that you assign to a specific campaign's Smart Bidding strategy to optimize toward. This distinction matters because it's possible to track several actions for observation (as Secondary conversions) while assigning only the genuine, high-value ones to the goal a campaign is actually bidding toward.
Does GA4 auto-import cover everything I need, or do I still need native tags?
Auto-importing goals from GA4 is convenient but introduces sampling and processing delays that native Google Ads tags don't have — for the real-time signal Smart Bidding relies on to make in-auction decisions, native Google Ads conversion tracking is generally the more reliable primary source. GA4 import is more useful as a supplementary or secondary data source, or for actions genuinely easier to define in GA4's event structure, rather than as a wholesale replacement for native tags on your primary, bidding-critical conversion actions.
How do I know if I should use One or Every for a specific conversion action?
Ask whether a repeat action from the same person represents additional real value or just uncertainty about whether the first attempt worked. A repeat purchase is additional revenue — use Every. A repeat form submission from someone unsure whether the first one went through isn't a second lead — use One. When genuinely unsure, One is the safer default for most non-ecommerce actions, since it's the setting less likely to silently inflate your numbers if a form has a minor UX issue causing accidental resubmissions.
The short version
Set up tracking with a genuine, specific business outcome as the Primary conversion, verify it with an actual test walkthrough rather than trusting the summary numbers at face value, and check the four faults above — soft actions, double counting, the wrong count setting, consent gaps — before trusting any performance number the account reports. None of this is a one-time task: rebuild the test-conversion habit into your regular routine, especially after any site change, since silently broken tracking is one of the most common and most expensive things to leave unnoticed in an active account.
See exactly what's hitting your account
ClickPurity fingerprints every click on your Google Ads and automatically blocks confirmed fraud — no manual review needed.