Facebook Pixel allows you to track what users are doing on your site, collect remarketing audiences and create lookalikes. If the Facebook pixel is implemented correctly, it will feed relevant information to FB machine learning algorithms. FB ML will use pixel data to show your ads to people who are most likely to convert.
Let’s take a look at what Facebook Conversion API is and how we can use it to improve event tracking, attribution, and data collection on Facebook. Facebook Conversion API allows sending any events from your server to Facebook server.
Facebook CAPI has the same purpose as a Facebook pixel, but they have different technologies behind them. The policies and restrictions made FB CAPI more tailored to the needs of the modern tracking environment. As for Facebook Conversion API, it doesn’t involve the user’s browser for sending tracking information. Everything is done through the cloud server. It makes user data more secure and accurate.
If we take a closer look at the link of Facebook ads, we will see that at the end of almost any URL, FB appends its additional parameter fbclid. The pixel code on the landing page stores the value of this parameter in a cookie and then sends it along with any Facebook event. Along with click id (fbclid) Facebook uses browser ID (fbp). Fbp and fbc cookies helps FB determine what kind of user landed on your site and who converted.
FB can match users through other parameters such as email, phone number, first/last name, etc. The more user data you send to Facebook Conversion API, the higher the match rate you receive.
Facebook server-side tagging or Facebook conversion API was available on Facebook for a couple of years. But starting from 2021, FB started to push Conversion API harder. If you have a dedicated Facebook representative helping with your Ad account, he will most likely call you and recommend setting up a Facebook conversion API.
These are the most important reasons to consider implementing Facebook Conversion API:
We will use the server Google Tag Manager container to set up Facebook Conversion API. Inside the Google Tag Manager server and web containers, you will need to set up server-side tracking for Universal Analytics (or GA4, or Data Tag/Data Client) and configure events for those actions that you want to track with Facebook conversion API.
To sum up, you will need these things to configure Facebook conversion API:
In this article, I won’t cover how to create and set up a Google Tag Manager Web container. I will start with setting up the Google Tag Manager server container. In case you want to learn more about the Tag Manager server container and what benefits it offers, check this article. So, let’s get started
1. Follow all steps from these articles to set up the Google Tag Manager server container and send data to the server container. You have two options for sending data to the server container: using Google Analytics 4 server-side or Data Tag/Data Client.
If you already set up GA4 server-side or plan to start using GA4, it looks like the GA4 method is for you. But this implementation has its cons – the most significant one is that GA4 requests can be blocked by some adblocker. In contrast, the Data Tag and Data Client are resistant to these restrictions. We have a recent post that describes how to avoid Google Tag Manager request blocking by adblocker.
2. Go to Google Tag Manager Server Container. Add Facebook Conversion API tag from the Template Gallery.
3. Create Facebook Conversion API Tag inside Google Tag Manager Server Container. Choose Tag -> Click new -> Choose Facebook Tag that you’ve imported in the previous step. Add your Facebook pixel ID and Facebook API Access Token (I recommend adding it as a variable since you will need these values for each Facebook event you want to track). If you don’t know your Facebook API Access Token, this documentation will help you find it.
Configure trigger for Facebook Conversion API base tag: click new trigger -> custom trigger -> event name equals page_view.
4. You have 2 options for configuring our Facebook conversion API tag:
5. If you’ve selected the override option, you’ll have to use Universal Analytics (or GA4, or Data Tag/Data Client) events to trigger Facebook server events. Facebook pageview event should trigger on a custom event page_view that was claimed by specific client.(for example if you chose to use GA4 as a data source for the Server GTM, then then you should use page_view event when client name equals GA4).
To set up other events go to Google Tag Manager Server Container preview mode, make an action on your site that you want to track inside Facebook and check the event name that UA (or GA4, or Data Tag) sends to your Server Container.
On the screenshot below I want to set up a Facebook event ViewContent when someone opens the product page on my site. To do that I created a new tag inside the Server container, set it to override, selected standard event ViewContent, added API Access Token, Facebook Pixel ID. I also added User Data and Events Data. And made a new trigger event name equals view_item_list and Client Name equals GA4.
6. You can pass custom parameters using fields Server Event Data Override, User Data and Custom Data. You can send users data to increase the matching score on Facebook via field User Data, note that users’ information that you want to send to Facebook conversion API should be hashed. Our Facebook tag automatically hashes needed data.
7. When you are done setting up all your Facebook events, open Google Tag Manager debug mode and test if Facebook events work correctly. You can also go to your Facebook tag inside the server container and add Facebook test ID. You can find the test ID inside the Facebook events manager under the test events tab. For more instructions on how to test Facebook conversion API, check this article.
8. Once you’ve set up and verified that Facebook conversion API works correctly, you need to remove FB browser tracking or set up event deduplication. Otherwise, your events will be duplicated.
Facebook recommends using bother Facebook pixel and Conversion API. But if your site will send the same events using both the pixel and Conversions API, events may be duplicated since FB will receive the same information from the browser and the server.
Facebook has a deduplication feature. If they know that the browser and the server events are identical, they can keep only one.
Setting up event deduplication is a must if you want to send all events from both the server and the browser. Without event deduplication, your data won’t be accurate, and it may affect your Facebook campaigns.
To set up FB Conversion API deduplication, you need to send unique event IDs from the browser and the server. The same events from both the browser and the server should have the same event ID.
We created a custom variable that generates a unique ID for each event. You can add it to your web container using this link to the template gallery. Use this variable to send event ID for Facebook pixel inside the web container and Facebook conversion API using server container. We have a more detailed description of how to set Facebook event deduplication.
You can pass unique event ID from the web container to the server container using Google Analytics custom dimension or Data Tag and Data Client.
If deduplication is set up correctly, you should see it inside the events manager testing tool. And after you publish all changes to the production, you can click on the event details to see the number of events Facebook received from the browser and the server. How many events they processed and deduplicated.
To match users who visit your site with their database, Facebook uses User Data for Conversion API. They require to send at least one of the user parameters inside the Facebook conversion API events.
FB requires to hash some parameters before sending it to Facebook. The more user parameters you send to Facebook, the higher chances they will match a user and the higher event match score you’ll get.
If you decide to send user parameters to Facebook CAPI, then where will you get it? You can use either Google Analytics or a Data Tag for the Google Tag Manager web container and Data Client for the server container to address this issue. These two should work together; Data Tag is created to send data from the web container to the server container, while Data Client listens to this tag and retrieves information. We have a more detailed description of sending data from the Google Tag Manager web to the server container.
Data Tag will automatically hash user data that should be hashed according to Facebook requirements. If you use our Facebook Conversion API tag, Data Tag and Data Client, the Facebook tag will automatically process all needed events and parameters from the Data Tag. No need to send it manually. Just make sure you set up all triggers and variables correctly. With the Data Tag and Data Client’s help, you can send DataLayer from the Google Tag Manager web container to the event data inside the server container.
That’s it. I hope you’ve successfully moved Facebook tracking to the server. Facebook Conversions API is a great tool to get a better understanding of who your customer is, see the full customer journey up until the conversion takes place, and feed more data about your users to Facebook machine learning algorithms.