---
title: "Why your ad account and your CRM never agree"
description: "Ad platforms book conversions on the click date, CRMs on the record date. How to find where leads are lost and reconcile a single day."
canonical: https://adsbeast.pro/blog/en/why-your-ad-account-and-your-crm-never-agree
language: en
published: 2026-09-03T13:16:49.195Z
updated: 2026-09-14T20:56:22.884Z
author: "ADS Beast editorial team"
translations:
  - ar: https://adsbeast.pro/blog/ar/why-your-ad-account-and-your-crm-never-agree
  - es: https://adsbeast.pro/blog/es/panel-de-anuncios-vs-crm-por-que-no-coinciden
  - he: https://adsbeast.pro/blog/he/why-your-ad-account-and-your-crm-never-agree
  - ru: https://adsbeast.pro/blog/ru/pochemu-tsifry-reklamnogo-kabineta-ne-skhodyatsya-s-crm
  - sk: https://adsbeast.pro/blog/sk/cisla-z-reklamneho-uctu-nesuhlasia-s-crm-ako-zistit-preco
  - uk: https://adsbeast.pro/blog/uk/tsifri-reklamnogo-kabinetu-ne-zbigayutsya-z-crm-yak-zvesti-zviti
---
# Why your ad account and your CRM never agree

The ad account reports one lead count, the CRM reports another, and both are right. The gap is not an arithmetic error. The two systems count different events, record them at different moments, and file them under different days.

## In short

- The ad platform books conversions on the click date, the CRM on the record date.
- Some leads never arrive: form, webhook, duplicate, spam filter.
- Platform attribution is wider than "someone arrived and left a phone number".
- Reconcile individual leads from a single day, not monthly totals.
- Until the gap is explained line by line, budget decisions are premature.

## One event, two dates

Google Ads and Meta record a conversion against the click date, not against the day the person filled in the form. Someone clicks on Monday, thinks it over, and submits on Wednesday. The ad account files that lead under Monday. The CRM creates the record on Wednesday.

Over a month this evens out. Over a week it does not, and it is most visible at the edges of a period: the last days keep filling in for several more days after the period closes.

## The lead exists, the record does not

The second cause is loss in transit. There are only a few, and each is checked separately:

1. A lead form hands data only to an app that holds lead access permission and a valid page token. Once the token expires, leads stay in the ad account.
2. The webhook answers something other than 200. The sender retries a few times, then stops.
3. A duplicate phone number merges into an existing record. Two events in the ad account, one record in the CRM.
4. The CRM spam filter routes the lead to a separate folder that never reaches the report.

The first two produce clean gaps: no leads at all from a given hour onward. The last two produce a steady percentage shortfall.

## Attribution counts more than the form

The platform counts whatever you told it to count. If both form submissions and calls from the site are set as conversions while the CRM tracks only forms, the difference is permanent and explainable. Attribution windows do the same thing: a seven day click window and a one day view window are two different numbers for the same period.

## How to reconcile in practice

Comparing monthly totals gets you nowhere: the two sums disagree and there is no way to tell where to look. Work in the opposite direction.

Take one day. Export the platform leads with their ids and the CRM records for that day and the next. Match on phone and email. Every row falls into one of four groups: present in both, present only in the ad account, present only in the CRM, present in both on different days. The third group is traffic from other sources. The second group is your loss, and its cause is always technical.

Then repeat on a day from another period. If the picture repeats, the problem is structural. If it does not, there was a one off failure and you now have its date.

## What to do next

Start with one day and one platform. If the second group is not empty after reconciliation, the thing to fix is lead delivery rather than bids and budgets. Until then, every optimisation rests on partial data.

[All blog articles](/blog)

## Related reading

- [Server-side conversion tracking: how to enable without double-counting](/blog/en/server-side-conversion-tracking-how-to-enable-without-double-counting)
- [What counts as a significant edit, and why the campaign starts learning again](/blog/en/what-counts-as-a-significant-edit-and-why-the-campaign-starts-learning-again)

See how this works in ADS Beast: [your ad account and your CRM](/features/en/tracking).

## Questions and answers

### Why does the ad account report more leads than the CRM?

Two reasons. The ad platform books a conversion on the click date while the CRM creates the record on the day the person got in touch, so one event lands on two different days. And some leads never arrive: an expired page token, a webhook answering anything but 200, a duplicate merged into an existing record, a spam filter.

### How do I tell whether leads are being lost on the way to the CRM?

Reconcile one day, not one month. Export the platform leads with their ids and the CRM records for that day and the next, then match on phone and email. Rows that exist only in the ad account are your loss, and the cause is always technical.

### Can I change budgets before the gap is explained?

No. While part of the leads never reach the CRM, your cost per lead looks higher than it is, and every decision rests on incomplete data. Fix delivery first, then bids and budgets.

