Server-side
Meta Conversions API
Send server-confirmed conversions to Meta so campaigns optimise on real purchases — only for visitors who consented, with identifiers hashed server-side before they ever leave Servoki.
How it fits: you send a normal server event. If the site has a Meta connector configured and the event is consent: true, Servoki forwards it to Meta's Conversions API — hashing identifiers and deduplicating against the browser pixel. No separate API to call.
1. Configure the connector
In the dashboard, open your site → Conversions and add a Meta connector with your Pixel ID and access token. (Requires a workspace plan that includes the convert module.)
2. Send the conversion with consent + identifiers
On the server event, set consent: true and include a user_data object with whatever identifiers you have. Servoki hashes email and phone with SHA-256 before forwarding — raw values are never stored:
curl -X POST https://servoki.com/api/events/server \
-H "authorization: Bearer $SERVOKI_API_KEY" \
-H "content-type: application/json" \
-d '{
"site": "{{site}}",
"event_type": "purchase",
"value": 49.90,
"currency": "EUR",
"event_id": "order_8841",
"consent": true,
"user_data": {
"email": "buyer@example.com",
"phone": "+15551234567",
"fbp": "fb.1.1690000000000.1234567890",
"fbc": "fb.1.1690000000000.AbCdEf",
"client_ip_address": "203.0.113.10",
"client_user_agent": "Mozilla/5.0 ..."
}
}'user_data fields
email,phone— hashed (SHA-256) server-side before forwarding.external_id— your own stable user id (also hashed).fbp,fbc— Meta's browser/click cookies, read from the visitor's browser, for match quality.client_ip_address,client_user_agent— improve attribution; forwarded, not stored.
3. Deduplicate against the pixel
If you also run the Meta Pixel in the browser, send the same event_id from both the pixel and the server event. Meta collapses them into one conversion — you get the reliability of server-side without double-counting.
Consent is enforced, not optional. Events without consent: true are recorded for your own analytics but never forwarded to Meta. That separation is the whole point — measure everything, forward only what you're allowed to.