Vazante
Sign inStart

Metrics and analysis

When the CRM and the ad manager disagree: 7 legitimate causes

Meta says 40 conversions, the CRM shows 28. It is not always a bug: the seven real causes of the gap, how to spot each one, and which number to decide with.

Also available in: Português · Español

The ad manager says 40 leads. The CRM shows 28. Someone will claim Meta is lying, someone will claim the sales team lost leads, and both accusations are usually wrong.

A gap between platform and CRM is the rule, not the exception. What separates a mature operation from an amateur one is not making the numbers match — it is knowing why they do not and which one to use for each decision.

First: which gap is normal

GapReading
up to 15%window and attribution noise, expected
15% to 30%worth investigating, no alarm
above 30%structural cause, fix before deciding

And the most important signal is not the size of the gap, it is its stability. A steady 20% gap over months is a known bias you can work with. A gap that jumped from 10% to 45% last week is a new defect, and that is what you need to find.

The seven causes

1. Mismatched attribution windows

Cause number one, and the easiest to fix. Meta credits by default 7 days after click and 1 day after view. Your CRM credits by the date the lead arrived.

Someone who saw the ad on Monday and signed up on Friday is a Monday conversion in the ad manager and a Friday lead in the CRM. In a weekly report, that alone moves the number.

How to spot it: switch the ad manager to 1-day click and compare again. If the gap shrinks sharply, this was it. The piece on the attribution window covers the combinations.

2. View-through without a click

Inside the default window, Meta credits people who saw and did not click. Your CRM will never know that person existed as an "ad conversion" — they arrived by another road.

How to spot it: compare the click-only conversion column against the total. The difference between them is exactly that group.

3. The event firing twice

Browser pixel and server-side conversions API sending the same event without a shared event_id. Meta counts two, the CRM counts one.

How to spot it: the Events Manager usually flags duplicate events. If Meta's number is almost exactly double the CRM's, suspect this first.

4. A lead the CRM never stored

A form that failed its integration, a lead that landed in spam, an automation that did not run. The conversion really happened — Meta is right and the CRM lost it.

How to spot it: compare against the raw form inbox or spreadsheet too. If the lead is there and not in the CRM, the hole is in the integration, not the measurement.

5. Origin never recorded

The lead arrived, the CRM stored it, but with no utm_source. In the by-origin report it becomes "no source" and drops out of the paid count, inflating the gap without a single lead going missing.

How to spot it: compare total leads for the period, not just paid ones. If the total matches and paid does not, the problem is tracking coverage. That is the calculation described in connecting Meta Ads to your CRM.

6. Duplicates in the CRM

The same person filled the form twice and became two records. Now the CRM has more than the ad manager, and the gap flips sign.

How to spot it: deduplicate by phone and email before comparing. In high-volume operations, 5% to 10% duplication is common.

7. Time zone

The ad manager uses the ad account's time zone, which is not always yours. A daily report closes at different moments on each side, and leads around midnight land on different days.

How to spot it: compare a 30-day period instead of a single day. If the gap disappears across the month and only shows up daily, it is the time zone.

Which number for which job

This is the part that ends the argument in the meeting:

Use the ad manager's to optimize delivery. The algorithm learns from the event it receives. Feed Meta one event and judge it by another, and you are asking it to optimize blind.

Use the CRM's to decide how much to invest. What a lead is worth, the ceiling on real cost per sale, whether the campaign pays for itself — those questions live on your side of the bridge.

Never add them together. The classic mistake is presenting "40 conversions in Meta plus 28 in the CRM" as if they were different things. They are the same thing counted two ways.

How to shrink the gap

Three adjustments close most of the hole:

  1. Align the window. Pick one — usually 7-day click — and use it on both sides, including in the client report.
  2. Make deduplication work. Pixel and conversions API must send the same event_id. Without it you inflate your own numbers and optimize on a wrong signal.
  3. Measure origin coverage. While it sits below 70%, part of the gap is tracking rather than attribution, and arguing about models is pointless.

The habit that prevents the argument

Measure the gap every week and write it down. Not to correct it, but to know it.

After two months you know your operation runs at a steady 18% gap. From then on, the ad manager's number becomes a useful estimate of the CRM's, and the week the gap jumps to 40% becomes an alarm — which is exactly what you want it to be.

For the case where the disagreement is not between CRM and platform but between platform and analytics, the same problem with two different actors is covered in last-click attribution.

Frequently asked questions

How big a gap between CRM and ad manager is acceptable?

Up to 10–15% is normal attribution and window noise. Above 30% there is a structural cause: broken tracking, mismatched windows or missing deduplication. In between, investigate without alarm.

Which number should I use to set budgets?

The CRM's to decide what a lead is worth, the ad manager's to optimize delivery. The platform needs its own event to learn; you need yours to know whether it pays.

Is the ad manager inflating conversions on purpose?

No bad faith needs to be assumed. The platform credits whatever it touched inside its own window, with a model different from yours. It is method bias, not fraud.

How do I shrink the gap?

Align the attribution window on both sides, make sure pixel and conversions API deduplicate, and measure origin coverage in the CRM. Those three close most of the hole.

Read next