ananas.team
§ 07·ARTICLE
Meta AdsThe ananas.team crew··

Offline Conversions in Meta: How to Push Real CRM Deals Back Into Ads Manager

Meta has the same disease as Google, just seen from a different angle. The pixel sees the top of the funnel — a signup, a lead, a completed form. The fact that two weeks later that person became a paying customer, the pixel never sees at all. And Meta optimizes for what it can see: cheap mid-funnel events.

Offline Conversions cure that. You take real deals out of your CRM and upload them back into Meta, tying them to ad impressions. The algorithm finally learns which impressions actually led to money.

Match keys decide everything

Meta matches your offline deal to a user by identifiers. The more of them you send, the higher the chance of a match. Email, phone, fbp, fbc, external_id.

The biggest mistake is sending email only. Match rate on a single key is depressing. Collect as much as you can on the site: set external_id, capture fbp and fbc from cookies, and pull all of it into the CRM together with the lead. Then hand over the full set when you upload. The difference in match rate between “just an email” and “the full set” is a multiple, not a rounding error.

event_time is the time of the deal, not of the upload

A subtlety almost everyone trips over. The event_time in an offline event has to be the moment the deal actually happened, not the moment you uploaded the file.

Why it matters: Meta ties the event to impressions inside the attribution window relative to event_time. Put the upload time in there and the window shifts, so Meta never finds the impression that actually brought the customer in. Attribution falls apart even though your data is correct.

Deduplication with the pixel

If an event fires both from the pixel and from an offline upload, you need event_id so Meta doesn't count the same deal twice. The same mechanism as in CAPI. Without it you inflate your reported conversions and fool yourself about performance.

The real prize is the value-based lookalike

And here is what this whole exercise is actually for. Once you have uploaded real paying customers with their amounts, build lookalikes on them. Not on leads. On money.

A contentious take: lookalikes built on leads are close to useless for fintech and for any long funnel. You are cloning an audience of form-fillers. What you need is an audience that resembles the people who pay. Those are different people. A value-based LAL on your top spenders works an order of magnitude better than a plain one, and most teams simply never set it up, because collecting offline data is a hassle.

What to do

Check whether fbp, fbc and external_id actually reach your CRM together with the lead. If they don't, start there, because without identifiers there is nothing to match on. Then set up a regular export of deals with the correct event_time. And only after that build value-based audiences.

§ 08·RELATED