Most Meta advertisers only track what happens online. But for businesses with a physical presence — retail stores, service companies, dealerships, clinics — a significant portion of revenue comes from customers who first saw a Meta ad and then bought in person, over the phone, or through a sales rep. Without tracking these offline conversions, you are attributing zero value to the ads that drove those customers.
Meta’s Offline Conversions API solves this. It lets you upload your in-store sales, phone orders, and CRM data to Meta, which then matches those transactions against people who were exposed to your ads. This guide covers how to set it up, what data to include, and how to maximise your match rates.
What Is the Meta Offline Conversions API?
The Meta Offline Conversions API is a data upload mechanism that lets you send conversion events from outside your website — in-store purchases, phone sales, email orders, CRM closed deals — to Meta’s advertising system. Meta then matches those events against its user profiles to determine which customers had seen or clicked your ads before converting.
The matching process uses customer data you provide (email, phone, name, address) to identify the Meta profile that corresponds to each offline customer. Meta hashes and compares this data against its own database to find matches. You never see the raw profile data — Meta reports only aggregate match results.
Who Should Use Offline Conversions
| Business Type | What to Upload | Potential Impact |
|---|---|---|
| Retail stores | POS transaction data | Attribute in-store sales to Meta ad exposures |
| Car dealerships | CRM closed deals | Measure Meta’s true contribution to high-ticket sales |
| Service businesses | Completed bookings / invoices | Close the loop between ad click and paid service |
| Healthcare / clinics | Appointment completions | Measure patient acquisition cost accurately |
| B2B / lead gen | CRM qualified leads and closed revenue | Optimise toward actual revenue, not just lead form fills |
| Phone sales | Call centre order data | Attribute phone orders to specific campaigns |
If more than 20% of your revenue comes from offline or phone-based transactions, offline conversions tracking is not optional — it is the only way to accurately measure your Meta ad ROI.
Step 1: Create an Offline Event Set
- Go to Meta Events Manager at business.facebook.com
- In the left sidebar, click Connect Data Sources
- Select Offline as the data source type
- Click Create Offline Event Set
- Name it descriptively (e.g., “In-Store Sales”, “Phone Orders”, “CRM Deals”)
- Click Create
Your offline event set now appears in Events Manager. The next step is connecting it to the ad accounts that should receive attribution credit.
Step 2: Connect Your Ad Account
- Click on your new offline event set
- Go to the Settings tab
- Under Assigned Ad Accounts, click Add Ad Accounts
- Select the ad accounts that run the campaigns you want to measure
You can connect multiple ad accounts to the same offline event set. Any campaign in those accounts can then be associated with offline conversions.
Step 3: Upload Your Offline Event Data
Meta offers two ways to upload offline events:
Option A: Manual CSV Upload (simplest)
In your offline event set, click Upload Events and prepare a CSV file with your transaction data. Meta provides a template, but the minimum required fields are:
| Column | Required | Format |
|---|---|---|
| event_name | Yes | “Purchase”, “Lead”, etc. |
| event_time | Yes | Unix timestamp of when the conversion occurred |
| value | For purchases | Numeric (e.g., 89.99) |
| currency | For purchases | ISO currency code (GBP, USD, EUR) |
| Recommended | Plain text — Meta hashes it automatically on upload | |
| phone | Recommended | Include country code (e.g., +447700000000) |
| first_name | Recommended | Plain text |
| last_name | Recommended | Plain text |
| order_id | Recommended | Your internal transaction ID |
You can upload email and phone in plain text — Meta hashes them automatically during processing. You do not need to pre-hash the data for CSV uploads.
Option B: Continuous API Upload (automated)
For businesses with a CRM or POS system, you can automate offline event uploads using Meta’s Offline Conversions API endpoint. Your CRM or order management system sends a POST request to Meta’s API each time a new offline conversion is recorded. This keeps your data current without manual exports.
Many CRM platforms — including Salesforce, HubSpot, and Zoho — have native Meta integration that handles this API connection without custom development. Check your CRM’s integration marketplace for a Meta Conversions or Facebook Ads integration before building a custom solution.
How Meta Matches Your Offline Data
After upload, Meta runs a matching process to connect your offline customers to Meta profiles. Matching uses a combination of:
- Email — highest match signal; if a customer’s email matches a Meta account, the match is almost certain
- Phone number — strong signal, especially for users who registered their phone with Meta
- Name + location combination — used when email and phone are not available or do not match
- IP address + user agent — can help for recent transactions, but should not be relied on alone
Match rates vary significantly by data quality. A typical offline event set achieves a 40 to 70% match rate. Meaning 40 to 70% of your uploaded transactions will be successfully attributed to a Meta user who was exposed to your ads.
How to Improve Your Match Rate
- Always include email — it is the strongest matching signal. If your POS or CRM does not collect customer email, add a step to the sales process that captures it
- Include phone with country code — many customers use their phone number to register on Meta; without the country code, the phone match will fail
- Include first and last name — used as a tiebreaker when email or phone matches multiple profiles
- Upload transactions within 7 days of occurring — Meta’s attribution window closes after a certain period; old transactions may not match any ad exposure
- Keep email format consistent — always lowercase, trimmed of whitespace, no extra characters
Using Offline Conversions in Your Campaigns
Once you have offline events uploading, you can use them in two ways:
1. Attribution Reporting
In Ads Manager, select your offline event set as a data source in campaign settings. Meta will then show which campaigns and ad sets drove offline conversions — matching against your uploaded data. This gives you a true ROAS that includes revenue from both online and offline transactions.
2. Campaign Optimisation
You can create campaigns that directly optimise toward offline conversion events. At the ad set level, select your offline event set as the conversion location and choose an offline event (e.g., Purchase) as the optimisation goal. Meta’s algorithm will then optimise ad delivery toward people more likely to convert offline based on your historical upload data.
For this to work effectively, you need at least 50 offline conversion events per week so the algorithm has enough signal to work with. Below that threshold, use online conversions for optimisation and track offline as a secondary metric.
Important Limitations
- Attribution window — offline events must occur within 28 days of an ad click or 1 day of an ad view to be attributed. Transactions outside this window will not match any ad
- Privacy compliance — you must have a legal basis for uploading customer data (purchase transaction records typically satisfy this under most privacy frameworks, but check with your legal counsel for your specific region)
- Match rate is never 100% — some customers will not have Meta accounts or will use different contact details; expect 30 to 70% match depending on your customer demographics
Combine offline conversion tracking with a tracking audit of your online pixel setup. Having both online and offline data gives you the most complete picture of your Meta ad performance — and the cleanest input data for Meta’s bidding algorithm.
Related Articles
- Meta Conversions API Setup for WooCommerce
- Meta Pixel Standard Events: Complete List and Setup Guide
- Tracking Explained: How Every Ad Platform Tracks Your Ads
- Free Tracking Audit Checklist: Is Your Setup Working?
📋 Not sure where to start? Use our Free Tracking Audit Checklist to find out where your setup is losing data.
Book a free tracking audit → We’ll review your setup and tell you exactly what to fix.