← All articles

Blog

How to Verify Your Google Ads Conversion Tag Is Actually Firing (4 Methods + Blind Spots)

verify google ads conversion taggoogle ads conversion not trackingconversion tag not firingcheck google ads conversion tracking

"I added the conversion tag in Google Ads, but the count in my account just won't move." This is one of the most common headaches in advertising. You think the tag is in place — but if it isn't actually being counted as a conversion, your bidding, your reports, and every decision built on them are off.

Do any of these sound familiar?

  • Your conversion count sits at 0 no matter how long you wait
  • The conversion action status stays stuck on "No recent conversions"
  • It records fine in GA4, but only Google Ads shows no count
  • It was working yesterday, and now tracking has suddenly stopped

This guide walks through four ways to verify your Google Ads conversion tag is working, the top 5 reasons conversions go missing, the blind spots each method shares, and how to verify with confidence in your real production environment.

Before you start: "working" has three levels

The biggest reason Google Ads conversion checks go wrong is treating "the tag works" as a single state. In reality there are three distinct stages — and simply knowing which one you're checking makes diagnosis dramatically easier.

Level What it means Common trap
① Installed The Google tag (gtag / GTM) and event snippet load on the page It's missing on the conversion page entirely
② Fires The conversion request is sent to Google Installed, but doesn't fire on a specific action
③ Counted Google Ads records it as an ad conversion Fires, but isn't tied to a click (gclid), so it isn't counted

The key point: firing (②) and being counted (③) are not the same thing. A request can leave the browser, but if that visit isn't tied to an ad click, Google Ads won't add it to your conversion count. That's the decisive difference from a GA4 check — and the core of the blind spots we'll cover later.

Methods 1–4 below mainly confirm ① installation and ② firing. Confirming ③ counting is covered by Method 2 (Google Ads conversion diagnostics) and the later section "Why a tag fires but isn't counted."

Before you begin: are you on "gtag" or "GTM"?

Knowing how your site installs the Google Ads tag changes where you should look. There are two broad setups:

  • gtag (hardcoded): the Google tag (AW-XXXXXXXXX) and the conversion event snippet are written directly into your HTML. Verify with Methods 1–3.
  • GTM (Google Tag Manager): the "Google Ads Conversion Tracking" tag is managed in a GTM container. Method 4 (GTM Preview) becomes the main tool, and "is the trigger firing?" / "did you publish?" are the key questions.

Not sure which? Open DevTools, go to the Network tab — if you see a gtm.js request, you're on GTM. Remember too that Google Ads conversion tracking needs a Conversion Linker (passing along auto-tagging data) to carry click information; if that's missing, it hits ③ counting directly (more below). Where you get stuck differs by setup.

Method 1: Google Tag Assistant

The most accessible official tool is Google Tag Assistant (tagassistant.google.com).

  1. Enter your site URL in Tag Assistant and connect
  2. In the preview window, go all the way through the action that triggers a conversion (form submit, purchase complete, etc.)
  3. Detected tags (your Google Ads AW-XXXXXXXXX) and the conversion event sent appear in a list

What it tells you: the tag is installed and the conversion request is being sent (① and ②). What it doesn't: whether Google Ads ultimately counted it as an ad conversion (③). Tag Assistant shows you up to "it was sent."

Common pitfall: detecting the tag on the homepage is fine, but unless you reach the actual thank-you or purchase-complete page, the conversion event snippet never fires. Check the exact page at the moment the conversion completes.

Method 2: Google Ads conversion diagnostics

This is the view from inside the Google Ads UI. Under "Goals → Summary → Conversions," open the conversion action to see its status and diagnostics (recording status).

  • Check the conversion action status ("No recent conversions," "Recording conversions," etc.)
  • Use the "Diagnostics" tab to see whether there are issues with installation or recent recording
  • Confirm auto-tagging (gclid) is on and that the Conversion Linker is in place

What it tells you: whether Google Ads is actually receiving and counting conversions (the closest check to ③).

Caution: Google Ads reporting is not real time — counting can lag by hours or, in some cases, into the next day. Don't conclude "it's broken" just because the count doesn't appear the instant you send it.

Method 3: Browser DevTools (Network)

The most precise way to confirm ② firing is your browser's DevTools.

  1. Open the page you want to check and open the "Network" tab
  2. Filter for conversion or googleadservices
  3. Perform the conversion action (submit, purchase) and watch for requests to googleadservices.com/pagead/conversion/…
  4. Inspect the request and confirm the conversion ID (AW-XXXXXXXXX) and label are correct, and that the click ID (gclid) is passed along

What it tells you: exactly which conversion was sent, with which parameters (the most precise view of ②). What it doesn't: still ③ (whether Google Ads counted it as an ad conversion). Even a correct payload won't appear in your count if it isn't tied to a click.

Common pitfall: with an ad blocker or browser tracking protection on, the conversion request itself can be blocked, making it look like "not firing." Always check in a clean state with those turned off.

Method 4: Google Tag Manager Preview

If you manage tags through GTM, Preview mode lets you trace "which trigger fired which tag" for every action.

  • Launch "Preview" from your GTM workspace
  • Open the target site, perform the conversion action, and confirm the Google Ads conversion tag (and the Conversion Linker) fire
  • If they don't, the cause is a trigger condition or variable misconfiguration

Caution: GTM changes don't go live until you publish (Submit). If it works in Preview but isn't tracked in production, "forgot to publish" is by far the most common cause. Also, if the Conversion Linker tag doesn't fire on all pages, click information isn't carried over and ③ counting drops.

The top 5 reasons conversions go missing

When the count still won't move, the cause usually falls into one of these five. Check them top to bottom.

1. The conversion page is missing the event snippet

The Google tag (AW-) goes on every page, but the conversion event snippet belongs only on the page where the conversion completes. If the thank-you or checkout-complete page is missing the snippet, it simply won't fire. Open the exact page you want to count and check it with Methods 1–3.

2. The Conversion Linker (auto-tagging) is missing

Google Ads uses the click ID (gclid) to tie a visit to a click. If auto-tagging is off or the Conversion Linker isn't installed, the tag can fire but never reach ③ counting. See Conversions fire but Google Ads doesn't count them? How the click ID (gclid) works.

3. You didn't publish your GTM changes

GTM works in Preview but won't appear in production until you publish. "Configured" is not "published."

4. Consent mode (the consent banner) is blocking measurement

If you run a cookie consent banner, measurement may be restricted or stopped while the user hasn't consented. Test in both states — consented and not consented.

5. The conversion action setup or counting method is off

The conversion action may not exist or may be disabled, the counting setting ("Every" vs "One") may differ from what you expect, or the conversion may fall outside your conversion window. If it's being counted twice, see Why conversions get counted twice, and how to check.

Cross-domain, iframe, and SPA pitfalls

Even when your tag setup is correct on a single domain, certain site architectures introduce their own tracking failures. These are easy to miss because the tag appears to work during basic testing.

Cross-domain redirects (payment gateways, booking engines)

If your conversion page lives on a different domain from your landing page — a third-party checkout, a payment gateway, or a booking platform — the first-party cookie that stores the gclid cannot travel across the domain boundary. The conversion fires, but Google Ads has no click to tie it to. Fix this with the gtag.js domain linker (gtag('set', 'linker', {domains: [...]})) or GTM's cross-domain tracking settings so the _gl parameter carries the click ID across. For a deeper walkthrough, see Why cross-domain tracking breaks and how to fix it.

Iframe-embedded forms and checkouts

When the conversion action happens inside an iframe (an embedded form, a widget from another platform), your parent page's tag cannot see it. The iframe is a separate browsing context with its own cookies. Either pass the conversion event from the iframe to the parent page via postMessage and fire the tag there, or move the tag inside the iframe — with the caveat that gclid must also be passed in. Backend conversion import via the Google Ads API is often the most reliable alternative.

Single-page applications (SPAs)

SPAs don't trigger traditional page loads when a user navigates. If your conversion tag is set to fire on a page load trigger, it will never fire after the initial load — even when the user reaches a thank-you "page." Use a history change trigger in GTM or fire gtag('event', 'conversion', {...}) programmatically when the conversion route renders. See SPA conversion tracking: how to get it right for setup details.

Why a tag fires but isn't counted

You confirmed "firing (②)" with Methods 1–4, but it never appears in your Google Ads count (never reaches ③). This is the most confusing pattern in Google Ads. The reason: firing = sent to Google, counting = Google Ads ties it to a click and records it — two different stages.

Typical reasons a sent conversion never gets counted:

  • Missing click ID (gclid): auto-tagging off, the parameter lost on a redirect, or no Conversion Linker — so the visit isn't tied to an ad click
  • Consent mode state: with no/limited consent, measurement or some information isn't sent or stored
  • Outside the conversion window: the time from click to conversion exceeds your configured window
  • Reporting lag: Google Ads reports aren't instant; counting takes time

In other words, confirming the browser "can send" doesn't guarantee the data is actually counted as an ad conversion in production. Google Ads in particular requires a tie to a click, which is the single biggest trap here. For the "shows in GA4 but not Google Ads" gap, see Why Google Ads and GA4 conversion counts don't match.

Enhanced Conversions: recovering data lost to browser restrictions

Even with a perfectly configured tag, browser privacy features (ITP in Safari, third-party cookie restrictions in Chrome) can erode the gclid cookie before the user converts. Enhanced Conversions address this gap by sending hashed first-party data (email address, phone number, or mailing address) alongside the conversion hit. Google matches this hashed data against signed-in user data to attribute the conversion back to the click.

Setting up Enhanced Conversions doesn't change Methods 1–4 above, but it adds a verification step: confirm that the hashed user_data field is actually being sent with the conversion request. You can check this in Tag Assistant (look for the user_data key in the conversion event payload) or in DevTools Network by inspecting the request body to googleadservices.com. If the field is missing or empty, Enhanced Conversions won't recover anything.

If you use server-side tagging, Enhanced Conversions require the user_data object to be forwarded from your web container to your server container — a step that's easy to miss. See How to verify Enhanced Conversions and Server-side GTM verification for the full setup and testing workflow.

What local checks alone can't tell you

All four methods are useful, but checking once, by hand, on your own machine has two structural limits.

  1. Your environment isn't your real users' environment. Login state, extensions, consent state — your setup can look fine while real visitors' conditions drop data.
  2. Ad-click conversions are hard to verify. Google Ads only counts visits tied to an ad click (gclid). To truly reproduce that by hand, you'd need to click a live ad and follow the path — which counts as a self-click and risks an ad-policy violation (Is clicking your own Google Ads against the rules?).

Judging "it's firing, so we're good" from a local tool is exactly how teams miss conversions that aren't being counted on the real path real visitors take.

A checklist to verify with confidence

Work through what's free and quick first, in order.

  • Is the Google tag (AW-) on every page?
  • Is the conversion event snippet on the page where it completes (thank-you / complete)?
  • Does the conversion fire in at least one of Methods 1–3?
  • Is the Conversion Linker / auto-tagging enabled, with gclid carried over?
  • Do Google Ads conversion diagnostics show "Recording conversions"?
  • If using GTM, is the change published?
  • Is the consent banner (consent mode) state stopping measurement?
  • Are the conversion action settings — counting method, conversion window — as intended?
  • If your checkout or conversion page is on a different domain, is cross-domain linking configured?
  • If your site is a SPA, does the conversion tag fire on route changes (not just page load)?
  • If you use Enhanced Conversions, is user_data actually present in the conversion request?
  • Is it counted under real production user conditions (not just your one test)?

Frequently asked questions (FAQ)

Q. If Tag Assistant says "fired," am I good? A. That confirms "sent (②)" only. Whether Google Ads counted it as an ad conversion (③) is a separate question. Confirm it's actually recorded in conversion diagnostics and isn't dropping under real conditions before you relax.

Q. Why does it record in GA4 but show 0 in Google Ads? A. The classic cause is a missing click ID (gclid). GA4 measures with its own mechanism, but Google Ads counting requires a tie to an ad click. Check auto-tagging, the Conversion Linker, and gclid loss on redirects. See how gclid works and why the counts don't match.

Q. How long until it shows in the count? A. Google Ads conversions are counted with a lag, not instantly — sometimes hours, sometimes into the next day. Don't conclude "it's broken" just because it isn't immediate.

Q. Should I click the ad to confirm? A. Clicking your own ad is treated as an ad-policy violation (self-clicking) and risks account review or suspension. Verify from outside your own account — an independent environment — instead.

Q. Why is the same conversion counted twice? A. Typical causes: the event snippet was placed site-wide, the thank-you page was revisited via reload or back button, or the tag is loaded via both hardcoded gtag and GTM. In DevTools Network, count how many conversion requests fire per action to isolate it (causes of double counting and how to check).

Q. My checkout is on a different domain — do I need extra setup? A. Yes. The gclid cookie is first-party and cannot cross domain boundaries on its own. Use the gtag.js linker or GTM's cross-domain settings to pass the _gl parameter to the checkout domain, or the conversion will fire without a click ID and never be counted. See cross-domain tracking.

Q. Does Enhanced Conversions replace normal conversion tracking? A. No. Enhanced Conversions is an add-on, not a replacement. The standard conversion tag still fires; Enhanced Conversions supplements it with hashed first-party data so Google can recover attributions that cookie loss would otherwise erase. See verifying Enhanced Conversions.

Q. My site is a single-page application — why does the tag only fire once? A. SPAs don't perform full page reloads on navigation, so a page-load trigger fires only on the initial load. Switch to a history-change trigger in GTM, or call gtag('event', 'conversion', {...}) directly when the conversion view renders. See SPA conversion tracking.

Q. Does the same approach apply to GA4 tags and the Meta Pixel? A. The "installed / fires / recorded" framing is shared. See verifying your GA4 tag and verifying your Meta Pixel for each platform's steps.

Conclusion: don't stop at "it fires" — verify it's counted in production

Methods 1–4 are enough to confirm "firing." What matters is the step after: confirming the conversion is actually counted, on the real path your visitors take (the path that includes an ad click), in production.

ConversionOK runs your live page in an independent, isolated browser and intercepts the conversion requests that are actually sent, then verifies them — with no need to click your own ad and no interference from your office environment. Start with a free static check to confirm the entry point of your measurement.