Reddit's Conversions API is younger than Meta's, but it runs on the same idea: a server-side copy of your events, deduplicated against the pixel. If you advertise on Reddit, it's how you stop losing conversions to the browser.

What you're connecting

The Reddit Pixel fires in the browser and captures the click id, usually stored as rdt_cid. Your server sends a matching event to the Conversions API with a shared conversion_id, so Reddit keeps one and drops the duplicate.

Same shape as Meta: pixel for coverage and cookies, server for reliability, a shared id to join them.

Setup, step by step

  1. Install the Reddit Pixel and confirm it fires your standard events, like Purchase and Lead.
  2. Capture the click id on the landing page and store it, so you can send it server-side later.
  3. Send server events with a conversion_id that matches the pixel event for deduplication.
  4. Include the click id and hashed email, plus the real IP and user agent from the request.

The server payload looks roughly like this, with field names following Reddit's current schema:

{
  "events": [{
    "event_type": { "tracking_type": "Purchase" },
    "click_id": "<rdt_cid>",
    "conversion_id": "order_10432",
    "user": {
      "email": "<sha256_email>",
      "ip": "<from request>",
      "user_agent": "<from request>"
    },
    "event_metadata": { "value": 49.00, "currency": "USD" }
  }]
}

Deduplication

The conversion_id has to match between the pixel and the server for the exact same conversion. Reuse a stable business id, like the order id, so it's identical on both sides without any guessing.

Where it breaks

  • No shared conversion_id, so the pixel and server events both count.
  • The click id was never captured, so matching leans on email alone.
  • Unhashed email, which Reddit rejects.
  • Event names that don't match Reddit's standard set, so the optimization signal lands nowhere.

Test before you scale

Use Reddit's Events Manager test tools to fire a real conversion and confirm it arrives from both sources, deduplicated, with the identifiers you expected.

Where to run the server call

You have the same choices as with Meta. Send the Reddit event from your own backend, from server-side GTM if you already run it, or from a connector that adds Reddit on top of the pixel.

If you already have a server container for Meta and TikTok, add Reddit there rather than standing up something new. One server feeding several platforms is far easier to maintain than a separate integration per channel.

Match the events to Reddit's model

Reddit optimizes on a defined set of event types, so map your funnel to theirs rather than inventing names. A checkout is a Purchase, a signup is a Lead, and a custom label the platform doesn't recognize optimizes toward nothing.

Send the value on Purchase so Reddit can optimize toward revenue, not just conversion count.

What good looks like

In Reddit's Events Manager you want each conversion received from both the pixel and the server, deduplicated on the shared id, with a match rate that isn't embarrassing. Fire a real purchase and read those three things before you scale spend.

If counts look inflated later, check the conversion_id first, exactly as you would on Meta. It's almost always the id, not the API.

Reddit is also a lower-competition channel, so a clean server-side setup here often converts more efficiently than the same effort on a saturated platform. For a channel most advertisers under-invest in, that alone can justify the work, and it compounds as you feed the API more clean data.

Reddit's Conversions API is Meta CAPI's younger sibling: same server-side copy, same dedup discipline. Share the conversion_id, capture the click id, hash the email, and Reddit stops losing the conversions the browser drops.

Want a stronger data analyst role or a raise? Grab the FREE Product Analyst Playbook and get the exact roadmap to your next offer.