Developer Docs
Integrations
Meta (Facebook)

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

RequirementDetails
Meta Business accountWith access to at least one ad account.
Meta ad accountThe ad account you want to send conversions to.
CAPI accessGranted automatically through the OAuth flow.
Convultra SDKInstalled 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 accounts
  • business_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: 123456789012345
⚠️

Without 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 IDParameterDescription
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:

  1. The conversion event is sent from Convultra's server to Meta's server — not from the user's browser.
  2. Meta can match the conversion using hashed user data (email, phone) and the fbclid captured at click time.
  3. 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:

  1. Convultra generates a unique event_id for each conversion.
  2. The same event_id is included in both the browser Pixel event and the server-side CAPI event.
  3. Meta uses the event_id + event_name combination 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:

ParameterSourceDescription
fbclid (via fbc)URL parameterFacebook click ID captured at landing
fbpBrowser cookieFacebook browser ID from _fbp cookie
emuserData.emailSHA-256 hashed email address
phuserData.phoneSHA-256 hashed phone number
fn / lnuserData.first_name / last_nameSHA-256 hashed name
ct / st / zpuserData.city / state / zipSHA-256 hashed location
countryuserData.countrySHA-256 hashed country code
client_ip_addressAutomaticUser's IP address
client_user_agentAutomaticUser'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:

FieldDescription
TimestampWhen the event was forwarded
Event nameThe Meta standard event name (e.g., Purchase, Lead)
Event dataValue, currency, transaction ID
Click IDThe fbclid used for attribution
Event IDThe deduplication event_id
Delivery statusdelivered, pending, failed, or retrying
fbtrace_idMeta's trace ID for debugging in Events Manager
Error detailsMeta API error code and message (if any)

Troubleshooting

ProblemSolution
Low Event Match Quality (EMQ)Enable Enhanced Conversions and send more user data fields (email, phone, name, address).
Duplicate conversions in MetaConfigure the Pixel ID in Convultra to enable deduplication.
Conversions not appearing in Events ManagerMeta can take up to a few hours to process CAPI events. Check Forward Logs for delivery confirmation.
Permission denied errorsVerify the connected Meta account has advertiser access to the selected ad account.
OAuth token errorsDisconnect and reconnect the integration from Dashboard → Integrations.
iOS conversions still missingEnsure fbclid is being captured (check that your landing page URLs include the parameter) and that Enhanced Conversions is enabled.