• Attribution
  • Google Ads
  • Meta Ads
  • CRM
  • Lead Generation

Why Ad Platforms Report More Conversions Than Your CRM

By Dolphin Analytics team · Published 22 Sept 2026

TL;DR

Ad platforms report more conversions than your CRM because they count a different thing. Google Ads and Meta count form fills they can credit to their own ads, inside their own attribution windows, and Google Ads adds modelled conversions. Your CRM counts people who became real leads and deals. Trust the CRM for outcomes and the platforms for optimisation. We audit and fix this tracking for lead-gen clients most weeks.

Olamide Sule, founder of Dolphin Analytics: a digital analytics expert based in London who reconciles ad platform, GA4 and CRM numbers for agency and in-house clients.

Google Ads claims a healthy month of leads. Meta claims almost as many. Add them up and the total is well past the new contacts sales can find in the CRM, and fewer still became deals. We audit and fix tracking for lead-gen teams and their agencies most weeks, and when the numbers disagree the answer is rarely a broken tag. The platforms and the CRM are counting different things, and this is the walkthrough we give clients before anyone rewrites a budget.

Why do ad platforms report more conversions than your CRM?

Ad platforms report more conversions than your CRM because Google Ads and Meta count conversions they can credit to their own ads, while the CRM counts unique people who became leads. Each platform uses its own attribution window, can count one person more than once, and Google Ads adds modelled estimates. So the platform totals add up to more leads than ever reached sales.

That is the whole shape of it. Neither side is lying. The ad platform answers “which of my ads can I take credit for?” and the CRM answers “who actually enquired, and did they buy?” If you sell to businesses or book consultations, only the second question pays the bills.

This post covers the lead-gen version of the gap. If you sell online and the mismatch is between Meta and Shopify, our post on why Meta Ads over-report conversions covers the ecommerce side.

What causes the gap between what my ad platform claims and my actual sales?

Five causes explain almost every gap we see, and most of them are the platforms working as designed. Work through them in this order, because the first two are settings you can change today.

1. The platform counts every form fill, not every person

Google Ads gives each conversion action a counting option. According to Google’s conversion counting page, “Every” counts every conversion after an ad interaction and “One” counts only one conversion per ad click. “Every” is the default for website actions, and Google recommends “One” for leads, because several form submissions from the same click usually represent one prospect.

A visitor who submits your contact form, then the brochure form, then the contact form again becomes three conversions on “Every” and one contact in your CRM. In the lead-gen accounts we audit, this is the first setting we check, because it is the cheapest gap to close.

2. Two platforms claim the same lead

Each platform credits a conversion to its own ads if it happens inside its window. Google’s conversion window page sets the click-through default at 30 days, the engaged-view default at three days and the view-through default at one day. Meta’s Marketing API reference lists click windows and view windows: conversions counted 1, 7 or 28 days after someone clicked an ad, or after they only viewed it.

Put those together. A prospect who clicks a Google ad on Monday, scrolls past a Meta ad on Wednesday and fills in your form on Thursday can sit inside both windows. Google Ads counts the lead, Meta counts the lead, and your CRM holds one contact. Add the two dashboards together and you have counted that person twice.

Getting Meta’s numbers straight can decide whether an agency keeps an account. For one agency, we fixed the tracking, so the agency could see what was actually happening in Meta, and they kept their client.

3. Google Ads adds modelled conversions

Some conversions cannot be observed directly, for example when consent or browser limits break the link between a click and a form fill. Google’s modelled conversions page says modelled conversions use data that does not identify individual users to estimate the conversions Google cannot see, and that the Conversions column reports modelled and observed conversions together.

Those modelled leads have no name, no email and no CRM record. They are an estimate of people in aggregate, so you will never find them in a sales pipeline, however carefully you search.

4. Google Ads dates the conversion to the click

Google’s conversion tracking data page says the primary conversion columns are calculated from the time of the click, not the time of the conversion. A lead who clicked in August and filled in the form in September shows in Google Ads’ August numbers and in your CRM’s September numbers. The same page says the “All conversions” column also includes secondary actions and view-through conversions, so check which column your report pulls.

Month-end reports are where this bites. Compare August to August and the two systems disagree even when every lead is accounted for.

5. The CRM throws leads away (correctly)

The CRM is where the lead meets a person. Duplicates get merged, spam and job-seekers get deleted, existing customers who used the contact form get logged against their old record. None of that reaches the ad platform, which keeps counting the original form fill.

The other CRM-side loss is source. If the form never passed the GCLID or UTM parameters into the contact record, the CRM holds the lead but cannot say where it came from, so it looks like the ads produced nothing. Our guides to GCLIDs and click IDs and HubSpot form tracking cover how to capture the source on the form.

Why don’t conversions match GA4 either?

GA4 disagrees with both the ad platforms and the CRM because it has its own counting rule, its own lookback window and its own attribution model. Google’s conversion tracking data page says discrepancies, often up to 20%, are expected between Google Ads and analytics tools because of different attribution models, and recommends the Conversions (by conv. time) column when comparing.

Three GA4 settings drive most of the difference:

  • Counting method. GA4’s key event counting page offers “Once per event” (every trigger counts) and “Once per session”. Once per event is the default for key events not migrated from Universal Analytics, so a double submission counts twice here too.
  • Lookback window. GA4’s attribution settings page sets a 90-day default for key events other than first visits and first opens, with 30 or 60 days as the alternatives. That is a different window from any ad platform’s.
  • Attribution model. GA4’s attribution guide lists data-driven, paid and organic last click, and Google paid channels last click. Pick a different model and the same lead moves between channels.

GA4 is useful as a neutral referee between channels, because it counts every channel with one rule. It still counts form fills, though, not deals. For more on how the models differ, see our marketing attribution models explainer.

Why don’t Shopify, Meta, Google, GA4 and Klaviyo revenue match?

For ecommerce the same logic applies with orders in place of leads: every marketing tool claims the sale inside its own window, and only the store backend records the money. We have written that up platform by platform. See why GA4 and Shopify disagree, why Klaviyo and GA4 revenue differ and the Meta over-reporting post.

Why does our reported spend differ from the client’s ad account?

Reported spend usually differs from the ad account because the two reports are not pulling the same data, not because money went missing. Check these before anything else:

  • Date range. A report run on the 1st may miss the last day’s cost, and a custom range in one tool may not match the other.
  • Currency. A dashboard can convert spend into a reporting currency at a different rate from the invoice.
  • Metric. Planned budget and actual cost are different numbers; make sure the report shows cost.
  • Connector freshness. A dashboard fed by a data connector shows whatever it last pulled, so check when it last refreshed.
  • Invalid clicks. Google’s invalid clicks page says Google filters invalid clicks from reports and payments, and you can add an “Invalid clicks” column to see how many were filtered.

Line both reports up on the same dates, the same currency and the same cost column, and most spend gaps disappear.

Which number should you trust?

Trust the CRM for outcomes, the ad platform for in-platform optimisation, and GA4 for comparing channels on one rule. None of them is the wrong number; each answers a different question, and the mistake is using one to answer another’s question.

QuestionNumber to trustWhy
How many real leads did we get?CRMDuplicates and junk removed, one record per person
How many became deals or revenue?CRMOnly the CRM sees the sale
Which campaign should bidding favour?Ad platformUseful for comparing campaigns inside one platform
Which channel sends better traffic overall?GA4One counting rule across every channel
What did we actually spend?Ad account billingThe invoice, not a dashboard

The long-term fix is to stop asking the ad platform to guess. Import the CRM’s qualified leads and deals back into Google Ads. Google’s offline conversion imports page says importing offline conversions lets you measure what happens after your ad results in a click, and that enhanced conversions for leads uses hashed customer data to improve accuracy and bidding performance. Our guide to Google Ads enhanced conversions for leads walks through that import.

How do you reconcile ad platform leads with your CRM?

Reconcile by pulling one month from every system, putting them on the same counting rule and dates, then matching platform leads to CRM records one by one. Here is the sequence we run.

  1. Set lead actions to count once. In Google Ads, open each lead conversion action and set the counting option to One, as Google recommends for leads. Do this before you compare anything, or the rest of the steps inherit the duplicates.
  2. Report by conversion date. In your Google Ads campaign report, add the Conversions (by conv. time) column, which Google describes as the one to use when comparing with third-party tools. Use Conversions, not All conversions, so view-through and secondary actions stay out.
  3. Split Meta by click and view. Break Meta’s leads down by click window and view window (the windows are listed in Meta’s Marketing API reference). View-only leads are the part most likely to be claimed by another channel.
  4. Export the CRM for the same month. Pull every contact created in the period with its source fields (GCLID, UTM source, UTM campaign), lifecycle stage and deal status.
  5. Match on source, then on email. Contacts carrying a GCLID belong to Google Ads; contacts with utm_source=facebook (or whatever your Meta links use) belong to Meta. Anything left with no source is your tracking gap, and it is usually the biggest line in the sheet.
  6. Count what survived. For each platform, record claimed conversions, matched CRM contacts, qualified leads and deals. The drop at each step tells you where the gap lives: counting, attribution, source capture or lead quality.

The last column is the one to budget on. A platform that claims fewer leads but more deals is the better channel, whatever its dashboard says.

How we reconcile ad platform and CRM numbers for clients

We treat the gap as a join problem between the ad platform, the website form and the CRM stage that marks a lead as real, and we fix it at each end: the counting settings, the source capture on the form, and the import that sends deals back. The payoff is budget you can defend. Here is what that looked like on one B2B engagement.

For a private aviation company we found $250,000 of Trade Desk spend had produced a single form submission, while $50,000 on Meta produced around 600 leads at $78 each. We recommended flipping the budget split.

Our tracking work covers this end to end. Reconciliation against a source of truth is one of the five layers in our paid audit, which needs access to GA4 and Google Tag Manager and ends in a written findings report. If your dashboards and your CRM tell different stories and you want a person’s read first, tell us what’s broken, or book a call.

Frequently asked

Why do advertising platforms report more conversions than the CRM?

Because they measure different events. Google Ads and Meta count conversions they can credit to their own ads within their attribution windows, and Google Ads includes modelled conversions in its Conversions column. The same person can sit inside both platforms' windows and be counted twice. Your CRM counts unique people who became leads, after duplicates and junk are removed.

Which number should I trust, the ad platform or the CRM?

Trust the CRM for what actually happened: how many real leads arrived and how many became deals. Use the ad platform number to compare campaigns inside that platform. When the two need to agree, import the CRM's qualified leads and deals into Google Ads as offline conversions rather than trying to make the dashboard match by hand.

Why don't my Google Ads conversions match GA4?

Google Ads reports conversions against the date of the click, while GA4 uses its own attribution model, lookback window and counting method. [Discrepancies of often up to 20% are expected between Google Ads and analytics tools due to different attribution models](https://support.google.com/google-ads/answer/6270625). For a fairer comparison, use the Conversions (by conv. time) column in Google Ads.

Why does our reported ad spend differ from the client's ad account?

Usually because the two reports are not pulling the same thing: a different date range, a different currency, a connector that has not refreshed, or planned budget reported in place of actual cost. Google Ads also filters invalid clicks out of reports and payments. Compare both reports on the same dates and the same cost metric before you assume either is wrong.

Can you reconcile our ad platform and CRM numbers for us?

Yes. Reconciliation against a source of truth is one of the five layers in our paid audit, which works inside your GA4 and Google Tag Manager and ends in a written findings report. If you want a person's read on the gap first, send us a message or book a call; that part is free.

Talk to us

Where does your data stop making sense?

Tell us what's broken, or grab a time. Either way you hear from a person, not a sales script.

Send a message

We reply within one working day.

Add a few details (optional) The more we know up front, the faster we can tell you what's wrong and how to fix it.

Protected by an invisible spam check. Prefer email? olam@dolphinanalytics.co.uk

Calendly · 30 min

Book a call

Thirty minutes on Google Meet with the founder.

The booking lands on the same record as your message.