Meta Pixel & Conversions API Tracking

8 min read

What This Integration Does

WittyForm can report your form activity to Meta (Facebook & Instagram) Ads two ways at once:

  • Browser Pixel — the classic Meta Pixel loads on your published form and fires events as people view, start, and submit it.
  • Conversions API (CAPI) — WittyForm's server sends the same submission event directly to Meta. Server events are immune to ad blockers, Safari/iOS tracking prevention, and the third-party cookie limits that break tracking inside embedded forms.

Both channels share the same event ID (the saved response ID), so Meta automatically deduplicates them — you never double-count a lead. Submissions fire a real Lead standard event (or Purchase with value and currency for payment forms), which Meta can optimize ad delivery against directly. This feature is available on the Enterprise plan.

Step 1: Add Your Pixel ID

  1. In Meta Events Manager → Data Sources, select (or create) your pixel and copy its ID — a 10 to 20 digit number.
  2. Open your form in the WittyForm editor, go to Settings → Tracking, and paste the ID into the Meta Pixel field.
  3. Choose which events to fire: page view, form started, successful submission (the Lead event), and — for double opt-in forms — pending verification. You can also switch to a custom event name if you prefer custom conversions.

Save, and the browser Pixel is live on your published form, including custom-domain forms.

Step 2: Connect the Conversions API

  1. In Meta Events Manager, open your pixel and go to Settings → Conversions API → Generate access token.
  2. Copy the token and paste it into Settings → Tracking → Conversions API access token in WittyForm, then save.
  3. WittyForm verifies the token with Meta the moment you save and tells you immediately if Meta rejected it or if it cannot access your pixel.

Important — use a System User token. The token generated from Events Manager's Conversions API section is a System User token, which never expires. Personal tokens (for example from Graph API Explorer) expire after about 60 days and your tracking would stop. Tokens are stored encrypted, are never exposed to browsers, and can be cleared at any time.

You can apply one configuration to a single form, a brand, a whole workspace, or your entire account — public forms resolve the most specific one: form → brand → workspace → owner.

Step 3: Test, Then Go Live

  1. In Meta Events Manager, open the Test Events tab and copy the test code (looks like TEST12345).
  2. Paste it into WittyForm's Test event code field, save, and click Send test event — it should appear in the Test Events tab within a minute. Submitting the form yourself works too.
  3. Remove the test code once you are done. Meta's guidance is that test codes are for setup verification only. WittyForm shows a "Test mode is active" warning with a one-click remove button until you do.

What Gets Sent to Meta

Server events include hashed (SHA-256) match data so Meta can attribute conversions to the right ad — email, phone, and name answers are hashed before they leave WittyForm; raw answers are never sent. Events also carry the respondent's IP and browser, Meta's _fbp/_fbc cookies, the Facebook click ID (fbclid) captured from your ad's landing URL, a hashed external ID, and country. This is what keeps your Event Match Quality score healthy — and it keeps working inside embeds where browser-only tracking fails.

Reliability: Event Log, Retries, and Alerts

  • The Recent server events log in Settings → Tracking shows the last 10 CAPI sends with status and any Meta error message, plus a manual retry button.
  • Failed events are retried automatically with increasing delays for up to 48 hours (Meta's deduplication window), so a brief outage doesn't lose conversions.
  • If events start failing — most commonly an expired token — WittyForm sends you an in-app notification and an email (at most one per day) explaining exactly how to fix it.

GDPR and Consent

Enable Require analytics consent in the tracking settings if you need consent-gated tracking. The browser Pixel then waits for the respondent to accept analytics cookies, and the server-side Conversions API honors the same choice — if the respondent declined, WittyForm sends nothing to Meta for that submission. Hashed data is still personal data under GDPR, so both channels respect one consent decision.

Troubleshooting

  • "Session has expired" in the event log — your access token was a personal token and expired. Generate a new one in Events Manager (Settings → Conversions API) and save it; queued failures from the last 48 hours retry automatically.
  • Events missing in Events Manager — live events can take up to 30 minutes to appear outside the Test Events tab; also check ad blockers when testing the browser Pixel.
  • Embedded form doesn't fire browser events — browsers block third-party cookies inside iframes, which weakens pixel-only tracking. The Conversions API side is unaffected: your Lead events keep flowing server-side with hashed match data.
  • Duplicate conversions — should not happen: browser and server share one event ID per response, and Meta deduplicates within 48 hours. If you also fire your own pixel on a thank-you page, remove one of the two.
$37 · paid once

Ready to Connect Your Tools? Set Up Integrations Now

Start free and keep the five forms for good, or pay once and unlock all of it — unlimited forms, ten team members, AI, CRM, white label and the API. No renewal, ever.

14-day money-backInstant accessNo subscription, ever
Meta Pixel & Conversions API Tracking