How to Set Up Offline Conversions for Facebook (Meta) Ads
Setting up offline conversion tracking for Meta (Facebook/Instagram) Ads requires configuring your Meta Business Manager, creating a pixel, generating a Conversions API access token, and establishing a data pipeline for sending offline events. This guide covers every prerequisite.
Setup Checklist
| Step | Time | Difficulty |
|---|---|---|
| 1. Verify Business Manager | 5 min | Easy |
| 2. Create/verify Pixel | 5 min | Easy |
| 3. Generate CAPI token | 2 min | Easy |
| 4. Set up FBCLID capture | 15-30 min | Moderate |
| 5. Configure PII collection | Varies | Varies |
| 6. Test with Events Manager | 10 min | Easy |
| 7. Set up TUOCA relay | 5 min | Easy |
Step 1: Verify Your Business Manager
You need a Meta Business Manager account to access the Conversions API.
- Go to business.facebook.com
- Verify you have Business Manager (not a personal ad account)
- Ensure you have admin access to the Business Manager
- Verify your ad account is connected to the Business Manager
If you don’t have a Business Manager, create one at business.facebook.com/overview.
Step 2: Create or Verify Your Pixel
The Pixel serves as the data container for Conversions API events.
Creating a New Pixel
- Go to Events Manager (business.facebook.com/events_manager)
- Click Connect Data Sources → Web
- Name your pixel (e.g., “[Business Name] Pixel”)
- Click Create Pixel
- Skip the installation steps (not needed for offline-only)
- Note your Pixel ID (a 15-16 digit number)
Using an Existing Pixel
If you already have a pixel installed on your website, use the same one. Go to Events Manager, select your pixel, and note the Pixel ID from the Settings page.
Step 3: Generate a Conversions API Access Token
- In Events Manager, select your pixel
- Click Settings (tab at the top)
- Scroll to Conversions API
- Click Generate Access Token
- Copy the token immediately — you won’t be able to see it again
- Store it securely (password manager, encrypted storage)
Token Properties
| Property | Value |
|---|---|
| Type | System User Token |
| Expiration | Does not auto-expire |
| Scope | Events write access |
| Revocation | Can be revoked in Settings |
| Regeneration | Creates a new token (old one stops working) |
Step 4: Set Up FBCLID Capture
The FBCLID is Meta’s click identifier. Capturing it improves match rates.
Call Tracking (Automatic)
If you use CallRail or CallTrackingMetrics, FBCLIDs are captured automatically from the referring URL. No additional setup needed.
Website Forms
Add FBCLID capture to your hidden form fields:
<input type="hidden" name="fbclid" id="fbclid_field" value="">
<script>
(function() {
var params = new URLSearchParams(window.location.search);
var fbclid = params.get('fbclid');
if (fbclid) {
document.getElementById('fbclid_field').value = fbclid;
// Create fbc cookie for later use
var fbc = 'fb.1.' + Date.now() + '.' + fbclid;
document.cookie = '_fbc=' + fbc + ';max-age=604800;path=/;SameSite=Lax';
}
})();
</script>
Step 5: Configure PII Collection
Meta’s Conversions API relies heavily on user data matching. Ensure you collect:
| Data Point | Priority | Source |
|---|---|---|
| Email address | ★★★★★ | Forms, CRM, call tracking |
| Phone number | ★★★★ | Forms, call tracking, CRM |
| First name | ★★★ | Forms, CRM |
| Last name | ★★★ | Forms, CRM |
| City/State/Zip | ★★ | CRM, form address fields |
Send every field you stored. Meta does not publish a match rate for email, phone, or name. If you hash Jane@Example.com before you lowercase and trim it, it will not match jane@example.com.
Step 6: Test with Events Manager
Before setting up automated uploads, send a test event:
Test Events Tool
- In Events Manager, select your pixel
- Click the Test Events tab
- Scroll to Test server events
- Copy the test code and modify with your data
- Send from cURL, Postman, or your application
- Verify the event appears in the Test Events tab
Test Event Example
curl -X POST \
"https://graph.facebook.com/v26.0/YOUR_PIXEL_ID/events" \
-H "Content-Type: application/json" \
-d '{
"data": [{
"event_name": "Lead",
"event_time": '"$(date +%s)"',
"event_id": "test-setup-001",
"action_source": "system_generated",
"user_data": {
"em": ["YOUR_SHA256_HASHED_EMAIL"]
}
}],
"access_token": "YOUR_TOKEN",
"test_event_code": "TEST_CODE_FROM_EVENTS_MANAGER"
}'
The test_event_code ensures the event appears in Test Events without affecting your live data.
Step 7: Set Up TUOCA Relay
With the prerequisites in place, configure TUOCA:
- Connect Meta — TUOCA authenticates via OAuth with your Business Manager
- Select your Pixel — Choose from the list of available pixels
- Configure the relay — Select data source, map fields, set schedule
- Map event names — Map your conversion types to Meta event names (e.g., “Booked Job” → “Purchase”)
- Activate — TUOCA begins automated uploads
TUOCA handles all the technical complexity:
- PII normalization and SHA-256 hashing
- FBCLID → fbc format conversion
- Event batching and rate limiting
- Deduplication via event_id
- Error handling and logging
Verifying Your Setup
After your first automated upload:
- Events Manager → Overview — Check event count
- Event Match Quality — Should be 6+ (out of 10)
- Events Manager → Diagnostics — Check for warnings
- Activity Logs (TUOCA) — Review upload success rate
Next Steps
- ✅ Send test events and verify in Events Manager
- ✅ Activate your TUOCA relay for automated uploads
- ✅ Monitor Event Match Quality for 1 week
- ✅ Upload your first real offline conversions
- ✅ Read the complete Meta guide