Google Ads conversion tracking not working? Fix it step by step.
This guide walks you through the most common reasons conversions disappear, how to verify each step, and what to fix first. If you want a fast signal, start with the Tracking Health Check. If you want it fixed fast, book the Tracking Fix Sprint.
This is written for lead gen teams who need reliable measurement before they scale. The goal is a verified baseline: you can trigger a test conversion, see it fire, and see it show up in Ads diagnostics.
2-minute triage
If you only do three things, do these. They solve most tracking cases fast and tell you which step to dig into next.
- Confirm the conversion source: Ads tag or GA4 import?
- Verify firing: use Tag Assistant or GTM Preview and trigger it yourself.
- Confirm the moment: the trigger should fire on the true conversion moment (thank-you page or success event), not a page view.
If any of these fail, jump to the step below that matches the failure. If all three pass, you likely have an Ads diagnostics or window issue.
Diagnosis map (decision table)
Use this map to pick the fastest path. You are not fixing everything at once; you are identifying the first broken link.
| Symptom | Likely cause | Check first |
|---|---|---|
| Conversions in GA4, not in Ads | Import issue or window mismatch | Step 3 + Step 6 |
| Status: Inactive or Unverified | Tag not firing or wrong trigger | Step 2 |
| Leads happen, conversions at zero | Wrong moment or blocked path | Step 2 + Step 5 |
| Too many conversions | Duplicate firing or wrong count setting | Step 1 + Step 2 |
Before you start: gather your evidence
Tracking fixes move fast when you can see the full path. Make sure you have access to Google Ads, GA4, and GTM (or the codebase if tags are hard-coded). Pick a real conversion path and walk it yourself while you debug.
- • The landing page URL used for ads.
- • The exact conversion moment (thank-you page or success event).
- • A fresh test click so the gclid is current.
The goal is to prove the path end-to-end, not just check a script is present. You will catch faster issues this way.
Step 1: Confirm the conversion action setup
In Google Ads, open the conversion action and verify the goal type, source (Ads tag vs GA4 import), and attribution window. If you created a new action recently, confirm the tag or import still matches the action you are optimizing to.
Most silent tracking failures happen here. The tag can fire correctly, but the account is optimizing to the wrong action or a secondary action that does not count in the Conversions column.
For lead gen, you typically want the primary action set to one per click or session, not every event. This prevents inflated conversion volume and keeps bidding aligned with real leads.
- Primary vs Secondary: Primary actions drive bidding and reporting. Secondary actions do not.
- Count setting: Lead gen usually wants One per click or session, not Every.
- Included in Conversions: must be enabled for your main action.
- Attribution window: ensure it matches your sales cycle.
Common mismatch: the tag fires an old “AW-” conversion label that maps to an action you renamed or replaced. The old action stays empty even while the new tag fires correctly.
Step 2: verify firing (Tag Assistant / GTM Preview)
Tag firing is necessary but not sufficient. Use Tag Assistant or GTM Preview and walk the entire conversion path as a real user.
The goal here is to prove that the click ID survives and the trigger fires at the right moment. If the trigger fires early, late, or multiple times, Ads will either miss or inflate the conversion.
- • The tag fires once on the correct event or thank-you page.
- • The conversion label matches the Ads action exactly.
- • The conversion linker tag is present (gtag or GTM).
- • The gclid survives redirects and form submissions.
- • For AJAX forms, trigger on success, not button click.
If the tag does not fire, trace the trigger condition. Confirm the thank-you page or success event still exists after site changes and that it does not require a second click or hidden interaction.
If it does fire but Ads still shows “Unverified,” check for duplicate tags, multiple containers, or stale GTM versions in the wild.
Step 3: GA4 import vs Ads tag
If GA4 shows conversions but Ads does not, verify the import status and that the event is marked as a conversion in GA4. GA4 imports can be delayed and sometimes lose debugging clarity.
When in doubt for lead gen, use an Ads tag for the primary action and keep GA4 imports as secondary for analysis. It is easier to debug and keeps bidding aligned with Ads-native signals.
| Dimension | Ads tag | GA4 import |
|---|---|---|
| Counting | Direct control in Ads | Inherits GA4 event settings |
| Latency | Faster reporting | Slower, sometimes delayed |
| Debugging | Clear tag-level checks | More indirect |
| Attribution nuance | Ads-native first | GA4 model first |
For lead gen, I typically recommend using the Ads tag for the primary optimization action and importing GA4 as secondary if you need it for analysis.
Step 4: Consent and blocker impact
Consent banners can prevent tags from firing or stop cookies from being set. A quick test: open the page in a fresh incognito session, decline cookies, and watch what still fires in Tag Assistant. Then accept cookies and test again.
If conversions only show with consent granted, you have a consent mode configuration issue or a blocker upstream in the tag sequence.
This is about measuring the difference, not debating legal settings. The goal is to understand how much tracking you lose without consent so you can decide on the right tradeoff.
Step 5: thank-you flow, redirects, cross-domain
Tracking breaks when the conversion moment changes. Common examples: a new thank-you URL, a form submission converted to AJAX, or a new subdomain handling the last step.
Keep this check short: confirm the final conversion moment still exists, the gclid is preserved, and the trigger matches the new flow. If you have multiple domains, make sure cross-domain linking is enabled.
- • Check for redirect chains that strip query parameters.
- • Confirm the thank-you URL is not cached or blocked by a CDN.
- • Verify the trigger fires on the final domain, not the first.
Step 6: diagnostics + timing
In Ads, review the conversion action’s status and the diagnostics panel. If you see “No recent conversions,” confirm that the click used for testing is still within the conversion window. Old clicks will not count.
Expect some delay in reporting, but do not over-wait. If you can see a test conversion in Tag Assistant and Ads still shows nothing after a full day, something upstream is wrong.
If you rely on offline imports or CRM uploads, verify timestamps and click IDs. “Too old” conversions will be rejected, and time zone mismatches can make valid conversions look missing.
Common failure patterns
- Counting the wrong thing: page view or scroll counted as a conversion instead of the real lead moment.
- Multiple actions competing: bidding to a weak primary action while the real lead is secondary.
- Primary action set incorrectly: the true lead action is marked Secondary, so it never informs bidding.
- Tag label mismatch: tag fires, but against an obsolete action.
- Duplicate firing: the same lead fires two tags or a tag fires twice on refresh.
- Consent blocking tags: everything works only when you accept cookies.
Fix checklist (output-driven)
A verified baseline means you can prove each of the following without guessing or waiting.
- • I can trigger a test conversion and see it in Tag Assistant.
- • The conversion action is Primary and the Count setting is correct.
- • Ads diagnostics show recent activity for the correct action.
- • GA4 and Ads agree on what is being counted within expected differences.
Mini glossary
- Conversion action: the Ads object you optimize to. Not the same as a GA4 event.
- Primary vs Secondary: primary drives bidding; secondary is reporting-only.
- Event: the trigger in GA4 or GTM that can become a conversion action.
- gclid: the click ID used to attribute conversions to Ads.
- Conversion linker: a tag that preserves the gclid across redirects and domains.
FAQ
Why do GA4 and Ads disagree? They measure differently and use different models. Small differences are normal, but large gaps mean a broken path or a mismatched action.
Should I count every form submit? For lead gen, use One per click or session to avoid inflated volume. Use Every only when multiple real purchases per click are expected.
How long before Ads shows conversions? A few hours to a day is normal. If a verified test does not show after 24 hours, review the path again.
Do I need GTM? No, but it helps. You can implement the Ads tag directly, but GTM makes debugging and version control easier.
What about phone calls? Treat them as separate actions. Make sure call conversions are Primary only if you truly want bidding to optimize for calls.
Next steps
If you want a full audit and a documented fix plan, book a Tracking Fix Sprint. You will get verified tags, GA4 alignment, and a handoff document you can reuse.
Book the Tracking Fix Sprint