Facebook Ads Conversion Tracking: Pixel, CAPI, iOS 14, and UTMs Explained

Facebook and Instagram ads drive traffic — but knowing which ads drive conversions requires conversion tracking that closes the loop between the ad platform and the leads or sales that happen on your site. Without it, you’re flying blind: spending on campaigns with no reliable signal of which audiences, creatives, and placements are producing actual revenue.

Facebook ads conversion tracking has two distinct layers that work together: the Meta Pixel (a JavaScript snippet that fires events on your site) and the Conversions API (a server-side signal that sends conversion data directly from your server to Meta). Both feed the same feedback loop that lets Meta’s algorithm optimize ad delivery toward people likely to convert.

The Meta Pixel

The Meta Pixel is a JavaScript snippet that installs on every page of your website. When a visitor takes an action — views a page, submits a form, makes a purchase — the Pixel fires an event that gets sent to Meta’s servers along with contextual data (page URL, event type, any parameters you pass).

Standard Pixel events include:

  • PageView — fires automatically on every page load
  • Lead — fires when someone completes a lead form
  • Contact — fires on contact form submissions
  • Purchase — fires after a completed transaction, typically with value and currency parameters
  • CompleteRegistration — fires after account or event registration
  • ViewContent — fires on key product or service pages
  • AddToCart — fires when a cart item is added
  • InitiateCheckout — fires at the start of a checkout flow

The Pixel installs in the <head> section of your pages. On WordPress, the easiest installation path is through Google Tag Manager (GTM) — a single GTM container snippet handles all tracking tags, and individual tags (including the Pixel base code and event tags) are managed in GTM without touching your site code for every change.

The Conversions API

The Meta Conversions API (CAPI) sends conversion signals from your server directly to Meta, bypassing browser-level limitations. Browser privacy restrictions, ad blockers, and iOS 14+ privacy changes all reduce the accuracy of Pixel-only tracking. CAPI signals originate server-side, so they’re not affected by browser settings.

CAPI and the Pixel work best together. The recommended setup is “Pixel + CAPI” with deduplication — both signals fire for each conversion event, and Meta deduplicates them server-side using an event_id parameter you send with both signals. The result is more complete conversion data than either method alone.

CAPI setup requires server-side development work. Options:

  • Meta’s partner integrations: Shopify, WooCommerce, and several other platforms have native CAPI integrations that handle server-side event sending without custom code.
  • WordPress plugins: several plugins integrate CAPI for WordPress lead generation setups, including integrations with Contact Form 7, Gravity Forms, and WooCommerce.
  • Custom server-side implementation: if your form or e-commerce backend is custom, you implement a webhook or event trigger that calls the Meta Conversions API on conversion events.
  • GTM Server-Side: Google Tag Manager’s server container runs on a server you control and can forward events to Meta CAPI, adding a privacy-compliant middleware layer.

Setting Up Facebook Ads Conversion Tracking

The setup flow for Pixel-based conversion tracking:

  • Create your Pixel in Meta Business Manager: go to Events Manager, select Connect Data Sources, choose Web, and create a new Pixel. Each ad account and domain combination typically has one Pixel.
  • Install the Pixel base code: add the Pixel base code to the <head> section of every page on your site. In GTM, create a Custom HTML tag with the Pixel base code and trigger it on All Pages.
  • Set up conversion events: determine which actions on your site represent meaningful conversions. For a lead generation site, this is typically a form submission confirmation page (thank-you page) or a form submission event. Create GTM tags that fire the appropriate Pixel event (Lead, Contact) when these actions occur.
  • Verify events in Meta Events Manager: use the Test Events tool in Meta Events Manager and the Meta Pixel Helper browser extension to confirm events are firing correctly and the data being sent is accurate.
  • Create Custom Conversions or use Standard Events in Ads Manager: once events are verified, they become available as optimization goals in your ad campaigns. Select the conversion event when setting up ad sets that should optimize for conversions.

iOS 14+ and Aggregated Event Measurement

Apple’s App Tracking Transparency (ATT) framework, rolled out with iOS 14.5, requires apps including the Facebook app to request permission before tracking users across other apps and websites. A large proportion of iOS users opt out, which reduces the Pixel events Meta can attribute to your campaigns for those users.

Meta’s Aggregated Event Measurement (AEM) is their framework for managing conversion data under privacy restrictions. Key implications:

  • Domain verification required: you must verify your domain in Meta Business Manager before you can configure AEM. Domain verification involves adding a DNS record or HTML tag to confirm you own the domain.
  • Eight conversion events per domain: under AEM, Meta limits each domain to eight prioritized conversion events for use with iOS 14+ users. You configure which events are prioritized in Events Manager.
  • Modeling: Meta uses statistical modeling to estimate conversions that can’t be directly attributed due to privacy restrictions. Reported conversion numbers in Ads Manager include both directly measured and modeled conversions.

UTM Parameters for Facebook Ads

UTM parameters are query string tags appended to your ad destination URLs that pass campaign, source, and medium data into analytics tools when a visitor lands on your site. For Facebook ads, a standard UTM structure looks like:

https://yourdomain.com/landing-page?utm_source=facebook&utm_medium=cpc&utm_campaign=campaign-name&utm_content=ad-creative-name

UTM parameters serve a different purpose than Pixel events. Pixel events tell Meta which users converted so Meta can optimize ad delivery. UTMs tell your analytics tool (Google Analytics, your CRM, or a marketing attribution platform) which traffic source and campaign drove the visit. The combination of both gives you Meta-side optimization data and analytics-side attribution data.

For lead generation specifically, UTMs passed into a CRM on form submission let you track lead source all the way through the funnel — which Facebook campaign drove this lead, whether it became a customer, and what revenue it produced. This lead-level attribution is typically not available from Pixel data alone, which reports aggregate events rather than individual lead records.

Troubleshooting Facebook Conversion Tracking

  • Events not firing: use the Meta Pixel Helper Chrome extension to verify the Pixel is installed on your pages and events are triggering. Check GTM Preview mode to confirm your event tags are firing on the correct triggers.
  • Duplicate events: if you see 2x the expected conversion count, you may be firing the same event tag twice. Check for duplicate tags in GTM and verify deduplication is set up correctly if running both Pixel and CAPI.
  • Conversions not matching your CRM: Pixel conversions and CRM leads rarely match exactly. The Pixel attributes based on click/view windows; your CRM captures everyone who submitted the form. Some users complete forms without clicking ads (direct, organic, email). Expect discrepancies and report both figures separately.
  • Low match quality: in Events Manager, Meta shows an “Event Match Quality” score for each event. Low scores mean the customer information signals (email, phone, name) you’re sending with conversion events aren’t matching well to Meta user profiles. Adding more customer data parameters (hashed email, phone) to your conversion events improves match quality.