If you’re reading this article, you’ve likely encountered challenges with Facebook Pixel event tracking, particularly on iOS 14+ devices.
We’ve previously discussed event tracking on iOS 14+ devices in one of our articles. Today, we’ll focus on parallel event tracking using Facebook’s Conversions API.
What is facebook conversions API?
Facebook Conversions API allows you to send user event data directly from your website server, bypassing the browser and cookie restrictions.
Conversions API serves as a supplement to Facebook Pixel, helping to capture data that Pixel might miss due to iOS 14+ limitations.
You don’t need to remove Facebook Pixel — these two systems work in parallel. The ad manager automatically consolidates identical data to avoid double counting. Facebook refers to this process as "deduplication." That’s the basic idea. There’s plenty of information online, but we’ve gathered the key points for you - the essentials without the fluff. Let’s get into how to set it up and launch it.
Steps to set up facebook conversions API
➊ Connecting сonversions API in facebook events manager

In the event settings of pixel, select “Add new integration” 🠖 “Conversions API”:


Facebook offers three setup options:
👉 set up with partner integration;
👉 set up with Conversions API Gateway;
👉 set up manually.

The easiest way is to use partner integration. Developers have created ready-made solutions for the most popular platforms.

☝ A note on Conversions API through Google Tag Manager
We tested setting up Conversions API via Google Tag Manager. Be prepared to:
- provide access to Tag Manager;
- create a server container;
- publish the “Facebook Conversions API Tag”;
- have Google Analytics 4.
Example of Conversions API setup through Tag Manager:

Interestingly, Facebook actively interacts with Google Analytics tags during this process, despite the two being competitors.
* We highly recommend implementing Conversions API manually on your website’s server to have full control over data transmission. If you go through GTM, you’ll need to combine three elements: a server-side GTM container, GA4, and Facebook Pixel. Even the slightest glitch in one system can cause massive delays. Additionally, the server-side container is configured through Google Cloud Platform, which comes with extra costs.
Next, we’ll explore manual setup since most of our projects are custom, not based on pre-built CMS platforms.
Manual implementation of conversions API
Manual Conversions API setup involves two main stages:
- Configuring personal parameters in Events Manager.
- Sending data via API.
👉 choose the events to track;
👉 select custom parameters to send with each event.
This part is straightforward.

At this stage, the web interface hands over the instructions to Facebook, essentially saying, "Wait for your developer to implement this." However, in practice, nobody starts learning this independently — the developer will wait for a detailed technical specification. Most articles online stop at this point, but we’re going to dive deeper.

➋ Building and sending requests via Conversions API
It’s important to understand from the outset that requests will be sent from the website’s server, similar to how we’ve discussed Google’s Measurement Protocol.
To begin, you’ll need to generate a token, which will be used to send requests.

Then, you’ll construct the request using the Payload Helper tool.

There’s no one-size-fits-all solution here. You’ll need to customize it based on the data you require. Useful resources include:
- list of standard events;
- event parameters;
- custom user data parameters;
- explanations of event parameters.
Once your request is built, focus on sending and testing it. You can also construct the request in Graph API Explorer.

➌ Sending Conversions API requests
Request method:
👉 API requests must be sent via POST, although the tester allows all three methods — POST, GET, DELETE.
Request URL:
Insert your account data into the curly braces.
Example of a request structure
curl -X POST \
-F 'data=[
{
"event_name": "Purchase",
"event_time": 1636712168,
"user_data": {
"em": [
"309a0a5c3e211326ae75ca18196d301a9bdbd1a882a4d2569511033da23f0abd"
],
"ph": [
"254aa248acb47dd654ca3ea53f48c2c26d641d23d7e2e93a1ec56258df7674c4",
"6f4fcb9deaeadc8f9746ae76d97ce1239e98b404efe5da3ee0b7149740f89ad6"
],
"client_ip_address": "123.123.123.123",
"client_user_agent": "$CLIENT_USER_AGENT",
"fbc": "fb.1.1554763741205.AbCdEfGhIjKlMnOpQrStUvWxYz1234567890",
"fbp": "fb.1.1558571054389.1098115397"
},
"contents": [
{
"id": "product123",
"quantity": 1,
"delivery_category": "home_delivery"
}
],
"custom_data": {
"currency": "usd",
"value": 123.45
},
"event_source_url": "http://jaspers-market.com/product/123",
"action_source": "website"
}
]' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v12.0/<PIXEL_ID>/events
The key part of the request setup is data hashing (encoding). All user parameters must be hashed using the SHA256 function.
You can also use the Payload Data Helper.
➍ Testing the request
You can test your request in several ways:
- via the Graph API Explorer service;
- via Payload Helper;
- through the Events Manager testing tool;
- from your server, adding a special test event identifier called "test_event_code".
Choose the method that’s most convenient for you.
➎ Deduplication (event consolidation)
Once Conversions API is set up, you’ll start receiving events from two sources. Facebook’s system will deduplicate the duplicate events, while untracked events will be added. This process is called deduplication.
Deduplication works by comparing data between Facebook Pixel and Conversions API. Additionally, Facebook may ask you to modify the Pixel and Conversions API events by adding a comparison ID, as hashed data may not be sufficient.
And here’s an important quote from the documentation:
"If within 48 hours, events with the same server-side parameters (event_id and event_name) and browser parameters (eventID and event) are sent to the same pixel ID, browser events will be discarded. The exception is when server and browser events are received at roughly the same time (within five minutes), in which case the browser event takes precedence."
As a result of deduplication, you’ll get a message from the system confirming that the events are being matched:


By 2023, Conversions API became highly relevant, as more iOS users opted out of event tracking on their devices. In one of our recent cases, we saw an additional 40-60% conversions recovered through this method.

For more details, check out our video on Facebook Conversions API.
That’s essentially everything you need to know about launching Facebook Conversions API.
In general, this tool is quite similar to Google’s Measurement Protocol and shares many of the same operational algorithms.