Facebook Ads Order ID Tracking
I am trying to track facebook ad conversions on my e-commerce site. I created a
Purchase
event and sending 3 parameters:value,currency,
order_id
In Facebook Ads Manager I am seeing conversions come up, but the values are not equaling any orders that are placed, so Ive been trying to identify the
order_id
through Ads Manager, and through Graph API Explorer but have not been able to come up with any results that will show me whichorder_id
.I know I am passing the parameter to FB, but have no way to get that information back.
Any help would be appreciated!
The short answer is:
order_id
parameter in Facebook Ads Manager or the Graph API? Unfortunately, Facebook does not provide a direct way to view the order_id
or any custom parameters sent with your Purchase
events within the Ads Manager interface or via the standard Ads Insights API because of their privacy policies.
This is a common challenge for advertisers trying to reconcile offline order data with Facebook’s reporting.
The solution is to use the Facebook Conversions API (CAPI) in conjunction with a server-side solution, like Google Tag Manager (GTM) with Stape or Google Cloud Platform (GCP), to securely store and then later match the order_id
on your end.
You’d use the order_id
as an identifier in your own system, not to retrieve it from Facebook.
The long answer is:
The reason you can’t see the order_id
in Ads Manager or the Graph API Explorer is entirely intentional on Facebook’s part for user privacy.
While they accept and use the parameter for deduplication and internal matching, they do not expose custom parameters like order_id
back to the advertiser via their standard reporting tools.
The recommended and most robust solution for reconciling discrepancies and ensuring accurate tracking is implementing the Facebook Conversions API.
By sending your Purchase
events server-side through CAPI, you can pass the order_id
and other valuable customer data, which improves match quality.
The crucial part of the solution, however, is what you do before sending the data to Facebook.
You need a server-side environment to capture the order_id
immediately upon order completion and store it in a secure, temporary data source, such as a database or a simple lookup table, that you control.
An excellent and cheap solution involves using Google Tag Manager (GTM) for your client-side tracking, paired with a server-side tagging environment like Stape or Google Cloud Platform (GCP).
GTM allows you to reliably capture the order_id
from the data layer when the order is placed.
The server-side environment (Stape or GCP) then acts as a proxy: it receives the event from GTM, sends the deduplication event to the Facebook Pixel, and uses the order_id
to construct the server-side CAPI event.
Critically, before sending, this server can also send the order_id
to your own secure storage, tying Facebook’s click information to an actual order in your system.
To match the data, you would pull your own order data (which now includes your stored order_id
and a Facebook click identifier if you also captured it, like _fbc
or _fbp
) and compare it with the aggregate conversion data Facebook reports.
You are essentially using the order_id
as a common key in your own systems to check against the conversions reported by Facebook, rather than trying to ask Facebook to return your key to you.
This server-side CAPI implementation dramatically improves data accuracy, ensures resilience against browser-side tracking prevention, and gives you the necessary control over your data to conduct independent reconciliation without relying on Facebook to expose privacy-sensitive parameters.