> ## Documentation Index
> Fetch the complete documentation index at: https://docs.upstackdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Reddit Conversions API

> Forward identity-resolved conversion events to the Reddit Conversions API to recover the 30-50% of conversions lost to ad blockers and improve Reddit Ads Event Match Quality and ROAS.

<Note>
  **Data direction:** This is a **destination** — Upstack sends event and conversion data **out** to this platform via server-side APIs.
</Note>

## What it does

Reddit's Conversions API (CAPI) is the server-side counterpart to the Reddit Pixel. The browser pixel loses 30-50% of conversion events to ad blockers, iOS privacy restrictions, and cross-device journeys. Upstack Signal forwards every storefront event — page views, product views, add-to-carts, and purchases — to Reddit's Conversions API as a server-side event with strong match keys.

For DTC brands running Reddit Ads, CAPI is essential. Reddit's algorithm only optimizes on what it sees. When half the conversions never make it back, the algorithm starves and your real ROAS hides behind degraded data. Server-side delivery via Upstack restores the full conversion picture so Reddit can optimize against accurate signal.

The practical result is higher Event Match Quality (EMQ), more accurate ROAS reporting inside Reddit Ads Manager, and stronger optimization signal for campaigns that depend on conversion events.

## How it works

Upstack Signal runs as a dual-tracking layer. The Upstack Pixel captures events in the browser and forwards each one to Upstack's edge infrastructure, where it is hashed, enriched with identity and attribution data, and then sent to Reddit's Conversions API as a server-side event with a shared `conversion_id`. Reddit deduplicates against any matching browser Pixel event using that ID, so you do not double-count.

Every event carries the strongest available match keys — hashed `email`, `phone_number`, `external_id`, plus `rdt_cid` (Reddit click ID), `user_agent`, and `ip_address` — so Reddit can attribute the conversion to the right user and ad interaction.

## Setup guides

<CardGroup cols={2}>
  <Card title="Onboarding guide" icon="route" href="/guides/reddit-ads/complete-how-to-guide-for-onboarding-reddit-in-upstack-data">
    End-to-end walkthrough for connecting Reddit Ads to Upstack Data.
  </Card>

  <Card title="Configure pixel destination" icon="sliders" href="/guides/reddit-ads/how-to-configure-reddit-destination-in-upstack-data">
    Configure the Reddit destination inside Upstack Data.
  </Card>

  <Card title="Find Pixel ID" icon="magnifying-glass" href="/guides/reddit-ads/how-to-find-reddit-pixel-id">
    Locate your Reddit Pixel ID in Reddit Ads Manager Events Manager.
  </Card>

  <Card title="Generate CAPI token" icon="key" href="/guides/reddit-ads/how-to-generate-reddit-conversion-api-token">
    Generate a Conversions API access token in Reddit Ads Manager.
  </Card>

  <Card title="Update CAPI token" icon="rotate" href="/guides/reddit-ads/how-to-update-reddit-conversion-api-token">
    Rotate or replace your existing Reddit CAPI access token.
  </Card>

  <Card title="Remove duplicate Reddit pixels" icon="ban" href="/guides/reddit-ads/how-to-disable-existing-reddit-pixel-in-shopify">
    Remove existing Reddit pixel installations from Shopify to prevent duplicate events.
  </Card>
</CardGroup>

## Event mapping

Upstack maps storefront events to Reddit standard events automatically:

| Upstack event      | Reddit standard event     | Key match data                                   |
| ------------------ | ------------------------- | ------------------------------------------------ |
| `PageView`         | `PageVisit`               | URL, referrer, user agent                        |
| `ViewContent`      | `ViewContent`             | `products`, `value`, `currency`                  |
| `AddToCart`        | `AddToCart`               | `products`, `value`, `currency`                  |
| `InitiateCheckout` | `Purchase` (intermediate) | `value`, `currency`, `itemCount`                 |
| `Purchase`         | `Purchase`                | `value`, `currency`, `transactionId`, `products` |

PII is hashed with SHA-256 before it leaves Upstack. Upstack includes every available match key on every event — `em` (hashed email), `ph` (hashed phone), `external_id`, `rdt_cid`, `user_agent`, and `ip_address` — to maximize EMQ.

## FAQ

<AccordionGroup>
  <Accordion title="Why does Reddit need the Conversions API?">
    Reddit's browser pixel loses 30-50% of conversion events to ad blockers, iOS privacy restrictions (ITP), and cross-device buyer journeys (e.g., browse on mobile, purchase on desktop). The Conversions API runs server-to-server, bypassing browser limitations entirely. Reddit officially recommends running both Pixel and CAPI together, with CAPI providing the reliable backbone.
  </Accordion>

  <Accordion title="What is Reddit Event Match Quality (EMQ)?">
    Reddit's EMQ score (visible in Reddit Ads Manager) measures how reliably Reddit can match a conversion event back to a Reddit user. Higher EMQ means better optimization, lower CPA, and higher ROAS. Server-side delivery via CAPI typically lifts EMQ scores significantly because events carry hashed PII and click IDs that browser-only events lose.
  </Accordion>

  <Accordion title="Will my events be counted twice if I run both the Pixel and CAPI?">
    No. Upstack sends a shared `conversion_id` on every server-side event, and Reddit deduplicates against the matching browser Pixel event with the same ID. As long as the Pixel ID in Upstack matches the Pixel ID firing in your storefront, deduplication is automatic.
  </Accordion>

  <Accordion title="Do I need to remove my existing Reddit pixel from Shopify?">
    If you already have a Reddit pixel installed via Shopify Customer Events, theme.liquid, or a third-party app, that pixel will keep firing browser-side. As long as the Pixel ID matches the one configured in Upstack, deduplication via `conversion_id` prevents double-counting. However, if you have **multiple** Reddit pixels installed (a common cause of inflated metrics), follow the [remove duplicate Reddit pixels guide](/guides/reddit-ads/how-to-disable-existing-reddit-pixel-in-shopify) to consolidate to a single pixel before activating Upstack.
  </Accordion>

  <Accordion title="How do I verify CAPI events are arriving in Reddit?">
    Open Reddit Ads Manager → **Events Manager** → select your pixel. The **Overview** tab shows recent events with a **Server** badge for CAPI events and a **Browser** badge for pixel events. The **EMQ** column shows match quality scores. Upstack also surfaces delivery status and EMQ inside the destination settings in your dashboard.
  </Accordion>

  <Accordion title="What are the typical results from adding Reddit CAPI?">
    Brands running Reddit Ads with Upstack's CAPI integration typically see EMQ scores climb within 7-10 days and a 20-40% increase in tracked conversions vs. browser-only pixel. This translates to more accurate ROAS reporting (often revealing campaigns that looked unprofitable were actually performing well) and stronger Reddit Ads campaign optimization.
  </Accordion>
</AccordionGroup>

## Related

<CardGroup cols={2}>
  <Card title="Conversion API forwarding" icon="lightbulb" href="/concepts/conversion-api-forwarding">
    How Upstack Signal forwards events to ad platforms via server-to-server APIs.
  </Card>

  <Card title="Identity resolution" icon="fingerprint" href="/concepts/identity-resolution">
    How Upstack matches anonymous visitors to known customers for higher match rates.
  </Card>

  <Card title="Meta Conversions API" icon="meta" href="/destinations/meta-capi">
    Set up Meta CAPI as another server-side destination alongside Reddit.
  </Card>

  <Card title="Events not reaching destination" icon="wrench" href="/troubleshooting/events-not-reaching-destination">
    End-to-end diagnostic guide when events aren't arriving at any destination.
  </Card>
</CardGroup>
