Facebook deduplication in Zaraz

Hi, I am testing the Facebook pixel/Conversion API tool in Zaraz. I do have the same Facebook pixel currently running on the site via. GTM but I would like to migrate the pixel to Zaraz and run it server-side. I was wondering about deduplication. I know there is an event ID template in GTM which can serve as a variable for the Facebook parameter event_id. Is there any built in deduplication in Zaraz since the pixel and the CAPI are configured together? Do I need to add an event_id parameter? Is there anyway to generate the event_id parameter in Zaraz or do I need to include it in the dataLayer? In the testing panel in Facebook I can only see a few events with the “deduplicated” adnotation.


I am also looking for the deduplication by passing event_id. Did you find any solution for this?

I’m afraid not.

since the pixel and the CAPI are configured together

What do you mean by this? Even though the Zaraz Facebook tool asks for both the pixel id and CAPI token, tracking is only implemented server-side.

If you would like to have a client side AND server side implementation, then you would need to coordinate deduplication. Using external_id (you generate this yourself) would be a great way to do this.

This still seems to be an unsolved issue. Does anyone have a solution for rectifying the deduplication between Zaram and GTM/Pixel based events?
I’m already using the same external_id for both server & pixel events.

update that Facebook event_id usage will be added to Zaraz next week

1 Like

Thanks Yoav_Zaraz.
The event_id option is now available, however, I’m unclear how this helps.

In most situations, we need GTM and Zaraz to use the same event_id for deduplication to work.
So how do we get the event_id that Zaraz generates across to also be used by GTM?

You do the opposite - you call your pixel implementation and get the ID from it, and then you it when making calling zaraz.track, and assign it to the event_id key in Zaraz. This will make Zaraz use the same key as your pixel did.

Thanks for the response Yoav.
Is there any further documentation on this? I don’t quite understand yet.

Currently, our setup is that we have FB Pixel configured in GoogleTagManager for the client side.
And then Zaraz is just configured within Cloudflare. On the front end (on the website) we ourselves make no call to zaraz.track, the events are configured within the Cloudflare Zaraz UserInterface.

As far as I understood the Zaraz was server side and happened potentially before the client side, so I don’t understand how we get the information from the GTM pixel if it hasn’t happened yet.