Blog
It is not normalisation, click IDs, or hashing. It is something simpler that almost every team gets wrong at first.
When match rates are low across Meta, TikTok, or LinkedIn CAPI integrations, the obvious suspects are normalisation, missing click IDs, or wrong hash format. The actual most common cause is simpler: the events being sent server-side use different timestamps from the events sent client-side, breaking dedup and confusing attribution.
Meta and TikTok use the timestamp to assign attribution to a specific click in the user's history. If the server-side timestamp is meaningfully different from the click timestamp (more than a few minutes), the destination cannot reliably tie the conversion to the original click.
When the same event is sent both client-side and server-side, the timestamps need to match (or be very close). If they differ by hours, dedup fails because the destinations treat them as separate events.
In your tagging server, generate the canonical timestamp at the moment the event is received, and pass it back to the browser for the client-side Pixel to use as well. The browser then sends the same timestamp on its CAPI-equivalent call.
If you cannot synchronise back to the browser, at minimum send the server timestamp on the server-side event and let the browser timestamp on the client-side. Meta's matching is forgiving enough that a few seconds of drift do not break it; hours do.
// In your Meta CAPI tag, override event_time
return Math.floor(Date.now() / 1000);
Use the server's current time, in seconds since epoch (Meta expects seconds, not milliseconds). The Meta tag template has an event_time field where you can wire in this variable.
In Meta Events Manager, the Diagnostics tab shows match quality scores broken down by event source. After deploying the timestamp fix, watch the score over the next two days. A 5-15 point lift on previously-poor events is the expected pattern.
If the lift does not materialise, check the other usual suspects: email normalisation, click IDs, advanced matching parameters.