MB SuiteMB Suite

Conversion sending: statuses, matching and numbers that don't match

Updated 2026-08-21

In two lines: the totals in Meta, Google Ads, TikTok or LinkedIn and the ones in your CRM will never be identical, and that's expected — every platform credits itself. Use the platform's numbers to steer the algorithm and the CRM's to count the money.

Why doesn't Meta's (or TikTok's) number match my CRM's?

Because each platform attributes its own conversions to itself. If a person saw your Meta ad, later clicked a Google ad and finally bought, Meta counts that sale as its own and Google counts it as its own. Neither is lying: each is answering the question did I take part in this?, not was I the only one?. Add up the reports from every platform and you will always get more conversions than sales you actually made.

On top of that, each platform uses its own attribution windows and its own modeling, so even a single platform's count won't line up exactly with the day a deal was marked won in your CRM. The gap is structural. It is not double sending, and it is not something to fix.

The mechanics are identical on every platform; only the identifier changes. For Meta the event travels with its lead ID, its Click ID (fbclid) or the pixel cookie; for TikTok, with the TikTok Click ID (ttclid) the lead arrived with. Each platform matches on what it recognizes as its own, so the very same won deal can legitimately be claimed by both. The Match column tells you which identifiers each send carried — the fastest way to see why one platform recognized a sale and the other didn't.

The unified truth —one sale counted once, credited to a single origin— is the CRM's Attribution, in CRM > Performance. That's the number you take to a client meeting or a board.

The rule of thumb: the platform's numbers are fuel for the algorithm, the CRM's numbers are for counting money. Meta needs to believe it participated in order to learn; you need one sale counted once in order to decide the budget. Both numbers are useful for different jobs, and asking them to be equal is asking the wrong question.

When does the loop actually close?

Sending the events is only the first half. The loop closes when a campaign is actually set to optimize toward the event you're sending. Until someone selects it as the campaign's objective on the platform's side, MB Suite is feeding a signal that nobody is listening to: the events arrive, they show up in Events Manager, and the algorithm keeps optimizing for whatever it was optimizing for before.

  • Confirm the events are arriving: Received in HealthConfirmed on Google Ads—, or the rows in History.
  • In Events Manager, check that your event names appear and order them into your funnel. On Meta, custom names show up on their own once you've sent them; on TikTok you're already working with its standard events, so they're there from the start. Either way, arranging the funnel and choosing the target stage is done by hand, once.
  • In the campaign, set that event as the performance goal. This is the step people forget.
  • Then give it time and volume. An algorithm can't learn from a handful of events, and the effect on cost per sale shows up gradually, not the next morning.
Don't switch a campaign's objective back and forth while you wait. Every change restarts the algorithm's learning, and a campaign that never finishes learning performs worse than one you left alone. Change it once, on purpose, and let it run.

What does each status in the history mean?

  • Received — the platform confirmed it. This is the one you want. Careful with LinkedIn: Received means it took the event, not that you'll see it in Campaign Manager right away — as its Health block warns, LinkedIn takes up to 24 h to process events and up to 72 h to reflect them in reports.
  • Sent · awaiting Google confirmation → Confirmed by Google / Rejected by Google — Google Ads only: instead of a flat Received, each upload gets a final verdict from Google between 30 minutes and 24 hours later. A rejection shows Google's own reason and can be retried after fixing the deal. If 24 hours pass with no verdict, the row reads Sent · no Google confirmation within 24 h — MB Suite stops asking; check the action's Diagnostics in Google Ads (Goals → Conversions). The full lifecycle is in Activate Google Ads offline conversions step by step.
  • Queued — waiting for the grace window to pass. It leaves on its own; the row tells you in how many minutes.
  • Sending — on its way out right now.
  • Retrying — a temporary problem (the platform unavailable, a network hiccup, too many requests). It retries on its own, spacing out the attempts. You don't have to do anything.
  • Failed — the platform rejected it for good, or the retries ran out. This one needs you: fix the cause and use Retry send. On TikTok, a rejection that repeats on every send usually means the connected user lost operational access to the pixel — see Activate TikTok offline conversions step by step.
  • Canceled — the deal moved back within the grace window, so the send was called off. Nothing went out and nothing is wrong: the window did its job.
  • Not sent — the rule matched but the event couldn't go out. The row always says why (next section).
Attempts (30 d) counts everything the rules triggered in the period, so it will always be equal to or larger than Received (Confirmed, on Google Ads). If the gap between the two is wide, the answer is in Failed and Not sent — filter the history by those and you'll see the pattern in a minute.

Why does it say Not sent?

  • Not sent — deal without amount: the rule sends an event that requires a value and the deal has none. Load the amount, or give the rule a Fixed value. It only comes up on Meta and TikTok, where Purchase without an amount is never sent — on Google Ads and LinkedIn the value is always optional, so the event travels anyway.
  • Not sent — no identifiers: there was nothing to recognize the person by. Typically a deal loaded by hand, with no email, no phone and no advertising origin. See the next section.
  • Not sent — event too old (Meta accepts up to 7 days): the change happened too long ago. This shows up when you update deals in bulk or move something that had been sitting still for weeks. There's no way around it and no retroactive backfill: Meta simply won't take it.
  • Not sent — event too old (TikTok attribution reaches up to 28 days): the same case on TikTok, with a wider window — 28 days, its maximum post-click attribution window. More room for a slow sales cycle, same rule beyond it: nothing goes out and there's no backfill.
  • Not sent — event too old (LinkedIn accepts up to 90 days): the same case on LinkedIn, with the widest window there is — made for the long B2B cycle. Past it the rule doesn't change: nothing goes out and there's no backfill.
  • Not sent — event too old (Google accepts up to 90 days): the same case on Google Ads, which shares LinkedIn's ninety-day window. Same rule past it: nothing goes out and there's no backfill.
  • Not sent — sending was off: the rule matched while the switch was off. Turn on that platform's switch in HealthSend conversions to Meta, Send conversions to Google Ads, Send conversions to TikTok or Send conversions to LinkedIn— and from that point on it travels.
  • Not sent — the rule no longer exists: someone deleted the rule between the deal changing and the event going out. Harmless, and it's the history being honest with you.
  • Not sent — the deal was deleted: the deal disappeared before the event left, usually during the grace window. There's nothing left to report, so nothing goes out.

How do I improve the match quality?

Event match quality (Meta) measures how many identifiers you manage to hand over per event, and therefore how often Meta can tie your conversion to a real person it knows. A low score isn't cosmetic: an event Meta can't match teaches the algorithm nothing, so you're paying the effort and getting none of the optimization. Neither Google Ads, TikTok nor LinkedIn publishes an equivalent score, but the mechanics are identical — an event they can't tie to a person is an event they can't learn from.

The Match column shows what each event actually carried: Hashed email, Hashed phone, Meta lead ID, Click ID (fbclid), Meta pixel cookie, WhatsApp click (CTWA). On Google Ads it's Hashed email, Hashed phone and its own click IDs —Google click ID (gclid), iOS click ID (app), iOS click ID (web)— and no names: its API takes none from MB Suite. On TikTok the list is shorter —Hashed email, Hashed phone and TikTok Click ID (ttclid)— because its Events API accepts nothing else. On LinkedIn it's different again: Hashed email, LinkedIn cookie (li_fat_id), LinkedIn Lead Gen form, plus First and last name and Company, which its API takes unhashed. Watch out for two LinkedIn specifics: it does not accept phone as an identifier, and name and company don't count as identity on their own — a deal with only a name goes out as Not sent — no identifiers. Either way the fix is CRM hygiene, not a setting:

  • Fill in email and phone on your contacts. They're the two identifiers that work for any lead, whatever its origin, and the ones that move the score the most.
  • Keep your lead sources mapped (Lead sources) so the Meta lead ID arrives with the lead. For leads that came from a Meta form, that ID is the strongest identifier there is.
  • Install the MB Suite Pixel (MB Suite Pixel) if you capture from your site: that's where the click IDs and the pixel cookie come from — Meta's fbclid, Google's gclid and TikTok's ttclid alike. On Google Ads and TikTok, with only email and phone available besides it, that click ID does a lot of the work.
  • Avoid creating deals by hand with no contact data when they came from advertising. That's the classic profile of a Not sent — no identifiers.
Never invent data to raise the score. A made-up email or a placeholder phone number doesn't match anyone: it doesn't help the algorithm, it pollutes your CRM, and it means you're sharing false data about a real person with a third party. An event with fewer honest identifiers is always better than one with fabricated ones.

Why isn't anything showing up in the history?

  • Sending is off. If you have rules but the switch is down, Mapping warns you: rules are configured but sending is off. Turn on Send conversions to Meta, Send conversions to Google Ads, Send conversions to TikTok or Send conversions to LinkedIn in Health. Each platform has its own switch: turning one on doesn't turn the others on.
  • There are no rules. Without rules nothing is ever sent. Create one or use Restore default rule.
  • No deal has triggered one yet. The history fills up going forward, from the moment you turn it on — it doesn't bring in past deals. Move a test deal to the stage in your rule and watch the row appear.
  • Another rule is swallowing the change. The first rule that matches wins, so a broad rule sitting above a specific one takes every change for itself. Reorder them by dragging: specific on top.
  • The filters are hiding it. Check the search box and the Status filter, or use Clear filters.
Retrying a failed send is safe. Every event travels with its own unique ID —on Meta, Google Ads and TikTok alike—, so if one did arrive and you retry it, the platform deduplicates it and it isn't counted twice. On Google Ads you can also retry a send it rejected during confirmation, after fixing the deal. When in doubt, retry.

Remember that everything travelling to Meta, Google Ads, TikTok or LinkedIn involves your contacts' data —hashed on Meta, Google Ads and TikTok; on LinkedIn, name and company travel unhashed as its API requires— processed under each platform's own terms. If you're reviewing what you share and on what basis, the conditions that apply to your use of MB Suite are in our Terms of Service.

Still have questions?

Ask MIA, the MB Suite AI assistant: open it with the MB AI button (⌘J) in the top bar. MIA knows the section you're in, so you can ask it about what you see on screen — and it can also answer how-to questions about using MB Suite.