cloakingx@guard:~
man cloaking-x.integrations.conversion-relayIntegration Guide

Server-Side Conversion Relay

Forward real conversions to Meta and Google without ever putting their tracking scripts on your money page.

Why gtag / GA4 / the Meta Pixel can never go on the money page

Those scripts don't just fire a conversion — they report page_location, page_title, and page_referrer back to Google/Meta ALONGSIDE the click id. That hands the ad platform a direct comparison between the URL your campaign's Final URL points at (the safe page) and the URL that just reported a conversion (the money page). That mismatch is the single strongest piece of cloaking evidence there is — and you'd be volunteering it yourself, in the platform's own reporting.

The correct path is server-to-server: Meta's Conversions API and Google Ads' UploadClickConversions are both real-time APIs — "offline conversion import" describes the ROUTE (a server call, not a browser), not a batch schedule. Nothing about using them is slow or delayed. We already store the gclid/fbclid for every click that passes through a stream, so we can do this server-side step for you.

The postback flow (most customers use this)

If you're promoting someone else's offer — you don't own the money site, can't edit it, and have no way to add a tag to it — this is your path. It uses the same network-postback mechanism every affiliate network already supports:

  1. Turn on Append Conversion Token on the stream (off by default, under Filtering) so we append our own click identifier to the visitor's outgoing URL — it then travels with the click all the way to the offer.
  2. The visitor converts on the money site. We never touch that page at any point.
  3. The affiliate network fires its own server-to-server postback — to a URL YOU configure once in that network's dashboard.
  4. We resolve the click id in that postback back to its stored gclid/fbclid and forward it.
Note
Two things, both in dashboards you already usePut our subid macro on your offer/tracking URL, and paste our postback URL into the network's postback field. That's the entire integration — nothing to install on the money site.

1. Get your postback URL and subid macro

Open a stream's Conversions tab. Every stream gets its own unique postback URL and its own unique click-id parameter to use as the network's subid macro — these are secrets, treat them like a password (see the security note below).

text
https://the-network.example.com/click?offer_id=123&subid={click_id}

Replace {click_id} with whatever macro YOUR network uses for its own subid passthrough (common names: subid, s1, aff_sub, clickid) — it just needs to carry our click id through to the postback unchanged.

2. Paste our postback URL into the network

In the network's postback/pixel settings, use their macros for whichever fields they support — below is a worked example against a typical network's macro set:

text
https://cloakingx.com/api/pb/8f2c1a9e4b7d6053a1e2f9c8d4b6a710e5f3c2b1a9d8e7f6?subid={subid}&payout={payout}&status={status}

The parameter NAMES (subid, payout, status above) are configurable per stream in the Conversions tab — set them to match whatever your specific network actually sends. Most networks only fire this once a sale is already confirmed, so leaving the status parameter blank (the default) treats every postback as an approved conversion.

3. Choose where it forwards to

In Settings → Conversion Destinations, add your Meta System User access token and Pixel id once (account-wide — reused across every stream), then enable Meta on each stream that should forward to it. See the platform-by-platform section below for Google.

If you DO own the money page

Same relay, same URL — call it directly from YOUR OWN server (never from client-side JavaScript, which would expose your postback secret to every visitor's browser) once a conversion happens, using the click id that's already sitting in the money page's own landing URL assubid:

bash
curl -X POST "https://cloakingx.com/api/pb/<your-postback-token>" \
  -H "Content-Type: application/json" \
  -d '{"subid":"<the click id from the landing URL>","payout":"49.00"}'

Per-platform setup

Meta Conversions API — live today

Fully working. You need a Meta Pixel/Dataset id and a System User access token with permission to send events to it (Events Manager → Settings → Conversions API → Generate access token). We build the fbc parameter for you from the stored fbclid — no snippet, no cookie, nothing on the money page.

Google — no developer token required

We deliberately do NOT integrate the Google Ads API directly for this — that would require applying for a Google developer token, which the account owner is still weighing (see the callout below). Instead, Google conversions leave this system one of two ways:

  • Your own server-side GTM (recommended if you run one) — enable the "sGTM" destination and point it at your container's endpoint URL. We POST the resolved conversion (gclid, value, currency, timestamp) there; your own GTM Google Ads tag takes it from there.
  • Scheduled-upload CSV feed — if you don't run sGTM, every stream also exposes a CSV feed URL in the Google Ads "Scheduled uploads" format (Google Click ID, Conversion Name, Conversion Time, Conversion Value, Conversion Currency). Paste that URL into Google Ads' Uploads page and set a fetch schedule.
Warning
Google Ads API adapter: not built, by designA Google Ads developer token application requires naming the tool and what it does to Google's review team — for a cloaking product, that means putting our identity in front of Google directly. The account owner is still deciding whether that trade-off is worth it. Until/unless that changes, there is no direct Google Ads API push from this platform — use sGTM or the CSV feed above.

Security — treat your postback URL like a password

The postback URL is necessarily public — a network's server has to be able to reach it. Its security comes entirely from the long random token in the URL itself, not from IP allowlisting (network postback source IPs aren't predictable enough to allowlist). Don't paste it anywhere public, don't call it from client-side JavaScript, and don't reuse it across unrelated streams.

Note
What a leaked URL can and can't doEven with your postback URL, an attacker still needs a real click id from YOUR stream to mint a fake conversion — and can never redirect a conversion to a different click, since attribution is an exact match only. We also rate-limit every postback URL, and duplicate/retried postbacks for the same transaction are automatically deduplicated rather than reported twice.

The manual alternative

If you'd rather call Meta's Conversions API or Google's UploadClickConversions yourself, you don't need this relay at all — the stored gclid/fbclid are visible on every click in your Reports tab (and via the API), and you can wire your own server-side integration directly. This relay exists purely to save you from having to build that integration yourself — it does nothing you couldn't do with the raw click data on your own.