Open Tracked/Integrations/Facebook offline conversion using server GTM

Facebook offline conversion using server GTM

Meta's older Offline Conversions API has been replaced by the Conversions API. Send offline events there, with good matching data.

5 min read · Updated October 26, 2026

CCRM or storeServer containerMeta Conversions API
In this guide
Key takeaways
  • Offline events now go through the Conversions API, with an action_source that says where the event happened.
  • Matching depends on hashed e-mail and phone and, for leads, fbc and fbp saved earlier.
  • Send events promptly. Meta limits how old an event can be.

"Offline conversion" means a sale or a lead stage that happened outside the browser: a phone order, a store purchase, a deal closed in a CRM. Meta used to have a separate Offline Conversions API; it has moved offline events into the Conversions API, which uses the same endpoint, the same event format and the same match keys as website events. This page explains what to send, how to match it and how to verify. For the broader pattern see how to send offline conversions and CRM data to Meta with webhooks. Meta changes details often, so check its current documentation.

Choose the action source

Where it happened`action_source`
A websitewebsite
In a physical storephysical_store
By phonephone_call
By e-mailemail
In a chatchat
Anywhere else, such as a CRM stagesystem_generated or other
Set up in minutes

Connected in minutes

Add your domain, install the pixel, connect your ad platforms and watch the first events land.

What an offline event needs

  • Event name: a standard one such as Purchase, or a custom one such as QualifiedLead.
  • Event time: when it happened, in Unix seconds.
  • Match keys: hashed e-mail and phone at least; fbc, fbp and external_id if you have them.
  • Value and currency for purchases.
  • Event ID to avoid duplicates.

Steps from a CRM

1

Store identifiers at the lead

Click ID, browser ID and hashed contact data on the lead record.

2

Choose stages

Qualified, won, and any others that predict sales.

3

Send a webhook to your tagging server

On each stage change.

4

Send the Conversions API event

With the stored match keys, the stage name and the correct action source.

5

Verify in Events Manager

The event appears under the dataset with its source and match keys.

Try it

Works with your stack

Grab a logo and throw it. These are the tools Open Tracked already talks to.

Grab one. Throw it.

Time limits

Meta generally accepts events that are up to about 7 days old, with different rules for some sources, so send stages as they happen. If a store uploads sales from a till system every night, send them nightly, not monthly. When a delay is part of the process, such as waiting for a payment to clear, consider using a delay rule on your server rather than a long-running batch.

Check the quality

0 of 6 done
SymptomEvents are rejected
Likely causeThe event time is too old or in milliseconds.
FixSend promptly and use seconds.
SymptomLow match
Likely causeOnly e-mail is sent.
FixAdd phone and click IDs.
SymptomDuplicates with the website purchase
Likely causeA store sale also fires online.
FixUse the same event ID across sources.

A worked example: a phone sale

A furniture store takes orders by phone after people click a Meta ad and browse the site. A sales agent enters the order in the till system. The system calls a webhook with the order number, the amount, the customer's e-mail and phone, and the time. The server container hashes the e-mail and phone, adds the fbp and fbc values it stored when the visitor first filled in a callback form, and sends a Purchase event with the action source phone_call. In Events Manager the sale shows under the dataset with the phone source, and Meta can link it to the ad. Without that event, those sales would be invisible to the ad account, which would then favour people who buy online over people who buy by phone.

The result is not magic. Meta still needs enough events to learn, and the match rate depends on the data quality. But a business that sells half its volume offline and only reports the online half is teaching the platform to ignore half of its customers. Sending the other half, with good identifiers, is one of the highest-value changes you can make.

Terms you will see

Offline conversion
A sale or lead stage that happens outside the browser.
Action source
The field that says where an event happened.
Match keys
The identifiers that let Meta match an event to a person.
Event time
When the action happened, in Unix seconds.
Dataset
The place events arrive in Events Manager.

Review the flow monthly. Count the offline events you sent, compare them with the sales in your system, and check that the share of matched events in Events Manager has not dropped. A sudden fall usually means a change in the till system or the form: a field was renamed, a script was removed, a hashing step broke. A short monthly look catches it within weeks instead of quarters, and the notes you keep make the cause easy to find.

Works worldwide

Runs on your domain, anywhere

Your tracking runs on your own domain, so a visit from any country is handled the same way.

Frequently asked questions

What replaced the Offline Conversions API?

Meta moved offline events into the Conversions API. You send them with an action source such as physical_store or system_generated.

How old can an offline event be?

Generally about 7 days, with some exceptions. Check Meta's current documentation.

Do I need the click ID?

It helps. Hashed e-mail and phone also match.

Can a server container send offline events?

Yes. A client accepts the webhook and the Meta tag sends the event.

How do I check the events arrived?

In Events Manager, in the dataset's Overview and Test Events.

Do I need spreadsheets to read my results?

No. Once tracking is live, the Open Tracked analytics shows spend, revenue, ROAS and profit, and you can ask Ari, the built-in AI assistant, questions about your own numbers in plain words. Ari's allowance depends on your analytics plan.

Is Open Tracked different from Open Track or Open Space Track?

No. Open Tracked is the official name of our server-side tracking platform, and the website is opentracked.io. Many people search for it as Open Track, OpenTrack or Open Space Track. All of them lead to the same product: server-side Google Tag Manager hosting, first-party analytics and a CRM pipeline.

Fix your tracking at the source

Open Tracked hosts your server-side Tag Manager, keeps first-party cookies alive and shows what each ad is really worth.

Open Tracked
Written by

The Open Tracked team

We build Open Tracked: server-side tracking hosting, analytics and the tools around them, for stores that spend on ads. Questions about this guide, or an idea for the next one?

Write to us Read the docs

Was this article helpful?

Comments

Loading comments...

Turn better tracking into better marketing performance

Start free