Skip to main content
Google Ads × Call RecordsRun this yourself

How to reconcile Google Ads against your call tracking records

This is the check we run first on every account, written out so you can run it without us. It takes about thirty minutes and needs two numbers: what Google Ads says it produced, and what your call tracking records actually shows. The gap between them is the only honest measure of whether your tracking works — and if it comes back small, you do not need us.

Free30 minutesNo obligation

Specific to Google Ads × Call Records

Google Ads vs qualified calls: two call paths, two join keys

Split Google Ads calls before reconciling: calls from website visits join on the gclid your call tracking stored for the session, and calls placed straight from a call asset join on caller ID and call start time. Compare a closed month. Google counting more calls than you qualified usually means its call length threshold is short.

Google calls come in two ways, and each has its own join key. A caller who clicks through and dials a dynamic number on your site leaves a session your call tracking tool can tie to the gclid, gbraid or wbraid, and that identifier is what you upload through offline conversion import. A caller who taps the number in a call asset on the results page never reaches your site, so no click identifier exists. Check whether your account accepts call conversion imports keyed on caller phone number plus call start time, which is how that second path is usually matched.

Google counts calls from ads against a minimum call length you set on the conversion action. If that threshold is shorter than the one your team uses to call a lead qualified, Google will count wrong numbers and existing customers that your records exclude. Imported qualified calls are dated to the click, not the call, so pull the comparison by conversion time and keep the call-asset conversions in a separate action from the imported ones.

A modest gap with Google higher is normal while both actions are counted. If Google is far lower, check whether auto-tagging was turned off or whether the dynamic number script is missing on some templates. The usual cause, though, is a call-asset conversion and a qualified-call import both counting the same caller.

Google Ads × Call Records · what breaks

Why Google Ads and your call tracking records disagree

  1. 01

    Raw call volume counted as conversions

    Wrong numbers, existing customers, suppliers and hang-ups all ring the same line. In some trades the call-to-job rate is under half.

  2. 02

    Number pool too small

    If tracking numbers recycle faster than your sales cycle, two prospects share one number and the attribution is simply wrong.

  3. 03

    Dynamic number insertion failing on cached pages

    A cached page serving a stale number sends a whole segment's calls into the wrong pool, silently.

  4. 04

    Call answered but outcome never recorded

    Without joining the call to the job or deal, you are measuring how often the phone rang rather than how often it earned.

Google Ads × Call Records · the fix

What you get from this — Google Ads × Call Records

  • A number instead of a suspicion

  • The likely cause, narrowed

  • A basis for deciding

Google Ads × Call Records · architecture

What each side is actually counting — Google Ads × Call Records

  1. 1

    What Google Ads counts

    A click identifier inside the 90-day window, a conversion action name that matches one configured in the account, a conversion timestamp for when the outcome happened, and a value. Read the match rate after uploading — a file can upload perfectly and match nothing.

  2. 2

    How Google Ads attributes it

    Three parameters, not one. gclid is the long-standing identifier; gbraid and wbraid arrive on iOS traffic where privacy constraints prevent the usual one. Capture code that names only gclid loses a growing share, silently, and the loss is invisible until you audit how many records carry an identifier.

  3. 3

    The window it uses

    Google's offline import window is 90 days from the click. Anything older can't be matched, and rows outside it fail as unmatched without much explanation. Measure your median click-to-outcome time against that before designing anything.

  4. 4

    What your call tracking records counts

    Calls that were qualified and produced work, not calls received, found in CallRail, CallTrackingMetrics, Invoca or your phone system, joined to whatever records the outcome.

  5. 5

    The filter that makes them comparable

    Calls longer than your qualifying threshold, classified as genuine enquiries.

Google Ads × Call Records · events

Reading the gap — Google Ads × Call Records

15%+ platform higherUsually the wrong event entirely — raw call volume is being counted rather than qualified calls, so wrong numbers and existing customers are in the figure.
20%+ platform lowerUsually structural — number insertion is failing for some traffic, or calls are arriving on a number that is not tracked at all.

Google Ads × Call Records · diagnose

Diagnostic order — Google Ads × Call Records

  1. 01

    Confirm both numbers cover the same period and channel

  2. 02

    Raw call volume counted as conversions

    Wrong numbers, existing customers, suppliers and hang-ups all ring the same line. In some trades the call-to-job rate is under half.

  3. 03

    Number pool too small

    If tracking numbers recycle faster than your sales cycle, two prospects share one number and the attribution is simply wrong.

  4. 04

    Dynamic number insertion failing on cached pages

    A cached page serving a stale number sends a whole segment's calls into the wrong pool, silently.

  5. 05

    Read the match rate on the upload, not the success message

    A conversion action that stops receiving hits is flagged as inactive 30 days later — by which point a month of budget has already run against a missing signal. Check the last-received date on every action monthly; it takes two minutes and it's the cheapest monitoring available.

Google Ads × Call Records · prove

How to know you did it right — Google Ads × Call Records

Source of truth

your call tracking records — qualified calls for a fully closed month

    Google Ads × Call Records · free audit

    What we check in the free audit

    • Confirm both numbers cover the same period and channel
    • Raw call volume counted as conversions
    • Number pool too small
    • Dynamic number insertion failing on cached pages
    • Read the match rate on the upload, not the success message

    Checked against

    your call tracking records — qualified calls for a fully closed month

    Get my free conversion tracking audit

    Free30 minutesNo obligation

    Google Ads × Call Records · when not to buy

    When the answer is that you do not need us — Google Ads × Call Records

    • If almost all of your qualified calls come from a channel with no click behind it, no tracking work will reach them — and knowing that is worth more than a build.
    • If you're running Performance Max exclusively and haven't separated your conversion actions, the import will work and the reporting won't tell you much. Worth sorting the account structure first.

    Google Ads × Call Records · what we deliver

    The method, step by step — Google Ads × Call Records

    • Pull what Google Ads reports

      The match rate on the upload, not the success message.

    • Pull what your call tracking records shows

      Export tracked calls for a closed month with duration and outcome, and join each to the job, appointment or deal it produced.

    • Filter both to the same thing

      Calls longer than your qualifying threshold, classified as genuine enquiries.

    • Compare per record, not on totals

    FAQ

    Google Ads × Call Records questions, answered

    Keep calls from ads as a secondary action for reporting and upload qualified calls as the primary one you bid on. Counting both as primary double-counts every caller who converts.

    Free · 30 min

    Found a gap between Google Ads and your call tracking records?

    Free30 minutesNo obligation