Question from Reddit user:
Hi all,
I’m more experience with Google Ads, so excuse my ignorance on this. We’re running advertisements for multiple clients, each linking to separate landing pages set-up on a third-party application. In order to verify the domain name in Facebook we have connected these pages to our domain name and created sub domains for all of our clients.
I am trying to set up Conversion API (through Facebook’s third party integration and GTM) for these accounts but I am running into some issues. Right now, the setup looks as follows:
Dedicated subdomain name for each client (so: client1.domain.com, client2.domain.com, etc)
Separate Fb ad account for each client
Separate GA4 account for each client
Separate GTM web containers for each client
One GTM Server container with all conversion API tags installed.This set-up seems sub optimal, and I am running into the following issues:
Events and subdomains seem to mix with the different pixels/conversion api’s running
I want to give priority for leads for each client on our domain name, right now I am running 4 accounts but I need to create a separate priority for each pixel. Although the same event is used each time, this will result in having a limit of only 8 clients as Facebook only allows for 8 priorities, but we’re expecting to exceed to this limit quite soon.
I hope I’ve made myself clear as it’s quite hard to explain, and that there’s some documentation anyone can point me to. I’ve looked into setting up Conversion API through CAPI Gateway instead, but this seems to be limited to one CAPI per domain as well.
Answer from Nabil:
The short answer is:
Your current setup is suboptimal because you are trying to force multiple, separate client tracking systems through a single, shared GTM Server Container and domain, which inevitably leads to data bleed and event priority conflicts.
You are completely correct that Facebook’s eight-priority limit on events per single domain (related to Aggregated Event Measurement, or AEM) will cap your growth.
The excellent solution is to move each client’s Conversion API (CAPI) and all associated tracking to a dedicated server-side endpoint on your own subdomain, hosted on a service like Stape or Google Cloud Platform.
You must then use GTM’s server container to create an immediate, server-to-server forwarding rule for each client that is strictly filtered by their respective subdomain, ensuring no data ever mixes and each client’s CAPI runs completely independently.
The long answer is:
Your challenge is a common one faced by agencies managing multiple client accounts under a single primary domain, and your diagnosis is spot-on regarding the Facebook Aggregated Event Measurement (AEM) limit.
AEM is a domain-level restriction, meaning all Facebook Pixels and CAPI endpoints associated with that domain (including subdomains like client1.domain.com
) must share the maximum of eight prioritized events for optimization.
Since you need more than eight clients, you must architect your tracking to bypass this limitation and the data mixing issues.
The combined solution of the Facebook Conversions API and a server-side tagging environment like Stape or Google Cloud Platform provides the necessary technical separation.
Here is the architecture: First, you maintain the separation on the client side: client1.domain.com
continues to use its unique GTM Web Container and Facebook Pixel.
Second, you set up a dedicated server-side URL for each client, such as stape-client1.domain.com
, which points to a separate, private server container hosted on Stape or GCP.
This is the key change.
Third, within each client’s GTM Web Container, you configure the GA4 tag to send its data to that client’s dedicated server-side URL, not a shared one.
Fourth, in the dedicated server container for each client, you install only their specific Facebook Conversions API tag.
You apply a stringent filter on the incoming data, typically checking the page_location
or a custom data layer variable to ensure that only events originating from client1.domain.com
are processed and sent to that client’s CAPI.
By giving each client their own server-side endpoint, you effectively create a separate, logical tracking domain for each.
This separation prevents event and subdomain data from mixing, gives you the ability to configure unique event priority settings for each client independent of Facebook’s eight-event limit (as the event processing logic is happening server-side), and ensures that no client’s data is ever inadvertently sent to another client’s Facebook Pixel or CAPI.
This is the most scalable, professional, and compliant way to manage multiple CAPI integrations on a single primary domain.