What you need to know about the Facebook conversions API
With tracking prevention systems becoming more and more commonplace, the Facebook pixel doesn’t work quite as well as it used to. However, when used in conjunction with the Facebook conversions API, you can still properly track and attribute your Facebook performance.
It is also important to bear in mind that certain browser tracking prevention systems are in place to protect the user’s privacy.
We understand that it is important to collect data against your users to assist with remarketing efforts. But if a user opts out of tracking for one reason or another, you should always strive to respect that decision and ensure that the data you send to Facebook also respects that.
Most importantly, making sure that the way in which you are collecting, processing or sharing data does follow GDPR and other laws.
What is the Facebook conversions API?
All tracking prevention technologies work on the user’s device operating system or installed applications (we’ll call this “frontend”), so the Facebook conversions API operates from the website’s server or a server controlled by the business (which we’ll call “backend”).
Tracking prevention technologies should not block communication between a user and the domain they are trying to access – as they wouldn’t be able to access the website in question, which would render the internet relatively useless!
There are of course, exceptions to this rule like reverse proxies or CNAME cloaking, but for the most part, this is the case.
The idea is for the frontend (or the user’s browser) to continue using the Facebook JavaScript API, sending hits to Facebook when a user completes configured actions on a page.
Whilst this is happening, the backend is also sending the same hits to Facebook; unblocked server to server.
Why not just send events via backend?
You could send events via backend, but the backend hits don’t contain the same rich and vital information that Facebook wants to attain when comparing to the frontend, such as browser data and user data points for audiences.
Plus, without the frontend running, certain data points like the Facebook client ID cookie don’t exist.
This is why Facebook recommends you run both Facebook pixel and conversions API alongside each other.
Won’t that lead to duplication?
Yes, it will.
That’s why it’s best practice to set as many deduplicating fields as possible.
Both front and backend need to contain identifiers that are unique to each user’s individual interaction that is recorded, and both the front and backend events need to own the exact same identifiers for the same interaction that’s being recorded.
There are many different identifiers you can use, like person’s name or email address, but for the vast majority of cases you likely won’t have this information.
So, the following set can be highly effective identifiers:
Importantly, you need to ensure that the browser event is sent first and then the server-side event sent after.
So, what do I need to do…?
This really boils down to four core parts:
1. Send events on the frontend using the JavaScript API
- This is typically what you will tend to already have in place using the standard Facebook JavaScript advertising tracker
2. Send the exact same events on the backend when they occur
- You will need to work with developers to understand the best way to tell the backend when a user completes an action. This must be decided before anything else as it shapes the rest of the project
3. Notify the backend
- Create a solution to inform the backend when an interaction takes place and the unique identifier for that interaction – as the frontend must send the interaction to Facebook’s servers first.
4. Respect consent
- If there isn’t a consent system in place, you should get a consent system in place
- If a user does not consent to cookies, you should not be transmitting unique identifiers to Facebook. It is possible to still inform Facebook that an interaction happened, but it can’t include the unique identifiers mentioned above.
There are systems already built to support this, for example Shopify has a native integration that you can just enable.
However, a custom site built on a custom backend will have no plugins or system that can support this out the box.
If you need any help setting up your Facebook conversions API, then don’t hesitate to get in contact and we can chat about it.
Latest Insights From The Team.
Explore our team’s latest thoughts and actionable advice from our blog to support your digital marketing strategies.