Meta (Facebook/Instagram) Integration
Server-side conversion forwarding to Meta via the Conversions API (CAPI) (opens in a new tab). Convultra sends events directly to Meta's servers, bypassing browser-based tracking limitations. This is critical for recovering conversions lost to iOS 14.5+ App Tracking Transparency (ATT) restrictions, ad blockers, and cookie expiration.
Requirements
| Requirement | Details |
|---|---|
| Meta Business account | With access to at least one ad account. |
| Meta ad account | The ad account you want to send conversions to. |
| CAPI access | Granted automatically through the OAuth flow. |
| Convultra SDK | Installed and tracking events on your site. |
| Pixel ID (recommended) | Required if you want automatic deduplication between browser Pixel events and server-side CAPI events. |
You do not need a System User Token or manual CAPI configuration. Convultra handles authentication through OAuth and manages token refresh automatically.
Setup
Navigate to Integrations
Go to Dashboard → Integrations and click Connect on the Meta card.
Complete OAuth Flow
A Meta login window opens. Sign in with the account that has access to your Meta Business and ad accounts. Convultra requests the following permissions:
ads_management— manage conversions for your ad accountsbusiness_management— access your business assets
OAuth tokens are stored encrypted and refresh automatically.
Make sure you sign in with a Meta account that has admin or advertiser access to the ad account you want to connect.
Select Meta Ad Account
After authentication, Convultra lists all ad accounts accessible to the authenticated user. Select the ad account you want to receive conversions.
You can connect multiple ad accounts — each is configured independently.
Configure Pixel ID (Optional, Recommended)
Enter your Meta Pixel ID to enable automatic deduplication between browser-side Pixel events and server-side CAPI events.
When both the Meta Pixel and Convultra are firing for the same conversion, Meta needs a way to avoid double-counting. Convultra sends an event_id with each CAPI event that matches the corresponding Pixel event, allowing Meta to deduplicate automatically.
Pixel ID: 123456789012345Without a Pixel ID configured, Meta cannot deduplicate browser and server events. If you are running both the Meta Pixel and Convultra, configure the Pixel ID to prevent inflated conversion counts.
Enable Enhanced Conversions (Optional)
Toggle on Enhanced Conversions to send hashed customer data alongside conversions. This improves Meta's Event Match Quality (EMQ) score and conversion attribution accuracy.
When enabled, Convultra sends SHA-256 hashed PII from your SDK calls:
Set user data for the session before tracking:
Convultra.enhance({
email: '[email protected]',
phone: '+1234567890',
first_name: 'Jane',
last_name: 'Doe',
city: 'Austin',
state: 'TX',
zip: '78701',
country: 'US'
});
Convultra.trackPurchase({
value: 49.99,
currency: 'USD',
transaction_id: 'TXN-67890'
});All PII is hashed with SHA-256 before leaving the browser.
Test with Test Center
Click Send Test Conversion to verify the integration. Convultra sends a test event to Meta's CAPI endpoint and reports the result.
A green confirmation shows the event name, Meta's fbtrace_id, and delivery timestamp. Your integration is ready.
Done
Conversions are now forwarded automatically via CAPI. No further action required.
Click ID
Convultra automatically captures Meta's click identifier from your landing page URLs:
| Click ID | Parameter | Description |
|---|---|---|
| fbclid | ?fbclid=... | Facebook click identifier. Appended to URLs when users click on Facebook or Instagram ads. |
The SDK captures fbclid from the URL on page load and includes it in every conversion forwarded to Meta for accurate click-to-conversion attribution.
You do not need to parse or store the fbclid yourself. Convultra handles capture, storage, and forwarding automatically.
iOS 14.5+ Conversion Recovery
Apple's App Tracking Transparency (ATT) framework allows users to opt out of cross-app tracking. When a user opts out, the Meta Pixel running in the browser cannot attribute conversions back to ad clicks.
Convultra's server-side CAPI integration bypasses this limitation:
- The conversion event is sent from Convultra's server to Meta's server — not from the user's browser.
- Meta can match the conversion using hashed user data (email, phone) and the
fbclidcaptured at click time. - Conversions that would be invisible to the Pixel are recovered and attributed correctly.
This is one of the primary reasons to use server-side conversion tracking with Meta.
Deduplication
When both the Meta Pixel and Convultra are sending events for the same conversion, deduplication prevents double-counting.
How it works:
- Convultra generates a unique
event_idfor each conversion. - The same
event_idis included in both the browser Pixel event and the server-side CAPI event. - Meta uses the
event_id+event_namecombination to deduplicate.
{
"event_name": "Purchase",
"event_time": 1705340400,
"event_id": "evt_abc123def456",
"event_source_url": "https://example.com/thank-you",
"action_source": "website",
"user_data": {
"em": ["a1b2c3d4e5f6..."],
"ph": ["7a8b9c0d1e2f..."],
"fbc": "fb.1.1705340000.AbCdEfGh",
"fbp": "fb.1.1705339000.1234567890"
},
"custom_data": {
"value": 49.99,
"currency": "USD",
"order_id": "TXN-67890"
}
}Deduplication requires the Pixel ID to be configured in Convultra (step 4 of setup). Without it, Meta has no way to match browser and server events.
Server-Side Event Matching
Meta uses several data points to match CAPI events to ad clicks. Convultra sends all available matching parameters automatically:
| Parameter | Source | Description |
|---|---|---|
fbclid (via fbc) | URL parameter | Facebook click ID captured at landing |
fbp | Browser cookie | Facebook browser ID from _fbp cookie |
em | userData.email | SHA-256 hashed email address |
ph | userData.phone | SHA-256 hashed phone number |
fn / ln | userData.first_name / last_name | SHA-256 hashed name |
ct / st / zp | userData.city / state / zip | SHA-256 hashed location |
country | userData.country | SHA-256 hashed country code |
client_ip_address | Automatic | User's IP address |
client_user_agent | Automatic | User's browser user agent |
The more parameters you provide, the higher Meta's Event Match Quality (EMQ) score, and the better your conversion attribution.
Forward Logs
Navigate to the Forward Logs tab within the Meta integration to inspect every forwarded event:
| Field | Description |
|---|---|
| Timestamp | When the event was forwarded |
| Event name | The Meta standard event name (e.g., Purchase, Lead) |
| Event data | Value, currency, transaction ID |
| Click ID | The fbclid used for attribution |
| Event ID | The deduplication event_id |
| Delivery status | delivered, pending, failed, or retrying |
fbtrace_id | Meta's trace ID for debugging in Events Manager |
| Error details | Meta API error code and message (if any) |
Troubleshooting
| Problem | Solution |
|---|---|
| Low Event Match Quality (EMQ) | Enable Enhanced Conversions and send more user data fields (email, phone, name, address). |
| Duplicate conversions in Meta | Configure the Pixel ID in Convultra to enable deduplication. |
| Conversions not appearing in Events Manager | Meta can take up to a few hours to process CAPI events. Check Forward Logs for delivery confirmation. |
| Permission denied errors | Verify the connected Meta account has advertiser access to the selected ad account. |
| OAuth token errors | Disconnect and reconnect the integration from Dashboard → Integrations. |
| iOS conversions still missing | Ensure fbclid is being captured (check that your landing page URLs include the parameter) and that Enhanced Conversions is enabled. |