Back to Insights
Data Implementation 10/26/2026 9 min read

Google Ads Call Conversions Showing Zero? 8 Things to Check Before You Blame the Tracking (2026)

Short version

The whole problem in under a minute

Watch the test, then read on for the full checklist and the fix.

You set up Google Ads "Calls from website" tracking, the phone keeps ringing, and the call conversion still shows zero. Or the Conversions column drops off a cliff the same week. Most of the time the tags are firing fine. The data is being counted somewhere you aren't looking, or a gap on the site is hiding the calls.

Here is the order I check things in, from the most common cause to the least. If you only have five minutes, follow this map and jump to the check it points at.

First, how Calls from website tracking works

Google Ads tracks website calls by swapping your phone number for a Google forwarding number, but only for visitors who came from an ad.

  1. A visitor clicks your ad, and the Google tag stores the click ID in a first-party cookie.
  2. On every page, the Calls from website tag looks for your business number in the page text, for example "(305) 555-0100".
  3. For ad visitors, it replaces that text, and the matching tel: link, with a Google forwarding number.
  4. When someone calls the forwarding number, Google routes the call to your real line and records its length.
  5. If the call lasts longer than your minimum call length, Google Ads records a conversion.

Two things follow from this. Organic visitors always see your real number, so their calls never count. And anything that breaks one of the five steps, such as a lost click ID, a number Google can't find, or a call that's too short, gives you zero conversions with no error anywhere.

Check 1: Are the conversions counted where you're looking?

Before touching the site, rule out a reporting change. It's the most common cause of a sudden drop, and the fastest to check.

A conversion action set to Secondary (observe only) still records every event, but it shows only under All conv., not under Conversions. If someone switched phone clicks or form fills from Primary to Secondary on the day call tracking went live, the Conversions column falls overnight while nothing is actually broken.

How to check:

  1. In Goals > Conversions > Summary, add the All conv. column next to Conversions. If All conv. is steady while Conversions fell, the tracking works and the reporting changed.
  2. Open Admin > Change history and filter by conversion changes around the date the numbers dropped. Look for changes to a conversion action's goal or optimization setting.
  3. Check each campaign's goal settings. A campaign switched from account-default goals to campaign-specific goals counts, and bids on, a different set of actions.

Moving soft signals like phone clicks to Secondary and bidding on real calls is often the right call. Just do it after real calls are recording. Otherwise Smart Bidding loses most of its signal overnight.

Check 2: Is call reporting turned on?

Calls from website needs call reporting. Check it under Admin > Account settings > Call ads. If it's off, Google doesn't use forwarding numbers, and there's nothing to count.

Check 3: Is the Calls from website tag firing on every page?

Google has a built-in debug mode that shows the number swap without a real ad click.

  1. Open a page of your site, add #google-wcc-debug to the end of the URL, and reload.
  2. A small box titled "Google AdWords Website Call Conversions" appears in the corner. It will say "Attempting to auto-replace". That's normal, because you didn't come from an ad.
  3. Click Force. The box should report something like "Updated N element(s) with (999) 999-9999".

If the box never appears, the Calls from website tag isn't firing on that page. Check the GTM trigger, the consent settings on the tag, and whether the page uses a different template from the rest of the site, such as landing pages built in a separate tool.

Check 4: Does the number in the tag match the site exactly?

The tag looks for the phone number exactly as you entered it in the conversion action. If the site shows 305.555.0100 and the tag has (305) 555-0100, nothing gets swapped. In debug mode, "Updated 0 element(s)" after clicking Force usually means a format mismatch.

Also check that every phone number on the site is the same number. A second number, for example a different number for each location or one in the footer that differs from the header, won't be swapped unless it has its own setup.

Check 5: Are your mobile call buttons icons with no number text?

This is the gap I find most often, and it's easy to miss. The script swaps numbers it finds as text. On mobile, most sites replace the written number with a tap-to-call icon: a tel: link with no number text inside. In my testing with debug mode, icon-only links were never swapped.

Many themes have two separate links in the same spot: a text link shown on desktop and hidden on mobile, and an icon link shown on mobile and hidden on desktop. Google swaps the hidden text link that nobody on a phone can see, and leaves the icon alone. A typical result:

Phone linkDesktopMobileSwapped?Call tracked?
HeaderText numberIconText yes, icon noDesktop only
Hero sectionText numberIconText yes, icon noDesktop only
FooterText numberText numberYesYes
Mobile menuNot shownText numberYesYes

A mobile visitor who taps the header icon, the most obvious call button on the page, calls your main line directly, and Google never sees the call. Phone-click conversions still fire, because they only need a click on a tel: link, so the dashboard looks healthy.

How to check: in debug mode, after clicking Force, switch to a phone-sized view (Chrome DevTools device mode) and inspect every call icon. Each one should link to tel:+9999999999. Any link still pointing at your real number is a call Google can't track.

The fix, with GTM and no developer changes: a Custom HTML tag that watches a text phone link Google always swaps, such as the footer number, and copies its link onto the icons when it changes.

<script>
(function(){
  // A phone link Google always swaps (visible text number)
  var SRC = 'footer a[href^="tel:"]';
  // Icon-only phone links Google can't swap
  var ICONS = '.mobile-call-icon a[href^="tel:"]';
  function sync(){
    var src = document.querySelector(SRC);
    if (!src) return;
    var h = src.getAttribute('href');
    var icons = document.querySelectorAll(ICONS);
    for (var i = 0; i < icons.length; i++) {
      if (icons[i].getAttribute('href') !== h) icons[i].setAttribute('href', h);
    }
  }
  var root = document.querySelector('footer') || document.body;
  new MutationObserver(sync).observe(root, {
    subtree: true, childList: true, attributes: true, attributeFilter: ['href']
  });
  sync();
})();
</script>

To set it up:

  1. Replace SRC with your footer phone link and ICONS with your icon links.
  2. Fire the tag on a DOM Ready trigger for all pages, so the links exist when it runs.
  3. Test in GTM Preview with #google-wcc-debug and Force. The icons should switch to tel:+9999999999.
  4. Publish.

The observer watches the whole footer rather than one link, so it still works if Google's script replaces the link element instead of editing it. Visitors who didn't come from an ad see no change, because the footer keeps your real number. The tag sends no data of its own; the Google Ads tag still records the call.

Two limits. The tag depends on your class names, so a theme update that renames them will quietly break it. And it needs the source number on every page. If you can edit the theme, a cleaner fix is to put the number as text inside each icon link (visually hidden) so Google's script can swap it directly. Test that in debug mode too.

Check 6: Does the click ID survive until the visitor reaches your site?

The swap only happens for visitors the tag recognises as ad clicks. If the click ID never reaches the cookie, every visitor looks organic and sees your real number.

Common causes:

  • Redirects that drop the URL parameters. An http to https or www redirect, or a link shortener, that removes ?gclid=.... Click your own ad (or add ?gclid=test to a URL) and check that the parameter survives to the final page.
  • No Conversion Linker, or it fires too late. In GTM, the Conversion Linker tag (or the Google tag) should fire on all pages.
  • Consent. With Consent Mode, if ad_storage is denied, the click ID can't be stored in a cookie, so visitors who decline cookies won't get a forwarding number. That's expected, but it means call conversions will undercount in regions with consent banners.

Check 7: Are the calls long enough, and have you waited long enough?

  • Minimum call length. A call only counts if it lasts longer than the minimum set on the conversion action (60 seconds by default). Short calls, voicemail hang-ups and quick questions don't count.
  • Reporting delay and click date. Conversions are reported against the date of the ad click, not the date of the call, and can take a while to appear. Don't judge a new setup on its first day.
  • Country support. Google forwarding numbers aren't available in every country. Check that your country is supported before debugging anything else.

Check 8: Is anything being counted twice?

Watch for the opposite problem while you're in there. If the same lead is tracked by a browser tag and a server-side tag, or by a phone-click action and a call action, and both are Primary in the same campaign's goals, every lead counts twice and Smart Bidding over-values those clicks.

Checklist before you trust your call numbers

  • All conv. and Conversions tell the same story, or you know why they differ
  • Change history shows no Primary-to-Secondary switches you didn't plan
  • Call reporting is on in Admin > Account settings > Call ads
  • #google-wcc-debug + Force shows the debug box on every page template
  • The number in the tag matches the site's format exactly
  • Every call icon on mobile links to tel:+9999999999 in debug mode
  • Icon-only links are covered by a GTM sync tag or hidden number text
  • gclid survives redirects to the final landing page
  • The minimum call length matches what a real lead call looks like
  • No lead is counted twice as Primary

If your call conversions still look wrong after all this and you'd like a second pair of eyes, I audit Google Ads, GA4 and GTM setups and fix gaps like these.

For Hands-On Implementers

Stuck on this? Get it fixed live on a call.

1-hour screen-share debug session with me: bring your broken GTM, sGTM, or GA4 setup and leave with it working. $150 USD. If I can't help in the first 10 minutes, full refund.

Book Debug Session — $150

Need Expert Help With Your Tracking Setup?

I handle complex tracking implementations so you can focus on growing your business.

Book a Paid Session