Why Google Ads, GA4, and your CRM show different lead counts
Nine reasons Google Ads conversions, GA4 key events, and your CRM lead count do not match, and how to spot duplicate tags vs normal reporting lag.
Nine reasons Google Ads conversions, GA4 key events, and your CRM lead count do not match, and how to spot duplicate tags vs normal reporting lag.
Open Google Ads, Google Analytics 4 (GA4), and your shop phone log on the same morning. The three numbers almost never match.
Some gaps come from normal platform rules. Other gaps come from broken tags that waste your money on fake leads. You need a fast way to tell which is which.
The short answer
Google Ads, GA4, and your CRM measure different moments under different rules. Google Ads reports by
ad click date and includes call-asset calls that never touch your site. GA4 reports by event
date on your site. Your CRM logs real people who reached your team. Check for duplicate Primary
goals, One vs Every count rules, form triggers, and click-to-lead time lag.
Use this table to see why two screens show different numbers for the same dates.
| What you see | Example counts | Root cause | Bug or normal? | Exact fix |
|---|---|---|---|---|
| Google Ads is 2x GA4 | Ads: 40 · GA4: 20 · CRM: 20 | Google Ads tag AND imported GA4 generate_lead event are both Primary | Bug (Double count) | Keep one source Primary and move the other to Secondary |
| Ads and GA4 are 3x higher than CRM | Ads: 60 · GA4: 60 · CRM: 18 | GTM fires on a button click or page view instead of a real form send | Bug (Fake leads) | Turn on Check Validation in GTM or fire on the real server reply |
| Ads shows more calls than GA4 | Ads: 32 calls · GA4: 14 calls | Google Ads counts calls made right from mobile Call Assets on Google | Normal | List call assets on a separate line from website calls |
| Ads and GA4 differ by 1-3 leads | Ads: 28 · GA4: 30 | Click date vs. event date: a user clicked on May 31 and sent the form on June 1 | Normal | Note the date rule; Ads puts the lead in May, GA4 puts it in June |
| One person logs 3 conversions | Ads: 3 · CRM: 1 | Goal Count rule is set to Every instead of One | Bug for leads | Switch lead goals from Every to One in Google Ads |
| CRM has more leads than GA4 | GA4: 18 · CRM: 25 | Ad blockers or cookie banners blocked browser tags for some visitors | Signal loss | Add server-side GTM and Enhanced Conversions |
| All Conversions is 3x Conversions | All Conv: 90 · Conv: 30 | You are reading All conversions, which adds directions and page views | Wrong column | Judge bidding on Conversions (Primary) and check real enquiries |
| LSA leads are missing from GA4 | LSA: 42 · GA4: 0 | Local Services Ads run on Google’s profile, not on your website | Normal | Check LSA leads from the LSA billing record, not GA4 |
| CRM shows 30 leads, 12 are real | Ads: 30 · Good: 12 | Spam bots, job seekers, or out-of-area clicks are sending your form | Quality leak | Add spam checks, set location to Presence, and add negative words |
This rule is the main reason an honest report shows a small gap at the end of a month.
Say a homeowner searches for a garage floor on May 30 and clicks your ad. They think about it over the weekend and send your quote form on June 2:
One homeowner often triggers more than one goal during a single repair request:
phone_click).call_from_website).generate_lead).If all three goals are marked Primary in Google Ads, the screen reports 3 conversions from 1 click. In your shop, that is 1 customer.
Check your Google Ads Goals screen first
List every goal marked Primary. Make sure phone taps, page scrolls, and duplicate GA4 imports do not sit in the main Conversions column.
Split calls and forms in the monthly report
As shown in the [cleaning rebuild record](/work/cleaning-company/), split the count into phone calls (25) and submitted forms (26) so every lead is clear.
Check against your phone and inbox log
Merge repeat calls or form + call pairs from the same phone number within 7 days when counting unique leads.
Match to booked jobs when CRM data is ready
Use [Enhanced Conversions and offline imports](/articles/enhanced-conversions-offline-import-guide/) or a monthly CRM check to see which leads became jobs.
Ten-minute lead gap check
0 of 6Google Ads settings
Dates and channels
Your one-page monthly report
Every tool counts from its own angle. My job is to make sure tags fire once on real calls and forms, and to show where the platform count stops and your job records start.
If your Google Ads screen shows leads that never reached your phone or inbox, run the full conversion tracking audit. You can also ask for a free review.
Rarely. Google Ads puts a lead on the day the user clicked the ad. GA4 puts the event on the day the call or form happened. Count rules (One vs Every) and call assets on the search page also create normal gaps.
Usually the account is counting page views or phone taps, firing on empty form clicks, counting every repeat action instead of one per click, or counting both Google Ads tags and GA4 imports as Primary.
Use your real phone and CRM log for the business decision. Use platform conversions to guide bidding once the tags are clean. Your monthly report should list both numbers and explain any gap.
Local Services Ads calls and messages happen inside Google's own LSA profile and phone line, not on your website. GA4 only sees people who visit your website.
A 20 to 30 minute read-only check of your Google Ads Goals screen, GTM triggers, and GA4 events usually shows whether the gap is a broken tag or normal timing.
The form sends your details to me by email. I reply personally.