Conversions API — Server-Side Conversions

Forward every attributed conversion server-to-server to Meta, TikTok, and Google — directly from the Affclix tracker, with no browser tag on the advertiser's site. Configure a destination once and the platform receives clean, deduplicated, consent-controlled events for campaign optimisation and accurate ROAS.

Overview

The browser Pixel is increasingly unreliable — ad blockers, iOS App Tracking Transparency, ITP cookie caps, and consent banners all suppress client-side events. A server-side Conversions API (CAPI) closes that gap by sending the conversion from your infrastructure straight to the ad platform. It is now the industry-standard signal for campaign optimisation on every major network.

Affclix runs CAPI as a first-class part of the tracking pipeline. When a conversion is attributed and saved, the tracker automatically pushes a matching server event to each active destination you have configured — Meta, TikTok, or Google. No SDK, no advertiser-side tag, and no custom middleware to maintain.

  • Three destinations — Meta Conversions API, TikTok Events API, Google Offline Conversions
  • Fires automatically — one event per saved conversion, per active destination — no code on your side
  • Deduplicated — the conversion ID is used as the event ID so the platform never double-counts against the browser Pixel
  • Consent-controlled identity — you choose exactly which match signals leave your platform
  • Encrypted credentials — access tokens are encrypted at rest with AES-256-GCM and never rendered back in the UI
Where to find it

In the tenant dashboard, open Integrations → Conversions API. Each row is a destination that maps one campaign (or all campaigns) to one ad-platform endpoint.

How It Works

CAPI dispatch is part of the conversion save pipeline, so latency on the visitor-facing tracking edge is never affected — delivery happens on the server, asynchronously, with retries.

01

Click is attributed

Affclix captures the ad-platform click identifiers on landing — fbclid (Meta), ttclid (TikTok), gclid/gbraid (Google) — alongside the affiliate click ID.

02

Conversion is saved

When a postback or pixel fires a conversion, the tracker resolves every active destination that matches the campaign.

03

Event is dispatched

The tracker maps the conversion to the platform event, attaches only the allowed identity signals, and POSTs to the platform API using your encrypted credentials.

04

Delivery is logged

Every attempt — delivered or failed — is written to the CAPI Delivery report, keyed by an idempotency hash so a retried save is never sent twice.

Add a Destination

Open Integrations → Conversions API → Add Destination. The common fields below apply to every platform; the credential fields that follow depend on the platform you pick.

FieldRequiredDescription
PlatformYesMeta CAPI, TikTok Events, or Google Offline Conversions
NameYesA label for your reference, e.g. "Meta — Main Pixel"
CampaignNoScope to one campaign, or leave empty to apply to every campaign in the workspace
ActiveNoOnly active destinations receive events; toggle off to pause without deleting
API versionNoOverride the platform default (e.g. Meta v19.0)
HTTP timeout (s)NoPer-request timeout, 1–120 seconds (default 10)

Meta Conversions API

Sends server events to your Meta Pixel / dataset via the Graph API. Create a system-user access token with the ads_management permission in Meta Events Manager → Settings.

FieldRequiredWhere to find it
pixel_idYesEvents Manager → Data Sources — the Pixel / dataset ID (not a secret)
access_tokenYesEvents Manager → Settings → Conversions API — system-user token (encrypted)
test_event_codeNoEvents Manager → Test Events — routes events to the test tab without touching live data
Pixel + CAPI together

Meta recommends running the browser Pixel and CAPI in parallel. Affclix sends the conversion ID as the Meta event_id, so Meta deduplicates the server event against the Pixel automatically. See the Meta Ads (Web SDK) guide for the browser side.

TikTok Events API

Sends web events to TikTok Events API 2.0. Generate an access token in TikTok Events Manager for the pixel you want to feed.

FieldRequiredWhere to find it
pixel_codeYesEvents Manager → the web pixel code (event_source_id)
access_tokenYesEvents Manager → Settings → generate access token (encrypted)
event_codeNoTest event code — routes events to the Test Events tab
advertiser_idNoReserved for offline / Marketing API flows

Google Offline Conversions

Imports conversions into Google Ads against a click identifier (gclid / gbraid / wbraid) using the Google Ads API. This requires a developer token and an OAuth refresh token for an account with access to the target customer.

FieldRequiredWhere to find it
customer_idYesGoogle Ads account ID (digits only, no dashes)
conversion_actionYesThe conversion action resource name to import against
developer_tokenYesGoogle Ads API Center → developer token (encrypted)
oauth_client_id / oauth_client_secretYesGoogle Cloud → OAuth 2.0 credentials (encrypted)
oauth_refresh_tokenYesLong-lived refresh token from the OAuth consent flow (encrypted)
login_customer_idNoManager (MCC) account ID, when access is delegated through an MCC

Event Mapping

Your conversions carry a goal or event token (for example sale, lead, install). The event map translates each token into the platform's event name. Use "*" as a catch-all for any token you have not mapped explicitly.

JSON (Event Map)
{
  "sale":   "Purchase",
  "lead":   "Lead",
  "signup": "CompleteRegistration",
  "*":      "Purchase"
}
Use the platform's standard event names

Standard events (Purchase, Lead, CompleteRegistration on Meta; CompletePayment on TikTok) unlock optimisation and reporting. Custom event names are accepted but limit what the ad platform can optimise toward.

Identity Signals (Match Keys)

Match keys are a consent allow-list. Only the signals you tick are attached to the outbound event — everything else is withheld, regardless of what the conversion carries. Leaving the list empty sends every signal that is available. Configure this to match your Data Processing Agreement and regional consent obligations.

SignalSent asNotes
clickidPlatform click IDfbc for Meta, ttclid for TikTok, gclid for Google — the strongest match signal
fbcMeta click cookieReconstructed from fbclid captured on landing
emailSHA-256 hashedNormalised and hashed before it leaves the platform
phoneSHA-256 hashedE.164 normalised, then hashed
nameSHA-256 hashedFirst / last name, hashed
external_idSHA-256 hashedYour stable customer / order identifier
geoCountry / regionCoarse location derived from the click
ipClient IP + user agentImproves match rate; subject to consent
PII is always hashed

Email, phone, name, and external ID are SHA-256 hashed before transmission — the ad platform never receives them in plain text. This raises Event Match Quality (EMQ) without exposing raw customer data.

Deduplication & Idempotency

Two layers protect you from double-counting: platform-side deduplication (between the browser Pixel and the server event) and Affclix-side idempotency (a saved conversion is never delivered twice).

LayerKeyEffect
Platform dedupevent_id = conversion IDThe same ID is used on the browser Pixel and the server event, so the platform counts one conversion
Affclix idempotencysha256(destination | conversion | platform)A successful delivery blocks any re-send; failed attempts stay retryable
Retries are safe

If a conversion is re-saved (for example after a status change), Affclix will re-attempt delivery only when no successful delivery already exists for that idempotency key — so genuine retries go through, duplicates never do.

Credential Security

Access tokens and OAuth secrets are encrypted at rest using AES-256-GCM. Non-secret identifiers — pixel ID, advertiser ID, customer ID — are stored in the clear so they remain searchable.

  • Encrypted at rest — all credential columns use authenticated AES-256-GCM encryption
  • Never rendered back — secret fields always display blank; leave them empty on edit to keep the stored value
  • Tenant-isolated — every destination is hard-scoped to your workspace; cross-tenant access is not possible
Rotating a secret

To replace a token, paste the new value into the (blank) field and save. Leaving it blank on save preserves the existing encrypted secret — it is never overwritten with an empty value.

Testing

Use the Test button on each destination to validate the setup before it goes live. The test runs on the server against the real platform, so your credentials are exercised end-to-end.

PlatformWhat the test does
MetaSends a Purchase test event; when a test event code is set, it appears under Events Manager → Test Events
TikTokSends a CompletePayment test event to the Events API
GoogleValidates credentials via an OAuth token exchange (there is no offline test bucket)
Set a test event code first

For Meta and TikTok, add the test event code before testing so events land in the Test Events tab and never affect live campaign data. Remove it once verified.

CAPI Delivery Report

Every delivery attempt is recorded in Reports → Delivery Logs, on the CAPI Delivery tab. Filter by date, platform, destination, and status to audit exactly what reached each ad platform.

ColumnMeaning
Platform / EventThe destination and the mapped platform event that was sent
StatusDelivered or Failed
Response codeHTTP status returned by the platform
Attempts / RetryableHow many times it was tried, and whether a failure is transient (429 / 5xx / network)
ErrorTrimmed platform error detail for failed attempts (e.g. Meta fbtrace_id)
Retention

Delivery logs are retained for 180 days. Use the report to spot expiring tokens (repeated auth failures) and to reconcile platform-reported conversions against Affclix.

Rate this article
★★★★★
Thanks for rating!

Was this article helpful?