Low IP Address Coverage in Meta CAPI

Hey everyone,

For the event CompleteRegistration I am using server-side tracking only (no client-side events) with the official Stape Meta Conversion API template. Everything is working fine overall, but I’ve noticed that in Meta Events Manager, the IP address coverage is only around 63%, while other fields like email, user agent, and fbp all show 100%.

That percentage seems a bit low to me.

From what I can see in the template code, the IP address is taken from

const eventData = getAllEventData();

if (eventData.ip_override) {
mappedData.user_data.client_ip_address = eventData.ip_override
  .split(' ')
  .join('')
  .split(',')[0];
}

which — according to my research — already includes robust fallback mechanisms for detecting and forwarding the client IP.

Here’s the setup:

  • All events are sent server-side (no browser or client event duplicates).
  • IP addresses appear correctly in the outgoing payloads I can inspect in GTM server logs.
  • However, Meta still reports that only about 63% of events include the client IP.

Has anyone else seen this behavior?
Is this normal or expected for server-side setups — or is there something I might be missing in the Stape template configuration (like forwarding headers, proxy settings, or eventData handling)?

Thanks in advance for any insights!

Hi @extravagant indeed, IP address will always be passed by the template and it is nothing you should be explicitly handled. I think this is either a UI quirk Meta side, or something very unordinary going on in your containers.

My advise is turn on Logs in the template and then analyse those in a .csv - you would be able to check whether there are indeed outgoing requests w/o IP address in the payload.